Включить проверку схемы (.xsd) в проверку Schematron (.sch) [а не наоборот]

Поскольку реализовать структуру данных в XSD-файле проще и менее многословно, чем в Schematron, и поскольку у нас уже есть рабочие XSD-файлы для проверки отдельных объектов, я хотел бы включить их в качестве первого этапа проверки в свой Schematron.

Я нашел учебные пособия, описывающие обратное (встроенные правила Schematron в XSD).

Я нашел элемент <sch:include href="my.xsd">, но когда я проверяю (с помощью oXygen), это не имеет значения.

Кажется, я упускаю что-то очень очевидное, так как это должно поддерживаться без проблем или не должно?


person KarmaEDV    schedule 02.06.2017    source источник


Ответы (1)


Ну, насколько мне известно, нет концепции включения XSD в Schematron. Но поскольку вы можете внедрить XSLT в Schematron, а поддержка схемы XSLT может проверять ваши входные данные, вы можете использовать xsl:import-schema:

<sch:schema xmlns:sch="http://purl.oclc.org/dsdl/schematron" queryBinding="xslt2" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:sqf="http://www.schematron-quickfix.com/validator/process">

    <xsl:import-schema schema-location="path/to/my.xsd"/>

    <!-- [your schematron rules] -->
</sch:schema>

В oXygen вам нужно активировать поддержку схемы для проверки Schematron:

Настройки -> XML -> XML-Parser -> Schematron -> Использовать Saxon EE (с поддержкой схемы) для привязки языка запросов xslt2/xslt3.

person Nico Kutscherauer    schedule 09.06.2017
comment
Спасибо, единственное, что следует упомянуть, это то, что это премиум-функция, которую предоставляет только лицензионная версия EE библиотек Saxonica. oXygen может это сделать (потому что это платный продукт), но XMLbuddyValidator не может, так как он использует HE-версию саксонских библиотек. - person KarmaEDV; 14.06.2017