Функция документа xslt не разрешает теги xinclude в указанном XML-файле

Я ищу решение для разрешения xinclude в документах, на которые ссылается функция document() (XSLT).

На моей оценке я попробовал xsltproc (не работает), и теперь я остановился на saxon 6.5.5 в сочетании с apache xerces 2.11.0.

Это моя текущая командная строка.

java.exe  -cp lib\xercesImpl-2.7.1.jar;\lib\saxon.jar 
 -Djavax.xml.parsers.DocumentBuilderFactory=org.apache.xerces.jaxp.DocumentBuilderFactoryImpl  
 -Djavax.xml.parsers.SAXParserFactory= org.apache.xerces.jaxp.SAXParserFactoryImpl  
 -Dorg.apache.xerces.xni.parser.XMLParserConfiguration=org.apache.xerces.parsers.XIncludeParserConfiguration 
 com.icl.saxon.StyleSheet 
 -o OUTPUT.XML INPUT.XML COPY.XSLT  

Может быть, мне нужно добавить некоторые параметры или использовать дополнительные библиотеки. Спасибо за ваш ответ. BR

Markus

2 ответа

Решение

Я просто добавил URI Resolver в командной строке.

-Dorg.apache.xerces.xni.parser.XMLParserConfiguration=org.apache.xerces.parsers.XIncludeParserConfiguration 
 net.sf.saxon.Transform
 -x:org.apache.xml.resolver.tools.ResolvingXMLReader
 -y:org.apache.xml.resolver.tools.ResolvingXMLReader
 -r:org.apache.xml.resolver.tools.CatalogResolver   

Я хочу поблагодарить Микаэля Кея и Дэйва Поусона за помощь.

Я думаю, что Саксонская 9 Java имеет xi опция командной строки, которая делает XInclude, например, с Saxon 9.6 HE, я пытался -xi -it:main -xsl:test2014112604.xsl с таблицей стилей

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:mf="http://example.com/mf"
    exclude-result-prefixes="xs mf"
    version="2.0">

<xsl:template name="main">
  <xsl:copy-of select="document('test2014112604.xml')"/>
</xsl:template>

</xsl:stylesheet>

и файлы test2014112604.xsl как

<root>
  <include xmlns="http://www.w3.org/2001/XInclude" href="test2014112605.xml"/>
</root>

и включены как

<test>...</test>

и таким образом саксонские выходы

<?xml version="1.0" encoding="UTF-8"?><root>
  <test xml:base="test2014112605.xml">...</test>
</root>
Другие вопросы по тегам