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文書でもある。 おのおのの規則には、その規則が真の場合に実行するべき一つ以上のアクションがある。

妥当性の検証中にある規則が真となった場合に、対応するアクションが実行される。 アクションの種類としては次のようなものがある。

  • スキーマに基づいて妥当性を検証する
  • XML文書が妥当でないことの宣言
  • 対象とする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>

関連項目

[編集]

外部リンク

[編集]