xref: /aosp_15_r20/external/libxml2/test/xsdtest/xsdtest.xsl (revision 7c5688314b92172186c154356a6374bf7684c3ca)
1*7c568831SAndroid Build Coastguard Worker<?xml version="1.0"?>
2*7c568831SAndroid Build Coastguard Worker<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
3*7c568831SAndroid Build Coastguard Worker
4*7c568831SAndroid Build Coastguard Worker<xsl:strip-space elements="xsdtest datatype equiv class"/>
5*7c568831SAndroid Build Coastguard Worker
6*7c568831SAndroid Build Coastguard Worker<xsl:output indent="yes" encoding="utf-8"/>
7*7c568831SAndroid Build Coastguard Worker
8*7c568831SAndroid Build Coastguard Worker<xsl:template match="xsdtest">
9*7c568831SAndroid Build Coastguard Worker  <testSuite>
10*7c568831SAndroid Build Coastguard Worker    <xsl:apply-templates/>
11*7c568831SAndroid Build Coastguard Worker  </testSuite>
12*7c568831SAndroid Build Coastguard Worker</xsl:template>
13*7c568831SAndroid Build Coastguard Worker
14*7c568831SAndroid Build Coastguard Worker<xsl:template match="datatype">
15*7c568831SAndroid Build Coastguard Worker<testSuite>
16*7c568831SAndroid Build Coastguard Worker<documentation>Datatype <xsl:value-of select="@name"/></documentation>
17*7c568831SAndroid Build Coastguard Worker<testCase>
18*7c568831SAndroid Build Coastguard Worker<requires datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
19*7c568831SAndroid Build Coastguard Worker<correct>
20*7c568831SAndroid Build Coastguard Worker<element xmlns="http://relaxng.org/ns/structure/1.0" name="doc"
21*7c568831SAndroid Build Coastguard Worker         datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
22*7c568831SAndroid Build Coastguard Worker  <data type="{@name}">
23*7c568831SAndroid Build Coastguard Worker    <xsl:for-each select="param">
24*7c568831SAndroid Build Coastguard Worker      <param name="{@name}"><xsl:value-of select="."/></param>
25*7c568831SAndroid Build Coastguard Worker    </xsl:for-each>
26*7c568831SAndroid Build Coastguard Worker  </data>
27*7c568831SAndroid Build Coastguard Worker</element>
28*7c568831SAndroid Build Coastguard Worker</correct>
29*7c568831SAndroid Build Coastguard Worker<xsl:apply-templates select="valid|invalid"/>
30*7c568831SAndroid Build Coastguard Worker</testCase>
31*7c568831SAndroid Build Coastguard Worker<xsl:apply-templates select="equiv/class|length|lessThan|incomparable"/>
32*7c568831SAndroid Build Coastguard Worker</testSuite>
33*7c568831SAndroid Build Coastguard Worker</xsl:template>
34*7c568831SAndroid Build Coastguard Worker
35*7c568831SAndroid Build Coastguard Worker<xsl:template match="valid">
36*7c568831SAndroid Build Coastguard Worker <xsl:call-template name="valid"/>
37*7c568831SAndroid Build Coastguard Worker</xsl:template>
38*7c568831SAndroid Build Coastguard Worker
39*7c568831SAndroid Build Coastguard Worker<xsl:template match="invalid">
40*7c568831SAndroid Build Coastguard Worker <xsl:call-template name="invalid"/>
41*7c568831SAndroid Build Coastguard Worker</xsl:template>
42*7c568831SAndroid Build Coastguard Worker
43*7c568831SAndroid Build Coastguard Worker<xsl:template name="valid">
44*7c568831SAndroid Build Coastguard Worker  <valid>
45*7c568831SAndroid Build Coastguard Worker    <xsl:apply-templates select="@internalSubset"/>
46*7c568831SAndroid Build Coastguard Worker    <doc>
47*7c568831SAndroid Build Coastguard Worker      <xsl:copy-of select="namespace::*"/>
48*7c568831SAndroid Build Coastguard Worker      <xsl:value-of select="."/>
49*7c568831SAndroid Build Coastguard Worker    </doc>
50*7c568831SAndroid Build Coastguard Worker  </valid>
51*7c568831SAndroid Build Coastguard Worker</xsl:template>
52*7c568831SAndroid Build Coastguard Worker
53*7c568831SAndroid Build Coastguard Worker<xsl:template name="invalid">
54*7c568831SAndroid Build Coastguard Worker  <invalid>
55*7c568831SAndroid Build Coastguard Worker    <xsl:apply-templates select="@internalSubset"/>
56*7c568831SAndroid Build Coastguard Worker    <doc>
57*7c568831SAndroid Build Coastguard Worker      <xsl:copy-of select="namespace::*"/>
58*7c568831SAndroid Build Coastguard Worker      <xsl:value-of select="."/>
59*7c568831SAndroid Build Coastguard Worker    </doc>
60*7c568831SAndroid Build Coastguard Worker  </invalid>
61*7c568831SAndroid Build Coastguard Worker</xsl:template>
62*7c568831SAndroid Build Coastguard Worker
63*7c568831SAndroid Build Coastguard Worker<xsl:template match="@internalSubset">
64*7c568831SAndroid Build Coastguard Worker  <xsl:param name="doc" select="'doc'"/>
65*7c568831SAndroid Build Coastguard Worker  <xsl:attribute name="dtd">
66*7c568831SAndroid Build Coastguard Worker    <xsl:text>
67*7c568831SAndroid Build Coastguard Worker&lt;!DOCTYPE </xsl:text>
68*7c568831SAndroid Build Coastguard Worker    <xsl:value-of select="$doc"/>
69*7c568831SAndroid Build Coastguard Worker    <xsl:text> [
70*7c568831SAndroid Build Coastguard Worker</xsl:text>
71*7c568831SAndroid Build Coastguard Worker    <xsl:value-of select="."/>
72*7c568831SAndroid Build Coastguard Worker    <xsl:text>
73*7c568831SAndroid Build Coastguard Worker]></xsl:text>
74*7c568831SAndroid Build Coastguard Worker  </xsl:attribute>
75*7c568831SAndroid Build Coastguard Worker</xsl:template>
76*7c568831SAndroid Build Coastguard Worker
77*7c568831SAndroid Build Coastguard Worker<xsl:template match="class">
78*7c568831SAndroid Build Coastguard Worker<testCase>
79*7c568831SAndroid Build Coastguard Worker<correct>
80*7c568831SAndroid Build Coastguard Worker  <xsl:for-each select="value[1]">
81*7c568831SAndroid Build Coastguard Worker    <xsl:apply-templates select="@internalSubset">
82*7c568831SAndroid Build Coastguard Worker      <xsl:with-param name="doc">element</xsl:with-param>
83*7c568831SAndroid Build Coastguard Worker    </xsl:apply-templates>
84*7c568831SAndroid Build Coastguard Worker    <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc"
85*7c568831SAndroid Build Coastguard Worker         datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
86*7c568831SAndroid Build Coastguard Worker      <value>
87*7c568831SAndroid Build Coastguard Worker        <xsl:copy-of select="namespace::*"/>
88*7c568831SAndroid Build Coastguard Worker        <xsl:attribute name="type"><xsl:value-of select="../../../@name"/></xsl:attribute>
89*7c568831SAndroid Build Coastguard Worker        <xsl:value-of select="."/>
90*7c568831SAndroid Build Coastguard Worker      </value>
91*7c568831SAndroid Build Coastguard Worker    </element>
92*7c568831SAndroid Build Coastguard Worker  </xsl:for-each>
93*7c568831SAndroid Build Coastguard Worker</correct>
94*7c568831SAndroid Build Coastguard Worker<xsl:for-each select="value[position() != 1]">
95*7c568831SAndroid Build Coastguard Worker  <xsl:call-template name="valid"/>
96*7c568831SAndroid Build Coastguard Worker</xsl:for-each>
97*7c568831SAndroid Build Coastguard Worker<xsl:for-each select="preceding-sibling::class/value|following-sibling::class/value">
98*7c568831SAndroid Build Coastguard Worker  <xsl:call-template name="invalid"/>
99*7c568831SAndroid Build Coastguard Worker</xsl:for-each>
100*7c568831SAndroid Build Coastguard Worker</testCase>
101*7c568831SAndroid Build Coastguard Worker</xsl:template>
102*7c568831SAndroid Build Coastguard Worker
103*7c568831SAndroid Build Coastguard Worker<xsl:template match="length">
104*7c568831SAndroid Build Coastguard Worker<testCase>
105*7c568831SAndroid Build Coastguard Worker<correct>
106*7c568831SAndroid Build Coastguard Worker<element xmlns="http://relaxng.org/ns/structure/1.0" name="doc"
107*7c568831SAndroid Build Coastguard Worker         datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
108*7c568831SAndroid Build Coastguard Worker  <data type="{../@name}">
109*7c568831SAndroid Build Coastguard Worker    <param name="length"><xsl:value-of select="@value"/></param>
110*7c568831SAndroid Build Coastguard Worker  </data>
111*7c568831SAndroid Build Coastguard Worker</element>
112*7c568831SAndroid Build Coastguard Worker</correct>
113*7c568831SAndroid Build Coastguard Worker<xsl:call-template name="valid"/>
114*7c568831SAndroid Build Coastguard Worker</testCase>
115*7c568831SAndroid Build Coastguard Worker
116*7c568831SAndroid Build Coastguard Worker<testCase>
117*7c568831SAndroid Build Coastguard Worker<correct>
118*7c568831SAndroid Build Coastguard Worker<element xmlns="http://relaxng.org/ns/structure/1.0" name="doc"
119*7c568831SAndroid Build Coastguard Worker         datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
120*7c568831SAndroid Build Coastguard Worker  <data type="{../@name}">
121*7c568831SAndroid Build Coastguard Worker    <param name="length"><xsl:value-of select="@value + 1"/></param>
122*7c568831SAndroid Build Coastguard Worker  </data>
123*7c568831SAndroid Build Coastguard Worker</element>
124*7c568831SAndroid Build Coastguard Worker</correct>
125*7c568831SAndroid Build Coastguard Worker<xsl:call-template name="invalid"/>
126*7c568831SAndroid Build Coastguard Worker</testCase>
127*7c568831SAndroid Build Coastguard Worker
128*7c568831SAndroid Build Coastguard Worker<xsl:if test="@value != 0">
129*7c568831SAndroid Build Coastguard Worker  <testCase>
130*7c568831SAndroid Build Coastguard Worker  <correct>
131*7c568831SAndroid Build Coastguard Worker  <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc"
132*7c568831SAndroid Build Coastguard Worker	   datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
133*7c568831SAndroid Build Coastguard Worker    <data type="{../@name}">
134*7c568831SAndroid Build Coastguard Worker      <param name="length"><xsl:value-of select="@value - 1"/></param>
135*7c568831SAndroid Build Coastguard Worker    </data>
136*7c568831SAndroid Build Coastguard Worker  </element>
137*7c568831SAndroid Build Coastguard Worker  </correct>
138*7c568831SAndroid Build Coastguard Worker  <xsl:call-template name="invalid"/>
139*7c568831SAndroid Build Coastguard Worker  </testCase>
140*7c568831SAndroid Build Coastguard Worker</xsl:if>
141*7c568831SAndroid Build Coastguard Worker
142*7c568831SAndroid Build Coastguard Worker</xsl:template>
143*7c568831SAndroid Build Coastguard Worker
144*7c568831SAndroid Build Coastguard Worker<xsl:template match="lessThan">
145*7c568831SAndroid Build Coastguard Worker<testCase>
146*7c568831SAndroid Build Coastguard Worker<correct>
147*7c568831SAndroid Build Coastguard Worker  <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc"
148*7c568831SAndroid Build Coastguard Worker	   datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
149*7c568831SAndroid Build Coastguard Worker    <data type="{../@name}">
150*7c568831SAndroid Build Coastguard Worker      <param name="minExclusive">
151*7c568831SAndroid Build Coastguard Worker        <xsl:value-of select="value[1]"/>
152*7c568831SAndroid Build Coastguard Worker      </param>
153*7c568831SAndroid Build Coastguard Worker    </data>
154*7c568831SAndroid Build Coastguard Worker   </element>
155*7c568831SAndroid Build Coastguard Worker</correct>
156*7c568831SAndroid Build Coastguard Worker<valid>
157*7c568831SAndroid Build Coastguard Worker<doc>
158*7c568831SAndroid Build Coastguard Worker<xsl:value-of select="value[2]"/>
159*7c568831SAndroid Build Coastguard Worker</doc>
160*7c568831SAndroid Build Coastguard Worker</valid>
161*7c568831SAndroid Build Coastguard Worker<invalid>
162*7c568831SAndroid Build Coastguard Worker<doc>
163*7c568831SAndroid Build Coastguard Worker<xsl:value-of select="value[1]"/>
164*7c568831SAndroid Build Coastguard Worker</doc>
165*7c568831SAndroid Build Coastguard Worker</invalid>
166*7c568831SAndroid Build Coastguard Worker</testCase>
167*7c568831SAndroid Build Coastguard Worker<testCase>
168*7c568831SAndroid Build Coastguard Worker<correct>
169*7c568831SAndroid Build Coastguard Worker  <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc"
170*7c568831SAndroid Build Coastguard Worker	   datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
171*7c568831SAndroid Build Coastguard Worker    <data type="{../@name}">
172*7c568831SAndroid Build Coastguard Worker      <param name="minExclusive">
173*7c568831SAndroid Build Coastguard Worker        <xsl:value-of select="value[2]"/>
174*7c568831SAndroid Build Coastguard Worker      </param>
175*7c568831SAndroid Build Coastguard Worker    </data>
176*7c568831SAndroid Build Coastguard Worker   </element>
177*7c568831SAndroid Build Coastguard Worker</correct>
178*7c568831SAndroid Build Coastguard Worker<invalid>
179*7c568831SAndroid Build Coastguard Worker<doc>
180*7c568831SAndroid Build Coastguard Worker<xsl:value-of select="value[1]"/>
181*7c568831SAndroid Build Coastguard Worker</doc>
182*7c568831SAndroid Build Coastguard Worker</invalid>
183*7c568831SAndroid Build Coastguard Worker<invalid>
184*7c568831SAndroid Build Coastguard Worker<doc>
185*7c568831SAndroid Build Coastguard Worker<xsl:value-of select="value[2]"/>
186*7c568831SAndroid Build Coastguard Worker</doc>
187*7c568831SAndroid Build Coastguard Worker</invalid>
188*7c568831SAndroid Build Coastguard Worker</testCase>
189*7c568831SAndroid Build Coastguard Worker</xsl:template>
190*7c568831SAndroid Build Coastguard Worker
191*7c568831SAndroid Build Coastguard Worker<xsl:template match="incomparable">
192*7c568831SAndroid Build Coastguard Worker<testCase>
193*7c568831SAndroid Build Coastguard Worker<correct>
194*7c568831SAndroid Build Coastguard Worker  <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc"
195*7c568831SAndroid Build Coastguard Worker	   datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
196*7c568831SAndroid Build Coastguard Worker    <data type="{../@name}">
197*7c568831SAndroid Build Coastguard Worker      <param name="minExclusive">
198*7c568831SAndroid Build Coastguard Worker        <xsl:value-of select="value[1]"/>
199*7c568831SAndroid Build Coastguard Worker      </param>
200*7c568831SAndroid Build Coastguard Worker    </data>
201*7c568831SAndroid Build Coastguard Worker   </element>
202*7c568831SAndroid Build Coastguard Worker</correct>
203*7c568831SAndroid Build Coastguard Worker<invalid>
204*7c568831SAndroid Build Coastguard Worker<doc>
205*7c568831SAndroid Build Coastguard Worker<xsl:value-of select="value[2]"/>
206*7c568831SAndroid Build Coastguard Worker</doc>
207*7c568831SAndroid Build Coastguard Worker</invalid>
208*7c568831SAndroid Build Coastguard Worker<invalid>
209*7c568831SAndroid Build Coastguard Worker<doc>
210*7c568831SAndroid Build Coastguard Worker<xsl:value-of select="value[1]"/>
211*7c568831SAndroid Build Coastguard Worker</doc>
212*7c568831SAndroid Build Coastguard Worker</invalid>
213*7c568831SAndroid Build Coastguard Worker</testCase>
214*7c568831SAndroid Build Coastguard Worker<testCase>
215*7c568831SAndroid Build Coastguard Worker<correct>
216*7c568831SAndroid Build Coastguard Worker  <element xmlns="http://relaxng.org/ns/structure/1.0" name="doc"
217*7c568831SAndroid Build Coastguard Worker	   datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
218*7c568831SAndroid Build Coastguard Worker    <data type="{../@name}">
219*7c568831SAndroid Build Coastguard Worker      <param name="minExclusive">
220*7c568831SAndroid Build Coastguard Worker        <xsl:value-of select="value[2]"/>
221*7c568831SAndroid Build Coastguard Worker      </param>
222*7c568831SAndroid Build Coastguard Worker    </data>
223*7c568831SAndroid Build Coastguard Worker   </element>
224*7c568831SAndroid Build Coastguard Worker</correct>
225*7c568831SAndroid Build Coastguard Worker<invalid>
226*7c568831SAndroid Build Coastguard Worker<doc>
227*7c568831SAndroid Build Coastguard Worker<xsl:value-of select="value[1]"/>
228*7c568831SAndroid Build Coastguard Worker</doc>
229*7c568831SAndroid Build Coastguard Worker</invalid>
230*7c568831SAndroid Build Coastguard Worker<invalid>
231*7c568831SAndroid Build Coastguard Worker<doc>
232*7c568831SAndroid Build Coastguard Worker<xsl:value-of select="value[2]"/>
233*7c568831SAndroid Build Coastguard Worker</doc>
234*7c568831SAndroid Build Coastguard Worker</invalid>
235*7c568831SAndroid Build Coastguard Worker</testCase>
236*7c568831SAndroid Build Coastguard Worker</xsl:template>
237*7c568831SAndroid Build Coastguard Worker
238*7c568831SAndroid Build Coastguard Worker</xsl:stylesheet>
239