繁体   English   中英

使用Altova MapForce生成的XSLT文件时出现XslCompiledTransform异常

[英]XslCompiledTransform exception when using Altova MapForce-generated XSLT file

我正在使用.NET的XslCompiledTransform来执行XSLT转换。 当我尝试使用通过Altova的MapForce工具自动生成的XSLT文件时,出现异常:

XSL conversion is failed: Cannot find the script or external object that implements prefix 'http://www.altova.com/xslt-extensions'.

从XSL样式表定义中:

<xsl:stylesheet ... xmlns:ns0="http://www.altova.com/xslt-extensions" ... >

...似乎Altova为XSLT定义了自己的扩展功能,而XslCompiledTransform不知道如何找到它们。 如何使XslCompiledTransform识别那些外部函数?

我不知道Mapforce的任何细节,但是我确实知道人们可以使用Saxon成功运行Mapforce生成的样式表。 也许(我在推测)如果您要求mapforce生成2.0样式表,则它不需要任何Altova扩展,然后可以使用2.0处理器(例如Saxon或XmlPrime)运行样式表。

(顺便说一下,微软已经很明确地表明他们不打算将XsltCompiledTransform升级到XSLT 2.0,因此您正在使用一种死胡同的技术。Saxon,Altova和XmlPrime都在向前发展; Saxon和XmlPrime不仅支持XSLT 2.0,但还有3.0的很大一部分。您会错过很多生产力方面的收益。)

通常,这些扩展不是便携式的,只有广泛的XSLT 1.0处理器(包括XslCompiledTransform)支持exsl:node-set类的EXSLT扩展。 如果您使用XML Spy开发并且想要使用.NET代码执行其样式表,则可以考虑将AltovaXML与.NET一起使用,请参见http://manual.altova.com/AltovaXML/altovaxmlcommunity/index.html?axnetinterface.htm ,而不是使用XslCompiledTransform。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM