Проверять документы DocBook 5 как на RELAXNG, так и на Schematron?
Я пишу документ DocBook 5 и хотел бы полностью проверить его на соответствие схемам RELAXNG и Schematron.
Вот что я попробовал:
- Насколько мне известно, xmllint из пакета libxml2 не будет обрабатывать схемы RELAXNG со встроенным Schematron и автономную схему schematron (
docbook.sch
) не будет успешно скомпилирован в соответствии с xmllint. - MSV, кажется, справиться со всем хорошо, но я не использую
relames
JAR (я использую 2013.6.1), так что я точно не знаю, делает ли он встроенный Schematron или нет. - JNVDL также, казалось, работал, хотя он дал мне ошибку проверки, говорящую мне, что я использовал идентификатор несколько раз в своем документе, хотя на самом деле я использовал его только один раз.
Как я могу полностью проверить свой документ DocBook 5 на соответствие схемам RELAXNG и Schematron?
1 ответ
Это немного смущает, что я не заметил этого раньше, но я кое-что понял. Я до сих пор не нашел метод проверки, который будет правильно обрабатывать одну схему RELAXNG со встроенным Schematron, но я нашел способ правильно проверить документ DocBook 5.
Оказывается, что DocBook 5.0 не использует стандарт ISO Schematron, но вместо этого использует Schematron 1.5. Из-за этого мои попытки извлечь и проверить правила Schematron с использованием ресурсов ISO Schematron потерпели неудачу. Использование сценариев и метода XSL, описанных по адресу http://www.topologi.com/resources/schtrn_xsd_paper.html (обязательно получите устаревшие файлы RNG2Schtrn.xsl и XSD2Schtrn.xsl, которые работают с Schematron 1.5).
Суть это:
Используйте файл XSL (
RNG2Schtrn.xsl
) для извлечения правил Schematron 1.5 из схемы RELAXNGИспользуйте проверочные XSL-файлы Schematron 1.5 (
schematron-basic.xsl
находится по адресу http://xml.ascc.net/schematron/1.5/basic1-5/schematron-basic.html) для создания проверочного XSL-файла из правил Schematron для документа DocBook.Обработайте документ DocBook, используя проверочный XSL, созданный на шаге 2, и найдите ошибки в выходных данных.
Используйте инструмент, который может обрабатывать схемы RELAXNG, чтобы проверить остальную часть документа DocBook.