WebClub - Всероссийский Клуб Веб-разработчиков
WebClub.RU » Советы » Введение в Schematron

Введение в Schematron


Дата публикации: 03-02-2008

Созданный Риком Джелиффом (Rick Jelliffe),

Schematron

определяет правила и проверки, которые применяются к конкретному XML-документу. В Schematron реализован уникальный подход в отношении схем в том смысле, что он сосредотачивается на проверке допустимости конкретных документов, а не на объявлении схемы (в отличие от других языков описания схем).

 

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

Прежде чем углубиться в изучение Schematron, давайте посмотрим, как легко использовать XSLT для проверки XML-документов. Вернемся к предыдущему примеру:


<shortStory author='AUTHOR1'>
  <character name='CHARACTER1'/>
  <character name='CHARACTER2'>
</shortStory>

<anthology author='AUTHOR1'>
  <shortStory>
    <character name='CHARACTER1'/>
    <character name='CHARACTER2'>
  </shortStory>
</anthology>

Можно создать шаблон, который будет возвращать "Invalid XML" ("Недопустимый XML"), если элемент shortStory имеет атрибут author, когда он содержится в элементе anthology.

<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl=
 "http://www.w3.org/1999/XSL/Transform">
  <xsl:template match='shortStory'>
    <xsl:if test='../anthology and @author'>
      Invalid XML
    </xsl:if>
  </xsl:template>
</xsl:stylesheet>

Нетрудно придумать другие комбинации шаблонов, которые будут проверять более сложные структуры XML. В сущности, именно так и работает Schematron. Он берет описание схемы Schematron (на XML), которое определяет ограничения. Таблица стилей Schematron XSLT превращает это в другую таблицу стилей, преобразуя с помощью этой результирующей таблицей стилей конкретный документ, а затем выполняет проверку допустимости этого документа.

Структура документа Schematron

XML-документ Schematron состоит из элемента schema в пространстве имен Schematron: http://www.ascc.net/xml/schematron. Элемент schema содержит один или более элементов pattern. Элементы pattern позволяют пользователю логически группировать ограничения схемы. Вот несколько примеров логической группировки: Text Only Elements (Только текстовые элементы), Valid Root Element (Допустимый корневой элемент), Check for ID Attribute (Атрибут проверки ID).

Элементы pattern имеют атрибут name. Они также имеют атрибут see, который обращается к URL за пользовательской документацией по этой схеме.

Популярное

Не так давно в сети появился новый сервис, под названием Dead Man Zero. Этот сервис сделал...
Рынок социальных площадок уже давно стал стабильным. Несмотря на то, что время от времени...
Artisteer 4 – единственный в своем роде продукт, позволяющий автоматизировать работу над созданием...
Октябрь 2018 (14)
Февраль 2017 (3)
Январь 2017 (1)
Август 2016 (1)
Май 2016 (2)
Ноябрь 2015 (1)

Карта сайта: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41

Друзья сайта



Случайная цитата

Неизвестный автор:

"Ссылка – текст, да в ней намёк."

Опрос

Какой аудио плеер Вы используете?

Winamp
Light Alloy
foobar2000
Apollo
AIMP
1by1
iTunes
jetAudio
Другой...