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