Проверять документы 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).

Суть это:

  1. Используйте файл XSL (RNG2Schtrn.xsl) для извлечения правил Schematron 1.5 из схемы RELAXNG

  2. Используйте проверочные XSL-файлы Schematron 1.5 (schematron-basic.xsl находится по адресу http://xml.ascc.net/schematron/1.5/basic1-5/schematron-basic.html) для создания проверочного XSL-файла из правил Schematron для документа DocBook.

  3. Обработайте документ DocBook, используя проверочный XSL, созданный на шаге 2, и найдите ошибки в выходных данных.

  4. Используйте инструмент, который может обрабатывать схемы RELAXNG, чтобы проверить остальную часть документа DocBook.

Другие вопросы по тегам