Как выполнить проверку схемы с помощью инструмента командной строки библиотеки Saxon Java? - PullRequest
3 голосов
/ 31 марта 2012

Очень простой вопрос - у меня есть xml-файл, и я хочу проверить его по файлу schematron.Как мне это сделать, используя саксонскую командную строку?

Согласно справке по командной строке Я не вижу никакой возможности указать файл схематора.

Ответы [ 2 ]

6 голосов
/ 06 мая 2014

Расширяя предыдущий ответ, потому что мне нужно было это сделать, и он не дал достаточно информации (а поскольку мой сценарий уже выполняет дюжину XSL-преобразований - что еще четыре?)

На основе этого веб-сайта XML-файл может быть проверен на схематроне с помощью серии XSL-преобразований.Так как мне также нужна была информация о том, как комбинировать с saxon - вот модификации для saxon, на коробке с windows, с файлом каталога.

Вот как я запускаю XSLT через командную строку saxon на моем компьютере (где FilePath зависит от системы):

java -cp "C:\FilePath\saxon9ee.jar;C:\FilePath\resolver.jar";. net.sf.saxon.Transform -s:inputFile.xml  -o:outputFile.xml  -xsl:C:\FilePath\transform.xsl -catalog:"C:\FilePath\catalog.xml" 

Важно отметить, что когда выиспользуя файл каталога с Saxon, вы должны указать его обратно в файл resolver.jar.

То есть с

XSLT = java -cp "C:\FilePath\saxon9ee.jar;C:\FilePath\resolver.jar";. net.sf.saxon.Transform -catalog:"C:\FilePath\catalog.xml"

Тогда информация с веб-сайта имеет смысл (найдя необходимый xslфайлы в oXygen):

 XSLT -input=xxx.sch  -output=xxx1.sch  -stylesheet=iso_dsdl_include.xsl
 XSLT -input=xxx1.sch  -output=xxx2.sch  -stylesheet=iso_abstract_expand.xsl
 XSLT -input=xxx2.sch  -output=xxx.xsl  -stylesheet=iso_svrl.xsl
 XSLT -input=document.xml  -output=xxx-document.svrl  -stylesheet=xxx.xsl

Вы берете файл schematron, запускаете его через три преобразования, чтобы получить файл xsl, который вы затем запускаете в исходном документе xml.На самом деле это делает сценарий относительно простым.

Последняя команда никогда не заполняла для меня выходной файл.Поскольку он работает нормально без одного и выводит сообщения в STOUT, я просто оставляю его и собираю результаты оттуда.

Извините, что углубился в детали, чем это, вероятно, необходимо, но я бы хотел, чтобывсе для начала.

2 голосов
/ 31 марта 2012

После долгих исследований кажется, что это на самом деле невозможно.Сначала мы должны сгенерировать документ xsl, а затем использовать его для проверки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...