From: Todd Gochenour [mailto:todd.gochenour@gmail.com]
Sent: 17 April 2009 21:05
To: Mailing list for the SAXON XSLT and XQuery processor
Subject: Re: [saxon] XPath result different between XALAN and SAXON

Adding three more issues found today:
 
1) saxon:evaluate() doesn't allow variables references so dyn:evaluate("$data//record[@id='1']/field" has been converted to saxon:evaluate('$p1//record[@id='1']/field', $data)
2) //command[1] has been converted to (//command)[1] when used within <xsl:value-of/> 
 
3) iterating <xsl:for-each/> atomic tokens drops document context in Saxon so fix by setting a variable to remember the context within the iterative logic 
 
As explained in my previous reply, XSLT 1.0 does not allow sequences of atomic tokens, so I'm puzzled what you mean by this one.
 
4) some of the exsl functions are now intrinsically supported by XPath 2.0 so remove the namespace and fix the casting issues

5) duplicate global parameters were used in import templates to eliminate syntax errors squiggly lines in oXygen editor.  Saxon doesn’t allow duplicates 

 

There's no change here between XSLT 1.0 and XSLT 2.0. Two global parameters can have the same name if and only if they have different import precedence.

 

6) Ambiguous rule matched within same template allowed in Xalan and not allowed in Saxon 

 

This is defined in both XSLT 1.0 and XSLT 2.0 as a "recoverable error". By default in Saxon it is a warning, but it can be configured to be ignored or treated as a fatal error if you prefer.

 

7) ISO8601 dateTime format not allowed when timezone is missing ':' between hour and minute 

 

XSLT 1.0 doesn't have any support for dates and times, so you are presumably comparing here with a non-standard extension.

 

Michael Kay

Saxonica