2 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
4 <xsl:output encoding="utf-8"/>
6 <xsl:param name="dir" select="'.'"/>
8 <xsl:template match="testSuite">
10 <xsl:apply-templates select="//testCase"/>
14 <xsl:variable name="incorrectSchemaName" select="'i.rng'"/>
15 <xsl:variable name="correctSchemaName" select="'c.rng'"/>
16 <xsl:variable name="invalidInstanceSuffix" select="'.i.xml'"/>
17 <xsl:variable name="validInstanceSuffix" select="'.v.xml'"/>
19 <xsl:template match="testCase">
20 <xsl:variable name="b" select="concat($dir, '/', format-number(position(),'000'))"/>
22 <xsl:variable name="f">
24 <xsl:when test="correct">
25 <xsl:value-of select="$correctSchemaName"/>
28 <xsl:value-of select="$incorrectSchemaName"/>
32 <document href="{concat($b, '/', $f)}" method="xml">
33 <xsl:for-each select="correct|incorrect">
34 <xsl:call-template name="copy"/>
37 <xsl:apply-templates select="resource|dir">
38 <xsl:with-param name="base" select="$b"/>
39 </xsl:apply-templates>
40 <!-- Don't combine so that position is correct. -->
41 <xsl:apply-templates select="valid|invalid">
42 <xsl:with-param name="base" select="$b"/>
43 </xsl:apply-templates>
46 <xsl:template match="valid">
47 <xsl:param name="base"/>
48 <xsl:variable name="d" select="concat($base, '/', position(), $validInstanceSuffix)"/>
49 <document href="{$d}" method="xml">
50 <xsl:call-template name="copy"/>
54 <xsl:template match="invalid">
55 <xsl:param name="base"/>
56 <xsl:variable name="d" select="concat($base, '/', position(), $invalidInstanceSuffix)"/>
57 <document href="{$d}" method="xml">
58 <xsl:call-template name="copy"/>
62 <xsl:template match="resource">
63 <xsl:param name="base"/>
66 <document href="{$base}/{@name}" method="xml">
67 <xsl:call-template name="copy"/>
71 <document href="{$base}/{@name}" method="text" encoding="utf-8">
72 <xsl:value-of select="."/>
78 <xsl:template name="copy">
79 <xsl:copy-of select="@dtd|node()"/>
82 <xsl:template match="dir">
83 <xsl:param name="base"/>
84 <xsl:variable name="d" select="concat($base, '/', @name)"/>
86 <xsl:apply-templates select="resource|dir">
87 <xsl:with-param name="base" select="$d"/>
88 </xsl:apply-templates>