1 <?xml version="1.0"?> 2 <tests> 3 <test name="adopt_recon_default"> 4 5 <doc name="doc1"><![CDATA[<p1 xmlns="urn:test:AAA"><a/></p1>]]></doc> 6 <doc name="doc2"><![CDATA[<p1 xmlns="urn:test:BBB"><b/></p1>]]></doc> 7 <doc name="doc3"><![CDATA[<p2 xmlns="urn:test:ZZZ"/>]]></doc> 8 <var name="a"> 9 <xpath doc="doc1" select-node="/a:p1/a:a"> 10 <reg-ns prefix="a" ns="urn:test:AAA"/> 11 </xpath> 12 </var> 13 <var name="b" > 14 <xpath doc="doc2" select-node="/b:p1/b:b"> 15 <reg-ns prefix="b" ns="urn:test:BBB"/> 16 </xpath> 17 </var> 18 <var name="p2"> 19 <xpath doc="doc3" select-node="/z:p2"> 20 <reg-ns prefix="z" ns="urn:test:ZZZ"/> 21 </xpath> 22 </var> 23 24 <remove node="a"/> 25 <adopt dest-doc="doc3" node="a"/> 26 <append-child parent="p2" child="a"/> 27 28 <!-- This time without a previous removing. --> 29 <adopt dest-doc="doc3" node="b"/> 30 <append-child parent="p2" child="b"/> 31 32 <reconcile-ns node="p2"/> 33 <expected doc="doc3"><![CDATA[<p2 xmlns="urn:test:ZZZ"><a xmlns="urn:test:AAA"/><b xmlns="urn:test:BBB"/></p2>]]></expected> 34 </test> 35 36 <test name="adopt_recon"> 37 <doc name="doc1"><![CDATA[<a:p1 xmlns:a="urn:test:AAA"><a:a/></a:p1>]]></doc> 38 <doc name="doc2"><![CDATA[<a:p2 xmlns:a="urn:test:AAA"/>]]></doc> 39 <var name="a"> 40 <xpath doc="doc1" select-node="/a:p1/a:a"> 41 <reg-ns prefix="a" ns="urn:test:AAA"/> 42 </xpath> 43 </var> 44 <var name="p2"> 45 <xpath doc="doc2" select-node="/a:p2"> 46 <reg-ns prefix="a" ns="urn:test:AAA"/> 47 </xpath> 48 </var> 49 <adopt dest-doc="doc2" node="a"/> 50 <append-child parent="p2" child="a"/> 51 <reconcile-ns node="a"/> 52 <expected doc="doc2"><![CDATA[<a:p2 xmlns:a="urn:test:AAA"><a:a/></a:p2>]]></expected> 53 </test> 54 55 <test name="adopt_recon_attr"> 56 <doc name="doc1"><![CDATA[<p1 xmlns:b="urn:test:BBB" b:attr="marvin"/>]]></doc> 57 <doc name="doc2"><![CDATA[<a:p2 xmlns:a="urn:test:AAA"/>]]></doc> 58 <var name="attr"> 59 <xpath doc="doc1" select-node="/p1/@b:attr"> 60 <reg-ns prefix="b" ns="urn:test:BBB"/> 61 </xpath> 62 </var> 63 <var name="p2"> 64 <xpath doc="doc2" select-node="/a:p2"> 65 <reg-ns prefix="a" ns="urn:test:AAA"/> 66 </xpath> 67 </var> 68 <adopt dest-doc="doc2" node="attr" /> 69 <append-child parent="p2" child="attr"/> 70 <reconcile-ns node="p2"/> 71 <expected doc="doc2"><![CDATA[<a:p2 xmlns:a="urn:test:AAA" xmlns:b="urn:test:BBB" b:attr="marvin"/>]]></expected> 72 </test> 73 74 <test name="adopt_recon_attr_2"> 75 <!-- Here we will specify a destination-parent for adoption. --> 76 <doc name="doc1"><![CDATA[<p1 xmlns:b="urn:test:BBB" b:attr="marvin"/>]]></doc> 77 <doc name="doc2"><![CDATA[<a:p2 xmlns:a="urn:test:AAA"/>]]></doc> 78 <var name="attr"> 79 <xpath doc="doc1" select-node="/p1/@b:attr"> 80 <reg-ns prefix="b" ns="urn:test:BBB"/> 81 </xpath> 82 </var> 83 <var name="p2"> 84 <xpath doc="doc2" select-node="/a:p2"> 85 <reg-ns prefix="a" ns="urn:test:AAA"/> 86 </xpath> 87 </var> 88 <adopt dest-doc="doc2" dest-parent="p2" node="attr" /> 89 <append-child parent="p2" child="attr"/> 90 <reconcile-ns node="p2"/> 91 <expected doc="doc2"><![CDATA[<a:p2 xmlns:a="urn:test:AAA" xmlns:b="urn:test:BBB" b:attr="marvin"/>]]></expected> 92 </test> 93 94 <test name="adopt_recon_attr_3"> 95 <!-- Conflicting ns-prefixes for the added attribute. --> 96 <doc name="doc1"><![CDATA[<p1 xmlns:a="urn:test:AAA" a:attr="marvin"/>]]></doc> 97 <doc name="doc2"><![CDATA[<a:p2 xmlns:a="urn:test:aaa"/>]]></doc> 98 <var name="attr"> 99 <xpath doc="doc1" select-node="/p1/@a:attr"> 100 <reg-ns prefix="a" ns="urn:test:AAA"/> 101 </xpath> 102 </var> 103 <var name="p2"> 104 <xpath doc="doc2" select-node="/a:p2"> 105 <reg-ns prefix="a" ns="urn:test:aaa"/> 106 </xpath> 107 </var> 108 <adopt dest-doc="doc2" node="attr" /> 109 <append-child parent="p2" child="attr"/> 110 <reconcile-ns node="p2"/> 111 <expected doc="doc2"><![CDATA[<a:p2 xmlns:a="urn:test:aaa" xmlns:a1="urn:test:AAA" a1:attr="marvin"/>]]></expected> 112 </test> 113 114 <test name="adopt_recon_attr_4"> 115 <!-- Qualified attribute added to default namespaced elem. --> 116 <doc name="doc1"><![CDATA[<p1 xmlns:a="urn:test:AAA" a:attr="marvin"/>]]></doc> 117 <doc name="doc2"><![CDATA[<p2 xmlns="urn:test:AAA"/>]]></doc> 118 <var name="attr"> 119 <xpath doc="doc1" select-node="/p1/@a:attr"> 120 <reg-ns prefix="a" ns="urn:test:AAA"/> 121 </xpath> 122 </var> 123 <var name="p2"> 124 <xpath doc="doc2" select-node="/a:p2"> 125 <reg-ns prefix="a" ns="urn:test:AAA"/> 126 </xpath> 127 </var> 128 <adopt dest-doc="doc2" node="attr" /> 129 <append-child parent="p2" child="attr"/> 130 <reconcile-ns node="p2"/> 131 <expected doc="doc2"><![CDATA[<p2 xmlns="urn:test:AAA" xmlns:a="urn:test:AAA" a:attr="marvin"/>]]></expected> 132 </test> 133 134 <test name="adopt_recon_attr_5"> 135 <!-- Shadowed and conflicting prefix. dest-parent IS given. --> 136 <doc name="doc1"><![CDATA[<p1 xmlns:a="urn:test:AAA" a:attr="marvin"/>]]></doc> 137 <doc name="doc2"><![CDATA[<p2 xmlns:a="urn:test:AAA"><a:p3 xmlns:a="urn:test:ZZZ"/></p2>]]></doc> 138 <var name="attr"> 139 <xpath doc="doc1" select-node="/p1/@a:attr"> 140 <reg-ns prefix="a" ns="urn:test:AAA"/> 141 </xpath> 142 </var> 143 <var name="p3"> 144 <xpath doc="doc2" select-node="/p2/a:p3"> 145 <reg-ns prefix="a" ns="urn:test:ZZZ"/> 146 </xpath> 147 </var> 148 <adopt dest-doc="doc2" node="attr" dest-parent="p3"/> 149 <append-child parent="p3" child="attr"/> 150 <!-- Note that we don't need to reconcile here, since done during 151 adoption. --> 152 <expected doc="doc2"><![CDATA[ 153 <p2 xmlns:a="urn:test:AAA"> 154 <a:p3 xmlns:a="urn:test:ZZZ" xmlns:a1="urn:test:AAA" a1:attr="marvin"/> 155 </p2>]]></expected> 156 </test> 157 158 <test name="adopt_recon_attr_6"> 159 <!-- Shadowed and conflicting prefix. dest-parent NOT given. --> 160 <doc name="doc1"><![CDATA[<p1 xmlns:a="urn:test:AAA" a:attr="marvin"/>]]></doc> 161 <doc name="doc2"><![CDATA[<p2 xmlns:a="urn:test:AAA"><a:p3 xmlns:a="urn:test:ZZZ"/></p2>]]></doc> 162 <var name="attr"> 163 <xpath doc="doc1" select-node="/p1/@a:attr"> 164 <reg-ns prefix="a" ns="urn:test:AAA"/> 165 </xpath> 166 </var> 167 <var name="p3"> 168 <xpath doc="doc2" select-node="/p2/a:p3"> 169 <reg-ns prefix="a" ns="urn:test:ZZZ"/> 170 </xpath> 171 </var> 172 <adopt dest-doc="doc2" node="attr"/> 173 <append-child parent="p3" child="attr"/> 174 <reconcile-ns node="p3"/> 175 <expected doc="doc2"><![CDATA[ 176 <p2 xmlns:a="urn:test:AAA"> 177 <a:p3 xmlns:a="urn:test:ZZZ" xmlns:a1="urn:test:AAA" a1:attr="marvin"/> 178 </p2>]]></expected> 179 </test> 180 181 <test name="shadow_1"> 182 183 <doc name="doc"><![CDATA[ 184 <foo xmlns:foo="urn:test:mine"> 185 <p xmlns:bar="urn:test:mine"/> 186 <a1> 187 <a2 xmlns:bar="urn:test:OTHER"> 188 <foo:a3/> 189 </a2> 190 </a1> 191 </foo> 192 ]]></doc> 193 <var name="a1"> 194 <xpath doc="doc" select-node="/foo/a1"/> 195 </var> 196 <var name="p" > 197 <xpath doc="doc" select-node="/foo/p"/> 198 </var> 199 <remove node="a1"/> 200 <append-child parent="p" child="a1"/> 201 <reconcile-ns node="a1"/> 202 <expected doc="doc"><![CDATA[ 203 <foo xmlns:foo="urn:test:mine"> 204 <p xmlns:bar="urn:test:mine"> 205 <a1> 206 <a2 xmlns:bar="urn:test:OTHER"> 207 <foo:a3/> 208 </a2> 209 </a1> 210 </p> 211 </foo> 212 ]]></expected> 213 </test> 214 215 <test name="norm_1"> 216 217 <doc name="doc"><![CDATA[ 218 <foo> 219 <p1 xmlns:a="urn:test:A" xmlns:b="urn:test:B" xmlns:c="urn:test:C"> 220 <a:a> 221 <b:b a:attr="dont" c:attr="panic"/> 222 </a:a> 223 </p1> 224 <p2/> 225 </foo> 226 ]]></doc> 227 <var name="a"> 228 <xpath doc="doc" select-node="/foo/p1/a:a"> 229 <reg-ns prefix="a" ns="urn:test:A"/> 230 </xpath> 231 </var> 232 <var name="p2" > 233 <xpath doc="doc" select-node="/foo/p2"/> 234 </var> 235 <remove node="a"/> 236 <append-child parent="p2" child="a"/> 237 <reconcile-ns node="a"/> 238 <expected doc="doc"><![CDATA[ 239 <foo> 240 <p1 xmlns:a="urn:test:A" xmlns:b="urn:test:B" xmlns:c="urn:test:C"/> 241 <p2> 242 <a:a xmlns:a="urn:test:A"> 243 <b:b xmlns:b="urn:test:B" xmlns:c="urn:test:C" a:attr="dont" c:attr="panic"/> 244 </a:a> 245 </p2> 246 </foo> 247 ]]></expected> 248 </test> 249 </tests> 250