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