[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Subject: Re: Test suite for RELAX NG DTD compatibility spec.
> > I have an XSL > > stylesheet that splits things up using naming conventions to distinguish > > correct/incorrect schemas and valid/invalid instances > > Is there any plan to release that stylesheet? Here it is. It uses some SAXON extensions. James
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:saxon="http://icl.com/saxon"
extension-element-prefixes="saxon">
<xsl:output method="text"/>
<xsl:param name="dir" select="'.'"/>
<xsl:template match="/">
<xsl:apply-templates select="//testCase"/>
</xsl:template>
<xsl:variable name="incorrectSchemaName" select="'i.rng'"/>
<xsl:variable name="correctSchemaName" select="'c.rng'"/>
<xsl:variable name="invalidInstanceSuffix" select="'.i.xml'"/>
<xsl:variable name="validInstanceSuffix" select="'.v.xml'"/>
<xsl:template match="testCase">
<xsl:variable name="b" select="concat($dir, '/', format-number(position(),'000'))"/>
<xsl:call-template name="mkdir">
<xsl:with-param name="dir" select="$b"/>
</xsl:call-template>
<xsl:variable name="f">
<xsl:choose>
<xsl:when test="correct">
<xsl:value-of select="$correctSchemaName"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$incorrectSchemaName"/>
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
<saxon:output href="{concat($b, '/', $f)}" method="xml">
<xsl:copy-of select="(correct|incorrect)/node()"/>
</saxon:output>
<xsl:apply-templates select="valid|invalid|resource|dir">
<xsl:with-param name="base" select="$b"/>
</xsl:apply-templates>
</xsl:template>
<xsl:template match="valid">
<xsl:param name="base"/>
<xsl:variable name="d" select="concat($base, '/', position(), $validInstanceSuffix)"/>
<saxon:output href="{$d}" method="xml">
<xsl:copy-of select="node()"/>
</saxon:output>
</xsl:template>
<xsl:template match="invalid">
<xsl:param name="base"/>
<xsl:variable name="d" select="concat($base, '/', position(), $invalidInstanceSuffix)"/>
<saxon:output href="{$d}" method="xml">
<xsl:copy-of select="node()"/>
</saxon:output>
</xsl:template>
<xsl:template match="resource">
<xsl:param name="base"/>
<saxon:output href="{$base}/{@name}" method="xml">
<xsl:copy-of select="node()"/>
</saxon:output>
</xsl:template>
<xsl:template match="dir">
<xsl:param name="base"/>
<xsl:variable name="d" select="concat($base, '/', @name)"/>
<xsl:call-template name="mkdir">
<xsl:with-param name="dir" select="$d"/>
</xsl:call-template>
<xsl:apply-templates select="resource|dir">
<xsl:with-param name="base" select="$d"/>
</xsl:apply-templates>
</xsl:template>
<xsl:template name="mkdir">
<xsl:param name="dir"/>
<xsl:value-of select="substring(File:mkdir(File:new($dir)),0,0)"
xmlns:File="java:java.io.File"/>
</xsl:template>
</xsl:stylesheet>
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Powered by eList eXpress LLC