# 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.

- A node which is in the node set is labeled using the INCLUDED style.
- A node which is NOT in the node set is labeled EXCLUDED style.
- A namespace which is in the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.
- A namespace which is in NOT the node set AND in the InclusiveNamespaces PrefixList is labeled using the INCLUDEDINCLUSIVENAMESPACE style.

# 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>