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