2012-03-31 5 views
3

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

Согласно commandline ссылка Я не вижу никакой опции для указания файла схемы.

ответ

2

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

6

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

на основе this website XML-файл может быть проверен против схематрона посредством серии преобразований XSL. Так как мне также нужна была информация о том, как сочетаться с саксоном - вот модификации саксона, окна окна, с файлом каталога.

Вот как я запускаю XSLT через саксонской командную строку на компьютере (где 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" 

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

Так с

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

Затем информация с веб-сайта имеет смысл (найдя необходимые XSL файлы в кислороде):

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, я просто оставляю его и собираю результаты оттуда.

Извините за то, что вы входите в более подробную информацию, чем это возможно, но я бы хотел, чтобы у меня было все это для начала.

Смежные вопросы