stringtranslate.com

Схематрон

Schematron — это язык проверки на основе правил для утверждения о наличии или отсутствии шаблонов в деревьях XML . Это язык структурных схем, выраженный в XML с использованием небольшого количества элементов и языков XPath . Во многих реализациях XML Schematron преобразуется в код XSLT для развертывания везде, где может использоваться XSLT.

Schematron способен выражать ограничения способами, которые не могут другие языки схем XML, такие как XML Schema и DTD . Например, он может потребовать, чтобы содержимое элемента контролировалось одним из его родственных элементов. Или он может запросить или потребовать, чтобы корневой элемент, независимо от того, какой это элемент, имел определенные атрибуты. Schematron также может указывать требуемые отношения между несколькими файлами XML. Ограничения и правила содержимого могут быть связаны с сообщениями об ошибках проверки на «простом английском» (или любом другом языке), что позволяет переводить числовые коды ошибок Schematron в осмысленные пользовательские сообщения об ошибках. Пользователи Schematron сами определяют все сообщения об ошибках. [1]

Текущая рекомендация ISO — Информационные технологии, Языки определения схем документов (DSDL) , Часть 3: Проверка на основе правил, Schematron (ISO/IEC 19757-3:2020).

Использует

Ограничения задаются в Schematron с использованием языка на основе XPath, который можно развернуть как код XSLT, что делает его практичным для таких приложений, как:

Дополнение к структурной проверке
Проверяя ограничения совместного появления, нерегулярные ограничения и междокументные ограничения, Schematron может расширить проверки, которые могут быть выражены на таких языках, как DTD , RELAX NG или XML Schema . [2]
Легкий движок бизнес-правил
Schematron не является всеобъемлющим механизмом правил Rete , но его можно использовать для выражения правил, касающихся сложных структур, с помощью XML-документа.
Правила подсветки синтаксиса редактора XML
Некоторые редакторы XML используют правила Schematron для условного выделения файлов XML на наличие ошибок. Не все редакторы XML поддерживают Schematron.

Версии

Schematron был изобретен Риком Джеллиффом в вычислительном центре Academia Sinica , Тайвань. Он описал Schematron как « перьевую метелку для смахивания пыли , которая позволяет достичь тех частей, до которых не могут добраться другие языки схем».

Наиболее распространённые версии Schematron:

Schematron как стандарт ISO

Schematron был стандартизирован ISO как Информационная технология, Языки определения схем документов (DSDL) , Часть 3: Проверка на основе правил, Schematron (ISO/IEC 19757-3:2020).

В настоящее время этот стандарт не включен в список общедоступных спецификаций ISO. Бумажные версии можно приобрести в ISO или национальных органах по стандартизации.

Схемы, использующие ISO/IEC FDIS 19757-3, должны использовать следующее пространство имен:

http://purl.oclc.org/dsdl/schematron

Пример правила

Правила Schematron можно создавать с помощью стандартного редактора XML или приложения XForms . Ниже приведен пример схемы:

<schema xmlns= "http://purl.oclc.org/dsdl/schematron" > <pattern> <title> Правила дат </title> <rule context= "Contract" > <assert test= "ContractDate > current-date()" > ContractDate должен быть в прошлом , поскольку будущие контракты не допускаются . </assert> </rule> </pattern> </schema>                     

Это правило проверяет, что XML-элемент ContractDate имеет дату, которая предшествует текущей дате. Если это правило не выполняется, проверка не будет выполнена, и пользователю будет возвращено сообщение об ошибке, которое является телом элемента assert.

Выполнение

Схемы Schematron подходят для использования в XML Pipelines , тем самым позволяя разработчикам рабочих процессов создавать и поддерживать правила с помощью инструментов манипулирования XML. Например, язык конвейеризации W3C XProc имеет встроенную поддержку обработки схем Schematron через шаг «validate-with-schematron». [4]

Поскольку схемы Schematron могут быть преобразованы в таблицы стилей XSLT , их можно использовать в XML Pipelines, которые поддерживают преобразование XSLT. Задачу Apache Ant можно использовать для преобразования правил Schematron в файлы XSLT.

Существует также собственная реализация Schematron, например, реализация Java от Innovimax/ INRIA , QuiXSchematron, которая также поддерживает потоковую передачу .

Смотрите также

Ссылки

  1. ^ Siegel, Erik (2022). Schematron: язык для проверки XML . Денвер, Колорадо: XML Press. ISBN 978-1-937434-81-6.
  2. ^ Феннелл, Филипп (июнь 2014 г.). «Schematron — полезнее, чем вы думали». XML London 2014 : 103–112. doi : 10.14337/XMLLondon14.Fennell01 . ISBN 978-0-9926471-1-7.
  3. ^ Часть 3: Проверка на основе правил — Schematron (ISO/IEC 19757-3:2006) (zip) , Информационные технологии — Языки определения схем документов (DSDL), ISO/IEC, 2006-06-01 , получено 2014-06-15
  4. ^ "7.2.5 p:validate-with-schematron". XProc: язык конвейера XML . World Wide Web Consortium . 2010-05-11 . Получено 2012-11-12 .

Внешние ссылки