xsl-list
[Top] [All Lists]

Fwd: [xsl] XSLT 3.0 and XML Schema version

2013-11-20 04:26:18
If I feed the following stylesheet into an XSLT 3 processor, will the output be implementation dependant?

<xsl:stylesheet
  version="3.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
  xmlns:xs="http://www.w3.org/2001/XMLSchema";
  xmlns:fn="http://www.w3.org/2005/xpath-functions";
  exclude-result-prefixes="xsl xs fn">
 <xsl:output omit-xml-declaration="yes" />

<xsl:variable name="SomeDate" as="xs:date" select="xs:date('-0001-03-01')" />

 <xsl:template match="/">
<aYearLater><xsl:value-of select="$SomeDate + xs:dayTimeDuration('P365D')" />
  </aYearLater>
 </xsl:template>

</xsl:stylesheet>

This question really boils down to: Are compliant XSLT 3.0 processors required to respect a specific version of XML Schema?, or is the implementer free to choose? My reading of the XSLT 3.0 spec (draft 10) says the are free to choose, however I could easily be mistaken about this. The spec is replete with many references to XSD 1.1, and none to XSD 1.0 . XSD 1.0 is not even listed in the normative references, which one could interpret as a rule that a compliant processor must respect XSD 1.1, and not XSD 1.0 .

If the XML processor under the XSLT processor respects XSD 1.0, then, by my calculations, the output should be ...

<aYearLater>0001-02-29</aYearLater>

... but if XSD 1.1, then it should be ...

  <aYearLater>0000-03-01</aYearLater>

On a side note, if you change the xsl:stylesheet/@version to 2.0 and feed the stylesheet to Saxon HE 9.5, then you get output ...

  <aYearLater>0001-03-01</aYearLater>


Faithfully,
Sean B. Durkin




--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--

<Prev in Thread] Current Thread [Next in Thread>