<?xml version="1.0" encoding="UTF-8"?>
<essay xml:lang="en" version="pto" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:gal="http://norman.walsh.name/rdf/gallery#">
<info>
    
    
    
    
    
    
    
    
<title>XSLT 2.0 RELAX NG Grammar</title><biblioid class="uri">http://norman.walsh.name/2005/04/07/xslt20</biblioid>
<volumenum>8</volumenum>
<issuenum>51</issuenum>
<pubdate>2005-04-07T12:51:39-04:00</pubdate>
<date>$Date: 2005-09-11 10:27:02 -0400 (Sun, 11 Sep 2005) $</date>
<author>
      <personname>
<firstname>Norman</firstname>
	<surname>Walsh</surname>
</personname>
    </author>
<copyright>
      <year>2005</year>
      <holder>Norman Walsh</holder>
    </copyright>
<abstract>
<para>I've fixed a few bugs in my XSLT 2.0 RELAX NG Grammar.</para>
</abstract>
<dcterms:replaces>http://norman.walsh.name/2004/07/25/xslt20</dcterms:replaces>
<dc:subject rdf:resource="http://norman.walsh.name/knows/taxonomy#RELAXNG"/>
<dc:subject rdf:resource="http://norman.walsh.name/knows/taxonomy#XSLT2"/>
</info>

<para xml:id="p1">A few months ago, I
<link xlink:href="/2004/07/25/xslt20">wrote about</link> validating
XSLT 2.0 with RELAX NG. I provided a RELAX NG Grammar
that validates both XSLT 1.0 and XSLT 2.0 by using the
<code>externalRef</code> feature of RELAX NG.</para>

<para xml:id="p2">That grammar has served me well in the intervening months, but
a few bugs have been reported:</para>

<itemizedlist>
<listitem>
<para xml:id="p3"><literal>#all</literal> isn't allowed in
<tag class="attribute">exclude-result-prefixes</tag>.
</para>
</listitem>
<listitem>
<para xml:id="p4">Neither <literal>#all</literal> nor <literal>#default</literal>
is allowed in <tag class="attribute">mode</tag>.
</para>
</listitem>
<listitem>
<para xml:id="p5">The <tag class="attribute">separator</tag> attribute isn't
allowed on <tag>xsl:value-of</tag>.
</para>
</listitem>
<listitem>
<para xml:id="p6">Content isn't allowed in <tag>xsl:value-of</tag> (as an
alternative to <tag class="attribute">select</tag>).
</para>
</listitem>
<listitem>
<para xml:id="p7"><tag class="attribute">collation</tag> isn't allowed on
<tag>xsl:sort</tag>.
</para>
</listitem>
</itemizedlist>

<para xml:id="p8">I think I've fixed those bugs in
<link xlink:href="examples/xslt20.rnc">xslt20.rnc</link> which works
with the (unmodified) 
<link xlink:href="examples/xslt10.rnc">xslt10.rnc</link> and
<link xlink:href="examples/xslt.rnc">xslt.rnc</link>.</para>

<para xml:id="p9">Please report any bugs that you find. Share and enjoy!</para>

</essay>

