Altova扩展函数
Altova扩展函数可以在XPath/XQuery表达式中使用。除了XPath、XQuery和XSLT标准函数库中可用的功能外,它们还提供了额外的功能。Altova扩展函数在Altova扩展函数命名空间中,http://www.altova.com/xslt-extensions,并在本部分中用altova:前缀表示,假定它与该命名空间绑定。请注意,这些函数可能在未来的产品版本中不被支持,或者个别函数的行为可能会发生变化。有关每个产品版本中对Altova扩展函数的支持的信息,请参见该版本的文档。
在W3C的XPath/XQuery函数规范中定义的函数可用于:(i) XSLT上下文中的XPath表达式,以及(ii) XQuery文档中的XQuery表达式。在本文档中,可用于XSLT上下文中的XPath表达式的函数,我们用XP符号表示并称它们为XPath函数;而可用于XQuery文档中的XQuery表达式的函数,我们用XQ表示并称它们为XQuery函数。W3C的XSLT规范(不是XPath/XQuery函数规范)也定义了可用于XSLT文档中的XPath表达式的函数。这些函数用XSLT符号表示,被称为XSLT函数。有关在哪个XPath/XQuery和XSLT版本中可以使用函数的信息,您可以在该函数的描述中找到(参见下方符号)。XPath/XQuery和XSLT函数库中的函数在列出时不带前缀。其他库中的扩展函数,如Altova扩展函数,在列出时带有前缀。
XPath函数(用于XSLT中的XPath表达式): | XP1 XP2 XP3.1 |
XSLT函数(用于XSLT的XPath表达式): | XSLT1 XSLT2 XSLT3 |
XQuery函数(用于XQuery的XQuery表达式): | XQ1 XQ3.1 |
Altova扩展函数用法
为了使用Altova扩展函数,您必须先声明Altova扩展函数命名空间(参见下方代码片段中第一个突出显示部分),然后使用扩展函数,使其被解析为属于该命名空间(参见第二个突出显示部分)。下方示例使用Altova名为age的Altova扩展函数。
<xsl:stylesheet version="2.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"
xmlns:altova="http://www.altova.com/xslt-extensions">
<xsl:output method="text" encoding="ISO-8859-1"/>
<xsl:template match="Persons">
<xsl:for-each select="Person">
<xsl:value-of select="concat(Name, ': ')"/>
<xsl:value-of select="altova:age(xs:date(BirthDate))"/>
<xsl:value-of select="' years
'"/>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
XSLT函数
XSLT函数仅可以在XSLT上下文中的XPath表达式中使用(类似于XSLT 2.0的current-group()或key()函数)。这些函数不是为非XSLT上下文设计的,也不会在非XSLT上下文中工作(例如,在XQuery上下文中)。请注意,针对XBRL的XSLT函数仅可以在有XBRL支持的Altova产品版本中使用。
XPath/XQuery函数
XPath/XQuery函数既可以在XSLT上下文中的XPath表达式中使用,也可以在XQuery表达式中使用:
•地理位置
•图像
•数值
•序列
•字符串
•其他
图表函数(仅企业版和服务器版)
针对图表的Altova扩展函数仅可在Altova产品的企业版和服务器版中使用,能够根据XML数据生成图表。