Altova XMLSpy 2024 Professional Edition

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&#x0A;'"/>

</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表达式中使用:

 

日期/时间

地理位置

图像

数值

序列

字符串

其他

 

© 2017-2023 Altova GmbH