Annotation of embedaddon/libxml2/test/xsdtest/xsdtest.xsl, revision 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>