xref: /aosp_15_r20/external/apache-xml/test/tests/conf/idkey/idkey22.xsl (revision 1212f9a0ffdc28482b8821715d2222bf16dc14e2)
1*1212f9a0SAndroid Build Coastguard Worker<?xml version="1.0"?>
2*1212f9a0SAndroid Build Coastguard Worker<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
3*1212f9a0SAndroid Build Coastguard Worker
4*1212f9a0SAndroid Build Coastguard Worker  <!-- FileName: idkey22 -->
5*1212f9a0SAndroid Build Coastguard Worker  <!-- Document: http://www.w3.org/TR/xpath -->
6*1212f9a0SAndroid Build Coastguard Worker  <!-- DocVersion: 19991116 -->
7*1212f9a0SAndroid Build Coastguard Worker  <!-- Section: 4.1 -->
8*1212f9a0SAndroid Build Coastguard Worker  <!-- Creator: David Marston (original idea sent in by user) -->
9*1212f9a0SAndroid Build Coastguard Worker  <!-- Purpose: Test for id() in complex structure. -->
10*1212f9a0SAndroid Build Coastguard Worker
11*1212f9a0SAndroid Build Coastguard Worker<xsl:template match="/">
12*1212f9a0SAndroid Build Coastguard Worker  <out>
13*1212f9a0SAndroid Build Coastguard Worker    <xsl:apply-templates/>
14*1212f9a0SAndroid Build Coastguard Worker  </out>
15*1212f9a0SAndroid Build Coastguard Worker</xsl:template>
16*1212f9a0SAndroid Build Coastguard Worker
17*1212f9a0SAndroid Build Coastguard Worker<xsl:template match="doc">
18*1212f9a0SAndroid Build Coastguard Worker  Test for id selection and pattern matching...
19*1212f9a0SAndroid Build Coastguard Worker  Next line should read: -*id17*-    <!-- No id() either end -->
20*1212f9a0SAndroid Build Coastguard Worker  <xsl:apply-templates select="c/b"/>
21*1212f9a0SAndroid Build Coastguard Worker  Next line should read: (*id14*)    <!-- id() below but not here -->
22*1212f9a0SAndroid Build Coastguard Worker  <xsl:apply-templates select="b/c"/>
23*1212f9a0SAndroid Build Coastguard Worker  Next line should read: -*id4*-     <!-- id() here on apply but not below -->
24*1212f9a0SAndroid Build Coastguard Worker  <xsl:apply-templates select="id('id4')"/>
25*1212f9a0SAndroid Build Coastguard Worker  Next line should read: +*id9*+     <!-- id() same on both ends -->
26*1212f9a0SAndroid Build Coastguard Worker  <xsl:apply-templates select="id('id9')"/>
27*1212f9a0SAndroid Build Coastguard Worker  Next line should read: (*id13*)    <!-- simple id() here, path off top-level id() below -->
28*1212f9a0SAndroid Build Coastguard Worker  <xsl:apply-templates select="id('id13')"/>
29*1212f9a0SAndroid Build Coastguard Worker  Next line should read: -*id6*-     <!-- path off top-level id() here but not below -->
30*1212f9a0SAndroid Build Coastguard Worker  <xsl:apply-templates select="id('id0')/a/b"/>
31*1212f9a0SAndroid Build Coastguard Worker  Next line should read: @*id19*@    <!-- same path off top-level id() here and below -->
32*1212f9a0SAndroid Build Coastguard Worker  <xsl:apply-templates select="id('id0')/c/c/a"/>
33*1212f9a0SAndroid Build Coastguard Worker  Next line should read: %*id12*%    <!-- different paths off id() here and below -->
34*1212f9a0SAndroid Build Coastguard Worker  <xsl:apply-templates select="id('id8')/b/b"/>
35*1212f9a0SAndroid Build Coastguard Worker  Next line should read: !*id11*!    <!-- different paths off id(), middle here and top-level below -->
36*1212f9a0SAndroid Build Coastguard Worker  <xsl:apply-templates select="id('id10')/a"/>
37*1212f9a0SAndroid Build Coastguard Worker  Next line should read: [*id3*] \*id5*\ =*id16*=  <!-- union of id()-based paths -->
38*1212f9a0SAndroid Build Coastguard Worker  <xsl:apply-templates select="id('id2')/a | id('id5') | id('id15')/a"/>
39*1212f9a0SAndroid Build Coastguard Worker</xsl:template>
40*1212f9a0SAndroid Build Coastguard Worker
41*1212f9a0SAndroid Build Coastguard Worker<!-- Now the templates for the specific cases -->
42*1212f9a0SAndroid Build Coastguard Worker
43*1212f9a0SAndroid Build Coastguard Worker<xsl:template match="c">
44*1212f9a0SAndroid Build Coastguard Worker  Error if this (c) template fires!
45*1212f9a0SAndroid Build Coastguard Worker</xsl:template>
46*1212f9a0SAndroid Build Coastguard Worker
47*1212f9a0SAndroid Build Coastguard Worker<xsl:template match="b">
48*1212f9a0SAndroid Build Coastguard Worker  -<xsl:apply-templates/>-
49*1212f9a0SAndroid Build Coastguard Worker</xsl:template>
50*1212f9a0SAndroid Build Coastguard Worker
51*1212f9a0SAndroid Build Coastguard Worker<xsl:template match="id('id5')">
52*1212f9a0SAndroid Build Coastguard Worker  \<xsl:apply-templates/>\
53*1212f9a0SAndroid Build Coastguard Worker</xsl:template>
54*1212f9a0SAndroid Build Coastguard Worker
55*1212f9a0SAndroid Build Coastguard Worker<xsl:template match="id('id9')">
56*1212f9a0SAndroid Build Coastguard Worker  +<xsl:apply-templates/>+
57*1212f9a0SAndroid Build Coastguard Worker</xsl:template>
58*1212f9a0SAndroid Build Coastguard Worker
59*1212f9a0SAndroid Build Coastguard Worker<xsl:template match="id('id16')">
60*1212f9a0SAndroid Build Coastguard Worker  =<xsl:apply-templates/>=
61*1212f9a0SAndroid Build Coastguard Worker</xsl:template>
62*1212f9a0SAndroid Build Coastguard Worker
63*1212f9a0SAndroid Build Coastguard Worker<xsl:template match="id('id0')/a/a/a">
64*1212f9a0SAndroid Build Coastguard Worker  [<xsl:apply-templates/>]
65*1212f9a0SAndroid Build Coastguard Worker</xsl:template>
66*1212f9a0SAndroid Build Coastguard Worker
67*1212f9a0SAndroid Build Coastguard Worker<xsl:template match="id('id0')/b/b/a">
68*1212f9a0SAndroid Build Coastguard Worker  !<xsl:apply-templates/>!
69*1212f9a0SAndroid Build Coastguard Worker</xsl:template>
70*1212f9a0SAndroid Build Coastguard Worker
71*1212f9a0SAndroid Build Coastguard Worker<xsl:template match="id('id0')/c/c/a">
72*1212f9a0SAndroid Build Coastguard Worker  @<xsl:apply-templates/>@
73*1212f9a0SAndroid Build Coastguard Worker</xsl:template>
74*1212f9a0SAndroid Build Coastguard Worker
75*1212f9a0SAndroid Build Coastguard Worker<xsl:template match="id('id8')//b" priority="1">
76*1212f9a0SAndroid Build Coastguard Worker  %<xsl:apply-templates/>%
77*1212f9a0SAndroid Build Coastguard Worker</xsl:template>
78*1212f9a0SAndroid Build Coastguard Worker
79*1212f9a0SAndroid Build Coastguard Worker<xsl:template match="id('id8')//c" priority="2">
80*1212f9a0SAndroid Build Coastguard Worker  (<xsl:apply-templates/>)
81*1212f9a0SAndroid Build Coastguard Worker</xsl:template>
82*1212f9a0SAndroid Build Coastguard Worker
83*1212f9a0SAndroid Build Coastguard Worker
84*1212f9a0SAndroid Build Coastguard Worker  <!--
85*1212f9a0SAndroid Build Coastguard Worker   * Licensed to the Apache Software Foundation (ASF) under one
86*1212f9a0SAndroid Build Coastguard Worker   * or more contributor license agreements. See the NOTICE file
87*1212f9a0SAndroid Build Coastguard Worker   * distributed with this work for additional information
88*1212f9a0SAndroid Build Coastguard Worker   * regarding copyright ownership. The ASF licenses this file
89*1212f9a0SAndroid Build Coastguard Worker   * to you under the Apache License, Version 2.0 (the  "License");
90*1212f9a0SAndroid Build Coastguard Worker   * you may not use this file except in compliance with the License.
91*1212f9a0SAndroid Build Coastguard Worker   * You may obtain a copy of the License at
92*1212f9a0SAndroid Build Coastguard Worker   *
93*1212f9a0SAndroid Build Coastguard Worker   *     http://www.apache.org/licenses/LICENSE-2.0
94*1212f9a0SAndroid Build Coastguard Worker   *
95*1212f9a0SAndroid Build Coastguard Worker   * Unless required by applicable law or agreed to in writing, software
96*1212f9a0SAndroid Build Coastguard Worker   * distributed under the License is distributed on an "AS IS" BASIS,
97*1212f9a0SAndroid Build Coastguard Worker   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
98*1212f9a0SAndroid Build Coastguard Worker   * See the License for the specific language governing permissions and
99*1212f9a0SAndroid Build Coastguard Worker   * limitations under the License.
100*1212f9a0SAndroid Build Coastguard Worker  -->
101*1212f9a0SAndroid Build Coastguard Worker
102*1212f9a0SAndroid Build Coastguard Worker</xsl:stylesheet>
103