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::GrandChild or parent::GrandChild" -->
<!-- Result C14N:

    
  
-->
<!-- Annotation C14N:
1. Parent inherts xml:lang and xml:space since it is an orphan node.
2. Parent has explicitly declared attributes xml:foo and xml:fool.
3. GrandChild inherts xml:foo from its Child ancestor.
4. GrandChild inherits xml:fool from its Parent ancestor.
5. GrandChild inherits xml:lang from its Child ancestor.
6. GrandChild has explicitly declared attribute xml:space.
-->
<!-- Result EC14N:

    
  
-->
<!-- Annotation EC14N:
1. Only those attributes in the xml namespace are rendered, which are
   explicitely declared in the attribute axis of an element.
-->
<GrandParent xmlns="" xml:lang="en" xml:space="default">
  <Parent xmlns="" xml:foo="bar" xml:fool="barbar">
    <Child xmlns="" xml:foo="barbarossa" xml:lang="ge">
      <GrandChild xmlns="" xml:space="preserve"></GrandChild>
    </Child>
  </Parent>
</GrandParent>