2015-06-11 1 views
0

Я хотел бы использовать файл каталога, чтобы заставить Саксон заткнуться о том, чтобы не найти DTD. В настоящее время я использую фиктивные DTDS и эмулирующую структуру папок, но это не идеально.с использованием файла каталога с saxon9he

Однако, когда я бегу преобразование, я получаю следующее сообщение об ошибке:

Transformation failed: Failed to load Apache catalog resolver library 

Вот как я называю Saxon от Altova:

java -jar "F:\saxon9he.jar" -s:%1 -o:%2 -xsl:%3 -t -catalog:"catalog.xml" 

Я скачал Xerces анализатор и взял распознаватель. банку оттуда. Это уже ошибка? (Он так сказал здесь: http://www.sagehill.net/docbookxsl/UseCatalog.html)

saxon9he.jar, то resolver.jar и catalog.xml все в той же папке.

Вот catalog.xml:

<?xml version="1.0"?> 
<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog"> 
    <public 
     publicId="-//EG//DTD EG DITA Map//EN" 
     uri="dtds/maps.dtd"/> 
    <public 
     publicId="-//EG//DTD EG DITA Composite//EN" 
     uri="dtds/topics.dtd"/> 
</catalog> 

Вот как DTDs смотрите в файлах:

<!DOCTYPE doc_map PUBLIC "-//EG//DTD EG DITA Map//EN" "../../system/dtd/client/eg-docmap.dtd"> 

<!DOCTYPE concept PUBLIC "-//EG//DTD EG DITA Composite//EN" "../../system/dtd/client/eg-dita.dtd"> 

Я создал папку dtd, которая содержит maps.dtd и topics.dtd (оба файла пусты).

Я смотрел этот пост: How to use saxon built-in catalog feature, но не смог получить форму решения, которая.

Это еще ошибка? Или я сделал что-то не так?

EDIT:

Консоль вывода:

Loading catalog: \catalog.xml 
Saxon-HE 9.6.0.4J from Saxonica 
Java version 1.7.0_09 
Stylesheet compilation time: 940.807978ms 
Processing file:/F:/export/folders.xml 
Using parser org.apache.xml.resolver.tools.ResolvingXMLReader 
Building tree for file:/F:/export/folders.xml using class 
net.sf.saxon.tree.tiny.TinyBuilder 
Tree built in 3.841258ms 
Tree size: 6 nodes, 0 characters, 6 attributes 
Building tree for file:/F:/export/test/532a1069faf343d79c4ad37f8339aeda.map using class net.sf.saxon.tree.tiny.TinyBuilder 
Error at template on line 33 of maps.xsl: 
    I/O error reported by XML parser processing 
    file:/F:/export/test/532a1069faf343d79c4ad37f8339aeda.map: F:\export\system\dtd\client\map.dtd (cannot find path) 
I/O error reported by XML parser processing file:/F:/export/test/532a1069faf343d79c4ad37f8339aeda.ditamap: F:\export\system\dtd\client\ 
map.dtd (cannot find path) 

ответ

0

Не используйте -jar вариант, если вы хотите загрузить программное обеспечение из более чем одного JAR-файла. Используйте параметр -cp для определения пути к классу, содержащего все необходимые JAR, и укажите желаемую точку входа (net.sf.saxon.Transform) явно.

+0

Думаю, теперь у меня это работает. Однако теперь он говорит, что он не находит DTD, хотя я поместил это DTD в файл каталога. – user3629892

+0

Похоже, вы добиваетесь прогресса. Получение каталогов может быть сложным. Я предполагаю, что ваш комментарий выше «просто упоминается», здесь явно недостаточно информации, чтобы помочь вам решить проблему. –

+0

Я отправил вывод, который я сейчас на консоли. Какая еще информация вам нужна? – user3629892