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