3 <test name="adopt_recon_default">
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>
9 <xpath doc="doc1" select-node="/a:p1/a:a">
10 <reg-ns prefix="a" ns="urn:test:AAA"/>
14 <xpath doc="doc2" select-node="/b:p1/b:b">
15 <reg-ns prefix="b" ns="urn:test:BBB"/>
19 <xpath doc="doc3" select-node="/z:p2">
20 <reg-ns prefix="z" ns="urn:test:ZZZ"/>
25 <adopt dest-doc="doc3" node="a"/>
26 <append-child parent="p2" child="a"/>
28 <!-- This time without a previous removing. -->
29 <adopt dest-doc="doc3" node="b"/>
30 <append-child parent="p2" child="b"/>
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>
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>
40 <xpath doc="doc1" select-node="/a:p1/a:a">
41 <reg-ns prefix="a" ns="urn:test:AAA"/>
45 <xpath doc="doc2" select-node="/a:p2">
46 <reg-ns prefix="a" ns="urn:test:AAA"/>
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>
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>
59 <xpath doc="doc1" select-node="/p1/@b:attr">
60 <reg-ns prefix="b" ns="urn:test:BBB"/>
64 <xpath doc="doc2" select-node="/a:p2">
65 <reg-ns prefix="a" ns="urn:test:AAA"/>
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>
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>
79 <xpath doc="doc1" select-node="/p1/@b:attr">
80 <reg-ns prefix="b" ns="urn:test:BBB"/>
84 <xpath doc="doc2" select-node="/a:p2">
85 <reg-ns prefix="a" ns="urn:test:AAA"/>
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>
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>
99 <xpath doc="doc1" select-node="/p1/@a:attr">
100 <reg-ns prefix="a" ns="urn:test:AAA"/>
104 <xpath doc="doc2" select-node="/a:p2">
105 <reg-ns prefix="a" ns="urn:test:aaa"/>
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>
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>
119 <xpath doc="doc1" select-node="/p1/@a:attr">
120 <reg-ns prefix="a" ns="urn:test:AAA"/>
124 <xpath doc="doc2" select-node="/a:p2">
125 <reg-ns prefix="a" ns="urn:test:AAA"/>
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>
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>
139 <xpath doc="doc1" select-node="/p1/@a:attr">
140 <reg-ns prefix="a" ns="urn:test:AAA"/>
144 <xpath doc="doc2" select-node="/p2/a:p3">
145 <reg-ns prefix="a" ns="urn:test:ZZZ"/>
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
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"/>
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>
163 <xpath doc="doc1" select-node="/p1/@a:attr">
164 <reg-ns prefix="a" ns="urn:test:AAA"/>
168 <xpath doc="doc2" select-node="/p2/a:p3">
169 <reg-ns prefix="a" ns="urn:test:ZZZ"/>
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"/>
181 <test name="shadow_1">
183 <doc name="doc"><![CDATA[
184 <foo xmlns:foo="urn:test:mine">
185 <p xmlns:bar="urn:test:mine"/>
187 <a2 xmlns:bar="urn:test:OTHER">
194 <xpath doc="doc" select-node="/foo/a1"/>
197 <xpath doc="doc" select-node="/foo/p"/>
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">
206 <a2 xmlns:bar="urn:test:OTHER">
217 <doc name="doc"><![CDATA[
219 <p1 xmlns:a="urn:test:A" xmlns:b="urn:test:B" xmlns:c="urn:test:C">
221 <b:b a:attr="dont" c:attr="panic"/>
228 <xpath doc="doc" select-node="/foo/p1/a:a">
229 <reg-ns prefix="a" ns="urn:test:A"/>
233 <xpath doc="doc" select-node="/foo/p2"/>
236 <append-child parent="p2" child="a"/>
237 <reconcile-ns node="a"/>
238 <expected doc="doc"><![CDATA[
240 <p1 xmlns:a="urn:test:A" xmlns:b="urn:test:B" xmlns:c="urn:test:C"/>
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"/>