XSLT 3.0
XMLSpy的XSLT 3.0引擎符合万维网联盟(W3C)2017年6月8日的XSLT 3.0建议和2017年3月21日的XPath 3.1建议。
XSLT 3.0引擎具有与XSLT 2.0引擎相同的特定于实现的特点。此外,它还支持许多新的XSLT 3.0功能:XPath/XQuery 3.1函数和运算符,以及XPath 3.1规范。
提示: | 目前不支持可选的流媒体功能。整个文件将被加载到内存中,而不考虑streamable特性的值。如果有足够的内存可用,则:(i) 在没有流媒体的情况下处理整个文档,(ii) 将正确处理guaranteed-streamable constructs,就像执行时使用流媒体一样,以及(iii) 将不会检测到流媒体错误。在64位的应用程序中,非流式执行应该不是问题。如果内存确实是一个问题,解决方法是在系统中增加更多的内存。 |
命名空间
您的XSLT 3.0样式表应该声明以下命名空间,以便能够使用XSLT 3.0中所有可用的类型构造器和函数。通常使用下面给出的前缀;您可以根据需要使用其他前缀。
命名空间名称 | 前缀 | 命名空间URI |
XML Schema types | xs: | http://www.w3.org/2001/XMLSchema |
XPath/XQuery 3.1 functions | fn: | http://www.w3.org/2005/xpath-functions |
Math functions | math: | http://www.w3.org/2005/xpath-functions/math |
Map functions | map: | http://www.w3.org/2005/xpath-functions/map |
Array functions | array: | http://www.w3.org/2005/xpath-functions/array |
XQuery, XSLT, and XPath Error Codes | err: | http://www.w3.org/2005/xpath-functions/xqt-errors |
Serialization functions | output | http://www.w3.org/2010/xslt-xquery-serialization |
通常,这些命名空间将在xsl:stylesheet或xsl:transform元素上声明,如下方片段所示:
<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"
...
</xsl:stylesheet>
请注意以下几点:
•XSLT 3.0引擎使用XPath and XQuery Functions and Operators 3.1命名空间(已在上表中列出)作为其默认函数命名空间。因此,您可以在样式表中使用该命名空间的函数,而无需任何前缀。如果您在样式表中使用前缀来声明Functions命名空间,您可以额外使用声明中指定的前缀。
•使用XML Schema命名空间中的类型构造器和类型时,命名空间声明中使用的前缀必须在调用类型构造器(例如,xs:date)时使用。
•某些XPath/XQuery函数与XML Schema数据类型具有相同的名称。例如,对于XPath函数fn:string和fn:boolean,存在具有相同本地名称的XML Schema数据类型:xs:string和xs:boolean。因此,如果您要使用XPath表达式string('Hello'),则表达式将被计算为fn:string('Hello'),而不是xs:string('Hello')。