Схематрон (Schematron)
Схематрон - это язык для проверки правильности утверждений о данных в формате XML.
Разработан Rick Jelliffe из Academia Sinica Computing Centre (http://xml.ascc.net/resource/schematron/schematron.html).
Валидация XML-файла по схематрон-схеме подобна трансформации этого XML-файла в соответствии с преобразованием на языке XSLT (eXtensible Stylesheet Language Transformations). На выходе получается текст, который по-сути является протоколом проверки.
Тег sch:schema - схема, корневой тег схематрона.
Внутри тега схемы располагаются название схемы - тег sch:title, и шаблоны - теги sch:pattern. Атрибут шаблона name задает имя шаблона (в нашем примере: “dog_pattern”).
Шаблон состоит из правил - тег sch:rule. Каждое правило применяется к узлу проверяемого по схематрон-схеме XML-файла, путь к которому (XPath) задается атрибутом context.
Правило состоит из утверждений (sch:assert) и сообщений (sch:report), которые имеют атрибут test - условие, формулируемое на языке XPath. Разница между ними в том, что если условие в сообщении истинно (в примере: test=”bone”), то в выходной файл пишется текст сообщения (This dog has a bone.), а текст утверждения (A ‘dog’ element should contain two ‘ear’ elements.) пишется в выходной файл только если условие НЕ выполнено (test=”count(ear) = 2”).
Перепечатка материалов блога разрешается с обязательной ссылкой на blog.coolsoftware.ru