3

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

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

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

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

1 ответ1

2

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .