Схематрон - Schematron
Эта статья слишком полагается на Рекомендации к основные источники.Июль 2010 г.) (Узнайте, как и когда удалить этот шаблон сообщения) ( |
Схематрон основан на правилах Проверка язык для утверждений о наличии или отсутствии закономерностей в XML деревья. Это язык структурных схем, выраженный в XML с использованием небольшого количества элементов и XPath.
В типичной реализации XML схемы Schematron обрабатывается в нормальный XSLT код для развертывания везде, где можно использовать XSLT.
Schematron способен выражать ограничения способами, которые другие языки схем XML, например Схема XML и DTD не можешь. Например, он может потребовать, чтобы содержимое элемента контролировалось одним из его братьев и сестер. Или он может запросить или потребовать, чтобы корневой элемент, независимо от того, какой это элемент, имел определенные атрибуты. Schematron также может указывать необходимые отношения между несколькими файлами XML.
Ограничения и правила содержимого могут быть связаны с сообщениями об ошибках проверки на «простом английском», что позволяет переводить числовые коды ошибок Schematron в понятные сообщения об ошибках пользователя.
Электрический ток ISO рекомендация Информационные технологии, языки определения схем документов (DSDL), Часть 3: Проверка на основе правил, Schematron (ИСО / МЭК 19757-3: 2020).
Использует
Ограничения указываются в Schematron с использованием языка на основе XPath, который может быть развернут как код XSLT, что делает его практичным для таких приложений, как следующие:
- Дополнение к структурной валидации
- Путем тестирования ограничений совместной встречаемости, нерегулярных ограничений и ограничений между документами Schematron может расширять проверки, которые могут быть выражены на таких языках, как DTD, РЕЛАКС НГ или же Схема XML.[1]
- Легкий механизм бизнес-правил
- Schematron не является всеобъемлющим, Сеть механизм правил, но его можно использовать для выражения правил сложных структур с помощью XML-документа.
- Правила выделения синтаксиса редактора XML
- Некоторые редакторы XML используют правила Schematron для условного выделения файлов XML на предмет ошибок. Не все редакторы XML поддерживают Schematron.
Версии
Schematron был изобретен Рик Джеллифф в Academia Sinica Вычислительный центр, Тайвань. Он описал Schematron как " метелка из перьев чтобы добраться до частей, недоступных для других языков схемы ".
Наиболее распространенные версии Schematron:
- Schematron 1.0 (1999)
- Schematron 1.3 (2000): в этой версии использовалось пространство имен http://xml.ascc.net/schematron/. Он поддерживался реализацией XSLT с подключаемой архитектурой.
- Schematron 1.5 (2001): Эта версия была широко внедрена, и ее до сих пор можно найти.
- Схема 1.6 (2002): Эта версия была базой для ISO Schematron и ею была устарела.
- Схема ISO (2006): Эта версия упорядочивает несколько функций и предоставляет выходной XML-формат, язык отчета о проверке подлинности Schematron (SVRL).[2] Он использует новое пространство имен http://purl.oclc.org/dsdl/schematron.
- ISO Schematron (2010): эта предлагаемая версия добавляет поддержку XSLT2 и произвольных свойств.
Schematron как стандарт ISO
Schematron был стандартизирован ISO как Информационные технологии, языки определения схем документов (DSDL), Часть 3: Проверка на основе правил, Schematron (ИСО / МЭК 19757-3: 2016).
Этот стандарт доступен бесплатно на Общедоступные спецификации ISO список. Бумажные версии можно приобрести в ISO или национальных органах по стандартизации.
Схемы, использующие ISO / IEC FDIS 19757-3, должны использовать следующее пространство имен:
http://purl.oclc.org/dsdl/schematron
Пример правила
Правила Schematron могут быть созданы с помощью стандартного редактора XML или XForms заявление. Ниже приведен образец схемы:
<схема xmlns ="http://purl.oclc.org/dsdl/schematron"> <pattern> <title>Правила свидания</title> <правило context ="Договор"> <утверждать test ="ContractDate & lt; current-date ()">ContractDate должен быть в прошлом, потому что будущие контракты не разрешены.</assert> </rule> </pattern></schema>
Это правило проверяет, имеет ли XML-элемент ContractDate дату, предшествующую текущей дате. Если это правило не выполняется, проверка завершится неудачно, и пользователю будет возвращено сообщение об ошибке, которое является телом элемента assert.
Выполнение
Схемы Schematron подходят для использования в XML конвейеры, тем самым позволяя разработчикам рабочих процессов создавать и поддерживать правила с помощью инструментов обработки XML. W3C's XProc язык конвейерной обработки, например, имеет встроенную поддержку обработки схемы Schematron на этапе «проверка с помощью схемы».[3]
Поскольку схемы Schematron можно преобразовать в XSLT таблицы стилей, они сами могут использоваться в конвейерах XML, которые поддерживают преобразование XSLT. An Apache Ant Задача может использоваться для преобразования правил Schematron в файлы XSLT.
Существует также собственная реализация Schematron, такая как реализация Java от Innovimax /INRIA, QuiXSchematron, это тоже потоковая передача.
Смотрите также
- Сравнение языков схемы XML - Сравнение с другими языками схем XML.
- Язык моделирования услуг - Язык моделирования услуг использует Schematron.
- Языки определения схемы документа
Рекомендации
- ^ Феннелл, Филип (июнь 2014 г.). "Schematron - полезнее, чем вы думали". XML Лондон 2014: 103–112. Дои:10.14337 / XMLLondon14.Fennell01. ISBN 978-0-9926471-1-7.
- ^ Часть 3: Проверка на основе правил - Schematron (ISO / IEC 19757-3: 2006) (zip), Информационные технологии - Языки определения схем документов (DSDL), ISO / IEC, 2006-06-01, получено 2014-06-15
- ^ «XProc: язык конвейера XML». Консорциум World Wide Web. 2010-05-11. Получено 2012-11-12.
| раздел =
игнорируется (помощь)