我们正在C#中使用XSLT验证XML,并在进行转换时获取异常“找不到与名称空间'http://www.datapower.com/extensions相关联的脚本或扩展对象”。
问题?是否有任何扩展库可用于相同或任何其他解决方案来解决此问题。我们有如此多的第三方依赖项,并正在寻找通用的解决方案。
任何指针/帮助将不胜感激。
代码
Encoding utf8noBOM = new UTF8Encoding(false);
XsltArgumentList xsltArguments = null;
XsltExtension xsltExtension = new XsltExtension();
xsltArguments = new XsltArgumentList();
xsltArguments.AddExtensionObject("urn:actl-xslt", xsltExtension);
xsltArguments.AddExtensionObject("http://exslt.org/dates-and-times", new Mvp.Xml.Exslt.ExsltDatesAndTimes());
XPathDocument myXPathDocument = new XPathDocument(sourceDoc);
XslCompiledTransform myXslTransform = new XslCompiledTransform(true);
XmlTextWriter writer = new XmlTextWriter(resultDoc, null);
myXslTransform.Load(xsltDoc);
myXslTransform.Transform(myXPathDocument, xsltArguments, writer);
writer.Close();
XSL快照
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns="http://www.w3.org/1999/XSL/Transform" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:regexp="http://exslt.org/regular-expressions"
xmlns:dyn="http://exslt.org/dynamic"
xmlns:func="http://exslt.org/functions"
xmlns:date="http://exslt.org/dates-and-times"
xmlns:dp="http://www.datapower.com/extensions"
date:doc="http://www.exslt.org/date"
extension-element-prefixes="dp date" exclude-result-prefixes="dp dyn regexp date func" version="1.0">