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.
<!-- XPath="self::default:Parent or (parent::default:Parent and not(self::default:Child)) or self::ns1:GrandChild or parent::ns1:GrandChild or self::default:GrandChild or parent::default:GrandChild" --> <!-- additionalNSPrefixes="default http://example.org/default ns1 http://example.org/ns1" --> <!-- Result C14N:--> <!-- Annotation C14N: 1. The default namespace node is rendered for Parent, since it is inherited from GrandParent. 2. The ns1 namespace node is rendered for the first GrandChild, since it is inherited from Child. 3. The default namespace node is not rendered for the first GrandChild, since the output parent of GrandChild (Parent) has the same namespace node with the same value, which is in the node set. 4. The ns1 namespace node is rendered for the second GrandChild (same as 2). 5. The default namespace node is rendered for the second GrandChild, since it is explicitly declared, and has a different value than that of Parent. 6. The ns1 namespace node is rendered for the third GrandChild (same as 2). 7. The default namespace node is not rendered for the third GrandChild (same as 3). 8. The ns1 namespace node is rendered for the fourth GrandChild (same as 2). 9. The default namespace node is not rendered fourth the third GrandChild (same as 3). --> <!-- Result EC14N: --> <!-- Annotation EC14N: 1. The default namespace node is rendered for Parent, since it is visibly utilized by Parent. 2. The ns1 namespace attribute is rendered for the first GrandChild, since it is visibly utilized by GrandChild. 3. The default namespace node is not rendered for the first GrandChild, since it is not visibly utilized. 4. The ns1 namespace attribute is rendered for the second GrandChild, since it is visibly utilized by GrandChild. 5. The default namespace node is not rendered for the second GrandChild, since it is not visibly utilized by GrandChild. The Gender attribute is in no namespace. 6. The ns1 namespace node is not rendered for the third GrandChild, since it is not visibly utilized. 7. The default namespace node is not rendered for the third GrandChild. It is visibly utilized, but the same namespace node with the same value has already been rendered in Parent (an output parent of GrandChild). 8. The default namespace node is not rendered for the fourth GrandChild, since it is not visibly utilized. 9. The ns1 namespace node is rendered for the fourth GrandChild, since it is visibly utilized by the ns1:Gender attribute of GrandChild. --> <GrandParent xmlns="http://example.org/default"> <Parent xmlns="http://example.org/default"> <Child xmlns="http://example.org/default" xmlns:ns1="http://example.org/ns1"> <ns1:GrandChild xmlns="http://example.org/default" xmlns:ns1="http://example.org/ns1"></ns1:GrandChild> <ns1:GrandChild xmlns="http://bar.com/default" xmlns:ns1="http://example.org/ns1" Gender="male"></ns1:GrandChild> <GrandChild xmlns="http://example.org/default" xmlns:ns1="http://example.org/ns1"></GrandChild> <GrandChild xmlns="http://example.org/default" xmlns:ns1="http://example.org/ns1" ns1:Gender="male"></GrandChild> </Child> </Parent> </GrandParent>