Проверять документы DocBook 5 как на RELAXNG, так и на Schematron?

538
Robert Winslow Dalpe

Я пишу документ для DocBook 5 и хотел бы полностью проверить его на соответствие схемам RELAXNG и Schematron.

Вот что я попробовал:

  • Насколько мне известно, xmllint из пакета libxml2 не будет обрабатывать схемы RELAXNG со встроенным Schematron, а автономная схема schemaron ( docbook.sch) не будет успешно компилироваться в соответствии с xmllint.
  • MSV, кажется, обрабатывает все в порядке, но я не использую relamesJAR (я использую 2013.6.1), поэтому я не знаю точно, выполняет ли он встроенный Schematron или нет.
  • JNVDL также, казалось, работал, хотя он дал мне ошибку проверки, говорящую мне, что я использовал ID несколько раз в своем документе, хотя на самом деле я использовал его только один раз.

Как полностью проверить документ DocBook 5 по схемам RELAXNG и Schematron?

3
Я перефразировал ваш вопрос, чтобы он не был закрыт как не по теме, как запрос на рекомендацию по программному обеспечению. Это должно быть по теме сейчас. Я не знаю ответа, но по крайней мере он не будет (не должен) быть закрыт сейчас. Horn OK Please 10 лет назад 0

1 ответ на вопрос

2
Robert Winslow Dalpe

Это немного смущает, что я не заметил этого раньше, но я кое-что понял. Я до сих пор не нашел метод проверки, который будет правильно обрабатывать одну схему 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#Processing (обязательно получите устаревшие файлы 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.