2014-11-26 4 views
1

Я ищу решение для решения xincludes в документах, на которые ссылается функция document() (XSLT).Функция документа xslt не разрешает теги xinclude в ссылочном XML-файле

На моей оценке я попробовал xsltproc (не работает), и теперь я застрял на саксоне 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

ответ

0

Я просто добавил 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 

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

1

Я думаю, Saxon 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> 

и что путь Saxon выходы

<?xml version="1.0" encoding="UTF-8"?><root> 
    <test xml:base="test2014112605.xml">...</test> 
</root> 
+0

Благодарим вас за быстрый ответ. Я знаю, что Saxon 9.6 может это сделать, но мне также нужно иметь функцию saxon: оценивать или exsl: оценивать. Они доступны только в версии PE (или выше) Saxon 9.6. – markus0074