XSLT 2.0 implementation

The call system-property('xsl:vendor') now returns the string "Saxonica". Previously it returned a more complex string that also identified the product version; this information should now be obtained using the XSLT 2.0 system properties such as system-property('xsl:product-version'). Information on the values returned for each system property is at XSLT 2.0 Conformance.

The handling of type errors in an <xsl:if>, or an <xsl:choose> with no <xsl:otherwise> branch, has been made less draconian. If the construct appears in a context where it is not allowed to return an empty sequence, the type error is no longer reported statically, but is only reported if the implicit else/otherwise branch is actually taken at run-time. The immediate motivation for this change is that it enables stylesheets generated using Altova's products to be executed; it also appears to be a more reasonable interpretation of the intent of the specification.