[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