Altova XMLSpy 2024 Professional Edition

扩展函数可用于调用.NET构造器。所有构造器都是用伪函数new()调用的。如果一个类中有多个构造器,则将选择与提供的参数数量最匹配的构造器。如果没有找到与提供的参数匹配的构造器,则会返回一个错误'No constructor found’

 

返回XPath/XQuery数据类型的构造器

如果一个.NET构造器调用的结果可以隐式地转换为XPath/XQuery数据类型,则.NET扩展函数将返回一个XPath/XQuery数据类型的序列。

 

返回.NET对象的构造器

如果一个.NET构造器调用的结果不能被转换为合适的XPath/XQuery数据类型,则该构造器会创建一个.NET包装对象,其类型具有返回该对象的类的名称。例如,如果调用了System.DateTime类的构造器(System.DateTime.new()),则将返回一个System.DateTime类型的对象。

 

返回的对象的词法形式可能与所需的XPath数据类型的词法形式不一致。在这种情况下,返回的值需要:(i) 转换为所需的XPath数据类型的词法形式;以及(ii) 转换为所需的XPath数据类型。

 

对于由构造器创建的.NET对象,我们可以进行以下操作:

 

在一个变量中使用:
<xsl:variable name="currentdate" select="date:new(2008, 4, 29)" xmlns:date="clitype:System.DateTime" />

将其传递给一个扩展函数(参见实例方法和实例字段):
<xsl:value-of select="date:ToString(date:new(2008, 4, 29))" xmlns:date="clitype:System.DateTime" />

将其转换为字符串、数字或布尔值

<xsl:value-of select="xs:integer(date:get_Month(date:new(2008, 4, 29)))" xmlns:date="clitype:System.DateTime" />

 

© 2017-2023 Altova GmbH