Explanation of the output

The following text contains the nodeset of the given Reference before it is canonicalized. There exist four different styles to indicate how a given node is treated.

Output

<!--·XPath="self::Parent·or·(parent::Parent·and·not(self::Child))·or·self::ns1:GrandChild·or·parent::ns1:GrandChild"·-->
<!--·additionalNSPrefixes="ns1·http://example.org/ns1"·-->
<!--·InlusiveNamespacePrefixList="ns2"·-->
<!--·Result·C14N:¶
¶
····¶
······¶
·-->
<!--·Annotation·C14N:¶
1.·The·namespace·nodes·ns1·und·ns2·are·rendered·for·GrandChild,·since¶
···they·are·both·in·scope·for·GrandChild·and·in·the·output·node·set.···¶
-->
<!--·Result·EC14N:¶
¶
····¶
······¶
-->
<!--·Annotation·EC14N:¶
1.·The·namespace·node·ns1·is·rendered·for·GrandChild·since·it·is·visibly¶
···utilized·by·GrandChild.¶
2.·The·namespace·node·ns2·is·rendered·since·it·is·on·the·¶
···InlusiveNamespacePrefixList·and·is·therefore·treated·as·in·C14N·mode.¶
-->
<GrandParent xmlns="">¶
··<Parent xmlns="">¶
····<Child xmlns="" xmlns:ns1="http://example.org/ns1" xmlns:ns2="http://example.org/ns2">¶
······<ns1:GrandChild xmlns="" xmlns:ns1="http://example.org/ns1" xmlns:ns2="http://example.org/ns2"></ns1:GrandChild>¶
····</Child>¶
··</Parent></GrandParent>