xref: /aosp_15_r20/external/apache-xml/test/tests/extensions/library/libraryNodeset06.xsl (revision 1212f9a0ffdc28482b8821715d2222bf16dc14e2)
1<?xml version="1.0"?>
2<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
3                xmlns:ex="http://xml.apache.org/xalan"
4                extension-element-prefixes="ex">
5
6  <!-- FileName: libraryNodeset06 -->
7  <!-- Document: http://www.w3.org/TR/xslt -->
8  <!-- DocVersion: 19991116 -->
9  <!-- Section: 11.4 -->
10  <!-- Creator: Joe Kesselman -->
11  <!-- Purpose: Ensure that applying axes onto nodeset of local RTF gets the right one. -->
12
13<xsl:output method="xml" indent="no" encoding="UTF-8"/>
14
15<xsl:template match="/">
16  <xsl:variable name="var1">
17    <t1-far-north>
18      <t1-north>
19        <t1-near-north>
20          <t1-far-west/>
21          <t1-west/>
22          <t1-near-west/>
23          <center center-attr-1="c1" xmlns:n="http://example.com">Wrong variable, can you dig it?
24            <t1-near-south>
25              <t1-south>
26                <t1-far-south/>
27              </t1-south>
28            </t1-near-south>
29          </center>
30          <t1-near-east/>
31          <t1-east/>
32          <t1-far-east/>
33        </t1-near-north>
34      </t1-north>
35    </t1-far-north>
36  </xsl:variable>
37
38  <xsl:variable name="var2">
39    <t2-far-north>
40      <t2-north>
41        <t2-near-north>
42          <t2-far-west/>
43          <t2-west/>
44          <t2-near-west/>
45          <center center-attr-1="c2" xmlns:n="http://example.com">Dig we must!
46            <t2-near-south>
47              <t2-south>
48                <t2-far-south/>
49              </t2-south>
50            </t2-near-south>
51          </center>
52          <t2-near-east/>
53          <t2-east/>
54          <t2-far-east/>
55        </t2-near-north>
56      </t2-north>
57    </t2-far-north>
58  </xsl:variable>
59
60  <out>
61    <!-- Now, force evaluation of each of the above variables -->
62    <junk>
63      <xsl:text>$var1 summary: </xsl:text>
64      <xsl:value-of select="$var1"/>
65      <xsl:text>
66</xsl:text>
67
68      <xsl:text>$var2 summary: </xsl:text>
69      <xsl:value-of select="$var2"/>
70    </junk>
71    <xsl:text>
72</xsl:text>
73
74    <xsl:text>The center nodes in $var2 are </xsl:text>
75    <xsl:for-each select="ex:nodeset($var2)//center">
76      <xsl:value-of select="name(.)"/>
77      <xsl:text>,</xsl:text>
78    </xsl:for-each>
79    <xsl:text>
80
81</xsl:text>
82
83    <xsl:text>W01: center/child::* nodes in $var2 are </xsl:text>
84    <xsl:for-each select="ex:nodeset($var2)//center/child::*">
85      <xsl:value-of select="name(.)"/>
86      <xsl:text>,</xsl:text>
87    </xsl:for-each>
88    <xsl:text>
89</xsl:text>
90
91    <xsl:text>W02: center/descendant::* nodes in $var2 are </xsl:text>
92    <xsl:for-each select="ex:nodeset($var2)//center/descendant::*">
93      <xsl:value-of select="name(.)"/>
94      <xsl:text>,</xsl:text>
95    </xsl:for-each>
96    <xsl:text>
97</xsl:text>
98
99    <xsl:text>W03: center/parent::* nodes in $var2 are </xsl:text>
100    <xsl:for-each select="ex:nodeset($var2)//center/parent::*">
101      <xsl:value-of select="name(.)"/>
102      <xsl:text>,</xsl:text>
103    </xsl:for-each>
104    <xsl:text>
105</xsl:text>
106
107    <xsl:text>W04: center/ancestor::* nodes in $var2 are </xsl:text>
108    <xsl:for-each select="ex:nodeset($var2)//center/ancestor::*">
109      <xsl:value-of select="name(.)"/>
110      <xsl:text>,</xsl:text>
111    </xsl:for-each>
112    <xsl:text>
113</xsl:text>
114
115    <xsl:text>W05: center/following-sibling::* nodes in $var2 are </xsl:text>
116    <xsl:for-each select="ex:nodeset($var2)//center/following-sibling::*">
117      <xsl:value-of select="name(.)"/>
118      <xsl:text>,</xsl:text>
119    </xsl:for-each>
120    <xsl:text>
121</xsl:text>
122
123    <xsl:text>W06: center/preceding-sibling::* nodes in $var2 are </xsl:text>
124    <xsl:for-each select="ex:nodeset($var2)//center/preceding-sibling::*">
125      <xsl:value-of select="name(.)"/>
126      <xsl:text>,</xsl:text>
127    </xsl:for-each>
128    <xsl:text>
129</xsl:text>
130
131    <xsl:text>W07: center/following::* nodes in $var2 are </xsl:text>
132    <xsl:for-each select="ex:nodeset($var2)//center/following::*">
133      <xsl:value-of select="name(.)"/>
134      <xsl:text>,</xsl:text>
135    </xsl:for-each>
136    <xsl:text>
137</xsl:text>
138
139    <xsl:text>W08: center/preceding::* nodes in $var2 are </xsl:text>
140    <xsl:for-each select="ex:nodeset($var2)//center/preceding::*">
141      <xsl:value-of select="name(.)"/>
142      <xsl:text>,</xsl:text>
143    </xsl:for-each>
144    <xsl:text>
145</xsl:text>
146
147    <xsl:text>W09: center/attribute::* nodes in $var2 are </xsl:text>
148    <xsl:for-each select="ex:nodeset($var2)//center/attribute::*">
149      <xsl:value-of select="name(.)"/>
150      <xsl:text>,</xsl:text>
151    </xsl:for-each>
152    <xsl:text>
153</xsl:text>
154
155    <xsl:text>W10: center/namespace::* nodes in $var2 are </xsl:text>
156    <xsl:for-each select="ex:nodeset($var2)//center/namespace::*">
157      <xsl:value-of select="name(.)"/>
158      <xsl:text>,</xsl:text>
159    </xsl:for-each>
160    <xsl:text>
161</xsl:text>
162
163    <xsl:text>W11: center/self::* nodes in $var2 are </xsl:text>
164    <xsl:for-each select="ex:nodeset($var2)//center/self::*">
165      <xsl:value-of select="name(.)"/>
166      <xsl:text>,</xsl:text>
167    </xsl:for-each>
168    <xsl:text>
169</xsl:text>
170
171    <xsl:text>W12: center/descendant-or-self::* nodes in $var2 are </xsl:text>
172    <xsl:for-each select="ex:nodeset($var2)//center/descendant-or-self::*">
173      <xsl:value-of select="name(.)"/>
174      <xsl:text>,</xsl:text>
175    </xsl:for-each>
176    <xsl:text>
177</xsl:text>
178
179    <xsl:text>W13: center/ancestor-or-self::* nodes in $var2 are </xsl:text>
180    <xsl:for-each select="ex:nodeset($var2)//center/ancestor-or-self::*">
181      <xsl:value-of select="name(.)"/>
182      <xsl:text>,</xsl:text>
183    </xsl:for-each>
184    <xsl:text>
185
186</xsl:text>
187    <!-- Above was wildcard, now use name tests -->
188    <xsl:text>N01: center/child::t2-near-south nodes in $var2 are </xsl:text>
189    <xsl:for-each select="ex:nodeset($var2)//center/child::t2-near-south">
190      <xsl:value-of select="name(.)"/>
191      <xsl:text>,</xsl:text>
192    </xsl:for-each>
193    <xsl:text>
194</xsl:text>
195
196    <xsl:text>N02: center/descendant::t2-south nodes in $var2 are </xsl:text>
197    <xsl:for-each select="ex:nodeset($var2)//center/descendant::t2-south">
198      <xsl:value-of select="name(.)"/>
199      <xsl:text>,</xsl:text>
200    </xsl:for-each>
201    <xsl:text>
202</xsl:text>
203
204    <xsl:text>N03: center/parent::t2-near-north nodes in $var2 are </xsl:text>
205    <xsl:for-each select="ex:nodeset($var2)//center/parent::t2-near-north">
206      <xsl:value-of select="name(.)"/>
207      <xsl:text>,</xsl:text>
208    </xsl:for-each>
209    <xsl:text>
210</xsl:text>
211
212    <xsl:text>N04: center/ancestor::t2-north nodes in $var2 are </xsl:text>
213    <xsl:for-each select="ex:nodeset($var2)//center/ancestor::t2-north">
214      <xsl:value-of select="name(.)"/>
215      <xsl:text>,</xsl:text>
216    </xsl:for-each>
217    <xsl:text>
218</xsl:text>
219
220    <xsl:text>N05: center/following-sibling::t2-east nodes in $var2 are </xsl:text>
221    <xsl:for-each select="ex:nodeset($var2)//center/following-sibling::t2-east">
222      <xsl:value-of select="name(.)"/>
223      <xsl:text>,</xsl:text>
224    </xsl:for-each>
225    <xsl:text>
226</xsl:text>
227
228    <xsl:text>N06: center/preceding-sibling::t2-west nodes in $var2 are </xsl:text>
229    <xsl:for-each select="ex:nodeset($var2)//center/preceding-sibling::t2-west">
230      <xsl:value-of select="name(.)"/>
231      <xsl:text>,</xsl:text>
232    </xsl:for-each>
233    <xsl:text>
234</xsl:text>
235
236    <xsl:text>N07: center/following::t2-east nodes in $var2 are </xsl:text>
237    <xsl:for-each select="ex:nodeset($var2)//center/following::t2-east">
238      <xsl:value-of select="name(.)"/>
239      <xsl:text>,</xsl:text>
240    </xsl:for-each>
241    <xsl:text>
242</xsl:text>
243
244    <xsl:text>N08: center/preceding::t2-west nodes in $var2 are </xsl:text>
245    <xsl:for-each select="ex:nodeset($var2)//center/preceding::t2-west">
246      <xsl:value-of select="name(.)"/>
247      <xsl:text>,</xsl:text>
248    </xsl:for-each>
249    <xsl:text>
250</xsl:text>
251
252    <xsl:text>N09: center/attribute::center-attr-1 nodes in $var2 are </xsl:text>
253    <xsl:for-each select="ex:nodeset($var2)//center/attribute::center-attr-1">
254      <xsl:value-of select="name(.)"/>
255      <xsl:text>,</xsl:text>
256    </xsl:for-each>
257    <xsl:text>
258</xsl:text>
259
260    <xsl:text>N10: center/self::center nodes in $var2 are </xsl:text>
261    <xsl:for-each select="ex:nodeset($var2)//center/self::center">
262      <xsl:value-of select="name(.)"/>
263      <xsl:text>,</xsl:text>
264    </xsl:for-each>
265    <xsl:text>
266</xsl:text>
267
268    <xsl:text>N11: center/descendant-or-self::t2-south nodes in $var2 are </xsl:text>
269    <xsl:for-each select="ex:nodeset($var2)//center/descendant-or-self::t2-south">
270      <xsl:value-of select="name(.)"/>
271      <xsl:text>,</xsl:text>
272    </xsl:for-each>
273    <xsl:text>
274</xsl:text>
275
276    <xsl:text>N12: center/ancestor-or-self::t2-north nodes in $var2 are </xsl:text>
277    <xsl:for-each select="ex:nodeset($var2)//center/ancestor-or-self::t2-north">
278      <xsl:value-of select="name(.)"/>
279      <xsl:text>,</xsl:text>
280    </xsl:for-each>
281    <xsl:text>
282</xsl:text>
283  </out>
284</xsl:template>
285
286
287  <!--
288   * Licensed to the Apache Software Foundation (ASF) under one
289   * or more contributor license agreements. See the NOTICE file
290   * distributed with this work for additional information
291   * regarding copyright ownership. The ASF licenses this file
292   * to you under the Apache License, Version 2.0 (the  "License");
293   * you may not use this file except in compliance with the License.
294   * You may obtain a copy of the License at
295   *
296   *     http://www.apache.org/licenses/LICENSE-2.0
297   *
298   * Unless required by applicable law or agreed to in writing, software
299   * distributed under the License is distributed on an "AS IS" BASIS,
300   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
301   * See the License for the specific language governing permissions and
302   * limitations under the License.
303  -->
304
305</xsl:stylesheet>
306