Я пытаюсь XSLT преобразовать документ InfoPath из XML в 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?