Annotation of embedaddon/libxml2/xstc/xstc-to-python.xsl, revision 1.1.1.1
1.1 misho 1: <?xml version="1.0" encoding="UTF-8" ?>
2: <xsl:stylesheet
3: xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
4: xmlns:ts="TestSuite" version="1.0"
5: xmlns:xl="http://www.w3.org/1999/xlink">
6: <xsl:param name="vendor" select="'NIST'"/>
7: <xsl:output method="text"/>
8:
9: <xsl:template match="/">
10: <xsl:text>#!/usr/bin/python -u
11: # -*- coding: UTF-8 -*-
12: #
13: # This file is generated from the W3C test suite description file.
14: #
15:
16: import xstc
17: from xstc import XSTCTestRunner, XSTCTestGroup, XSTCSchemaTest, XSTCInstanceTest
18:
19: xstc.vendor = "</xsl:text><xsl:value-of select="$vendor"/><xsl:text>"
20:
21: r = XSTCTestRunner()
22:
23: # Group definitions.
24:
25: </xsl:text>
26:
27: <xsl:apply-templates select="ts:testSet/ts:testGroup" mode="group-def"/>
28: <xsl:text>
29:
30: # Test definitions.
31:
32: </xsl:text>
33: <xsl:apply-templates select="ts:testSet/ts:testGroup" mode="test-def"/>
34: <xsl:text>
35:
36: r.run()
37:
38: </xsl:text>
39:
40: </xsl:template>
41:
42: <!-- groupName, descr -->
43: <xsl:template match="ts:testGroup" mode="group-def">
44: <xsl:text>r.addGroup(XSTCTestGroup("</xsl:text>
45: <!-- group -->
46: <xsl:value-of select="@name"/><xsl:text>", "</xsl:text>
47: <!-- main schema -->
48: <xsl:value-of select="ts:schemaTest[1]/ts:schemaDocument/@xl:href"/><xsl:text>", """</xsl:text>
49: <!-- group-description -->
50: <xsl:call-template name="str">
51: <xsl:with-param name="str" select="ts:annotation/ts:documentation/text()"/>
52: </xsl:call-template>
53: <xsl:text>"""))
54: </xsl:text>
55: </xsl:template>
56:
57: <xsl:template name="str">
58: <xsl:param name="str"/>
59: <xsl:choose>
60: <xsl:when test="contains($str, '"')">
61: <xsl:call-template name="str">
62: <xsl:with-param name="str" select="substring-before($str, '"')"/>
63: </xsl:call-template>
64: <xsl:text>'</xsl:text>
65: <xsl:call-template name="str">
66: <xsl:with-param name="str" select="substring-after($str, '"')"/>
67: </xsl:call-template>
68:
69: </xsl:when>
70: <xsl:otherwise>
71: <xsl:value-of select="$str"/>
72: </xsl:otherwise>
73: </xsl:choose>
74: </xsl:template>
75:
76: <xsl:template match="ts:testGroup" mode="test-def">
77: <xsl:param name="group" select="@name"/>
78: <xsl:for-each select="ts:schemaTest">
79: <!-- groupName, isSchema, Name, Accepted, File, Val, Descr -->
80: <xsl:text>r.addTest(XSTCSchemaTest("</xsl:text>
81: <!-- group -->
82: <xsl:value-of select="$group"/><xsl:text>", "</xsl:text>
83: <!-- test-name -->
84: <xsl:value-of select="@name"/><xsl:text>", </xsl:text>
85: <!-- accepted -->
86: <xsl:value-of select="number(ts:current/@status = 'accepted')"/><xsl:text>, "</xsl:text>
87: <!-- filename -->
88: <xsl:value-of select="ts:schemaDocument/@xl:href"/><xsl:text>", </xsl:text>
89: <!-- validity -->
90: <xsl:value-of select="number(ts:expected/@validity = 'valid')"/><xsl:text>, "</xsl:text>
91: <!-- test-description -->
92: <xsl:value-of select="ts:annotation/ts:documentation/text()"/><xsl:text>"))
93: </xsl:text>
94: </xsl:for-each>
95: <xsl:for-each select="ts:instanceTest">
96: <!-- groupName, isSchema, Name, Accepted, File, Val, Descr -->
97: <xsl:text>r.addTest(XSTCInstanceTest("</xsl:text>
98: <!-- group -->
99: <xsl:value-of select="$group"/><xsl:text>", "</xsl:text>
100: <!-- test-name -->
101: <xsl:value-of select="@name"/><xsl:text>", </xsl:text>
102: <!-- accepted -->
103: <xsl:value-of select="number(ts:current/@status = 'accepted')"/><xsl:text>, "</xsl:text>
104: <!-- filename -->
105: <xsl:value-of select="ts:instanceDocument/@xl:href"/><xsl:text>", </xsl:text>
106: <!-- validity -->
107: <xsl:value-of select="number(ts:expected/@validity = 'valid')"/><xsl:text>, "</xsl:text>
108: <!-- test-description -->
109: <xsl:value-of select="ts:annotation/ts:documentation/text()"/><xsl:text>"))
110: </xsl:text>
111: </xsl:for-each>
112: </xsl:template>
113:
114: </xsl:stylesheet>
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>