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>·¶ ··