找不到与名称空间'http://schemas.microsoft.com/office/infopath/20

本文关键字:microsoft schemas com office infopath http 空间 找不到 | 更新日期: 2023-09-27 18:14:16

我正在尝试将InfoPath文档从XML XSLT转换为HTML,并且我得到以下错误:

Cannot find a script or an extension object associated with namespace 'http://schemas.microsoft.com/office/infopath/2003/xslt/xDocument'.

是否有可能转换文档?我注意到XSL使用了像xdXDocument:GetDOM这样看起来像旧MSXML语法的函数。您能在转换过程中添加对MSXML的支持吗?

作为参考,命名空间为:

xmlns:xdXDocument="http://schemas.microsoft.com/office/infopath/2003/xslt/xDocument" 

本文建议您简单地使用InfoPath文档的打印视图——但我认为这可能是InfoPath 2007独有的(在2010年之后,似乎可以打印任何视图)。


作为题外话,我也尝试使用MSXML,我得到了类似的错误:

Namespace 'http://schemas.microsoft.com/office/infopath/2003/xslt/xDocument' does not contain any functions.
以下是我的MSXML代码:
var xml = new MSXML2.DOMDocument60();
xml.load(txtXmlFilePath.Text);
var lines = File.ReadAllLines(txtXslFilePath.Text);
// Seemingly need to strip out first <?xml... /> line to work
string sXsl = string.Join("'n", lines.Skip(1).ToArray());
var xsl = new MSXML2.DOMDocument60();
xsl.loadXML(sXsl);
string html = xml.transformNode(xsl);

所以基本的问题仍然存在—如何转换XSLT转换InfoPath文档?

找不到与名称空间'http://schemas.microsoft.com/office/infopath/20

xdXDocument:GetDOM()是一个扩展函数,用于在InfoPath中访问从数据源的数据。我曾经处理过使用InfoPath视图xslt将InfoPath XML文档转换为HTML的任务,我所知道的处理这些扩展函数的唯一方法是编写实现它们的扩展对象(如果不需要的话,您可以实现只返回这些函数空节点集的虚拟扩展对象)。

另一种方法是创建一个不引用表单辅助数据源的视图。