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: &lt;!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>