Язык диспетчеризации проверки на основе пространства имен
Эта статья в значительной степени или полностью опирается на один источник . ( март 2009 г. ) |
Язык диспетчеризации проверки на основе пространства имен ( NVDL ) — это язык схемы XML для проверки документов XML, которые интегрируются с несколькими пространствами имен . Это стандарт ISO / IEC и часть 4 спецификации схемы DSDL . Большая часть работы над NVDL основана на более старом языке маршрутизации пространства имен .
Валидация
[ редактировать ]Большинство языков XML основаны на одном пространстве имен XML. В этих случаях ожидается, что элементы XML в определенном пространстве имен принадлежат этому языку, а элементы в другом пространстве имен принадлежат другому языку. Многие языки XML допускают использование произвольных элементов из других пространств имен.
Проблема возникает при попытке проверить эти гибридные документы. Каждый язык определяется определенной схемой XML, но между схемами нет связи.
Цель NVDL — обеспечить такую связь на основе пространств имен. Связав валидатор схемы со схемой NVDL, валидатор может использовать несколько схем для проверки одного документа, переключаясь между ними в зависимости от пространств имен, используемых в этом документе.
Формат
[ редактировать ]Документы NVDL содержат список правил, каждое из которых содержит одно или несколько действий, которые необходимо предпринять, если это правило истинно. Правила включают определенное пространство имен и настройку режима. NVDL распознает режим как определенную часть состояния, которая меняется по мере обработки документа.
Действия происходят, когда правило истинно. Действия могут включать проверку схемы, объявление экземпляра документа недействительным, принятие этой части экземпляра документа как действительной и продолжение проверки, как это делал родительский элемент. Действия также могут изменить текущий режим NVDL. Если правило истинно, можно выполнить несколько действий; это позволяет проверять раздел экземплярного документа с несколькими схемами разного типа.
Пример
[ редактировать ]<rules xmlns="http://purl.oclc.org/dsdl/nvdl/ns/structure/1.0">
<namespace ns="http://www.w3.org/1999/xhtml">
<validate schema="xhtml.rng"/>
</namespace>
<namespace ns="http://www.w3.org/2000/svg/">
<validate schema="svg.sch"/>
</namespace>
<anyNamespace>
<reject/>
</anyNamespace>
</rules>
Эта схема NVDL проверит части, использующие пространство имен XHTML 1.0, со схемой RELAX NG , проверит части, использующие пространство имен SVG 1.0, со схемой Schematron и отклонит документ как недействительный, если он встретит элементы с любым другим пространством имен.