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