Namespace-based Validation Dispatching Language

Namespace-based Validation Dispatching Language (NVDL; 名前空間に基づく検証委譲言語) は、複数のXML名前空間を使って記述されたXML文書の妥当性を検証するためのスキーマ言語である。
NVDLは、ISO/IEC 19757 文書スキーマ定義言語 (DSDL) の第4部として標準化されている。
NVDLを構成している技術の大部分は、ジェームズ・クラークが設計した Namespace Routing Language (NRL) に由来する。
またNVDLおよびNRLは、村田真などの人々が設計した RELAX Namespace を源流としている。
複数の名前空間を使って記述されたXML文書の妥当性を検証する.
現在作成されているXML文書の多くは、単一のXML名前空間に基づいているが、複数の名前空間に基づいてXML文書を記述することもできる。
XML文書を構成する要素は、それぞれ、その要素が由来する名前空間に属する。
従来の単一の名前空間しかサポートしない妥当性検証のしくみでは、複数の名前空間を使って記述されたXML文書の妥当性を検証することができない。
NVDLの目的は、複数の名前空間を使って記述されたXML文書の妥当性を検証するしくみを提供することである。
NVDLの妥当性検証器 (NVDLのバリデータ) は、複数のスキーマを使って記述された (すなわち複数の名前空間を使って記述された) XML文書の妥当性を検証することができる。
NVDLの妥当性検証器は、検証の対象となるXML文書の要素が属する名前空間に応じて、対応するスキーマをきりかえながら、妥当性を検証する。
NVDLのスキーマの記述方法.
NVDLのスキーマは、規則のリストであり、またそれ自身がXML文書でもある。
おのおのの規則には、その規則が真の場合に実行するべき一つ以上のアクションがある。
妥当性の検証中にある規則が真となった場合に、対応するアクションが実行される。
アクションの種類としては次のようなものがある。
アクションは、検証中のNVDLのモードに基づいて変更することもできる。
ある規則が真である場合に、複数のアクションを実行することも可能である。
このため、異なるスキーマ言語で記述されたスキーマにもとづいて、複数の名前空間を使って記述されたXML文書の妥当性を検証することができる。
NVDLのスキーマの例.
次にNVDLのスキーマの例を示す。
このNVDLスキーマを使うことで、XML文書に対して、XHTML 1.0 のXML名前空間を使って記述された部分を XHTML 1.0 の RELAX NG スキーマで妥当性を検証し、SVG の名前空間を使って記述された部分をSVGのスキマトロンのスキーマで妥当性を検証することが、できる。
なおこのNVDLスキーマでは、検証中に XHTML 1.0 でもSVGでもない名前空間で記述された部分がみつかった場合には、そのXML文書は妥当でないと認識される。
<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>