Namespace-based Validation Dispatching Language (NVDL) は、複数のXML名前空間を利用して記述されたXML文書の妥当性を検証するためのスキーマ言語です。この言語は、ISO/IEC 19757
文書スキーマ定義言語 (DSDL) の第4部として標準化されています。NVDLは、XML文書内の要素が属する名前空間に応じて、適切なスキーマを適用し、文書全体の整合性を検証します。
NVDLの起源と背景
NVDLの技術的な基盤は、ジェームズ・クラークによって設計されたNamespace Routing Language (NRL) に大きく影響を受けています。さらに、NRLとNVDLは、村田真氏らが設計したRELAX Namespaceを源流としており、これらの技術が複合的に組み合わさってNVDLが形成されています。
NVDLの必要性
XML文書は、単一の名前空間だけでなく、複数の名前空間を利用して記述されることがあります。各要素はその要素が由来する名前空間に属しており、従来の単一名前空間しかサポートしない検証システムでは、このような文書の妥当性を検証することはできません。NVDLは、この課題に対応し、複数の名前空間を持つXML文書を適切に検証するメカニズムを提供します。
NVDLのバリデータは、文書内の要素が属する名前空間に応じてスキーマを切り替えながら、文書全体の妥当性を検証します。これにより、異なる名前空間に属する要素に対して、それぞれのスキーマに基づいて検証を行うことが可能になります。
NVDLスキーマの記述
NVDLのスキーマは、規則のリストで構成されており、それ自体がXML文書として表現されます。各規則には、その規則が真である場合に実行されるべき1つ以上のアクションが定義されています。検証中に規則が真となった場合、対応するアクションが実行され、文書の妥当性が判定されます。
NVDLのアクションには以下のような種類があります。
特定のスキーマに基づく検証の実行
文書が妥当でないことの宣言
文書の一部を妥当とみなす
親要素と同じ検証方法を継続
アクションは検証中のNVDLのモードによって変更でき、一つの規則が真の場合には複数のアクションを実行することも可能です。この柔軟性により、異なるスキーマ言語で記述されたスキーマを用いて、複数の名前空間を持つXML文書の妥当性を検証することができます。
NVDLスキーマの例
例えば、NVDLスキーマを使用することで、XHTML 1.0の名前空間を持つ部分はXHTML 1.0の
RELAX NGスキーマで、SVGの名前空間を持つ部分はSVGの
スキマトロンスキーマで検証することができます。さらに、検証中にXHTML 1.0やSVGのどちらでもない名前空間が見つかった場合には、その文書を無効と判定するよう設定することも可能です。
この柔軟な検証メカニズムは、異なる技術や標準が混在する複雑なXML文書を扱う際に特に有用です。NVDLは、XML文書の構造と内容が定義された規則に合致するかどうかを詳細に検証し、データ交換の信頼性を向上させる役割を果たします。
関連事項
NVDLは、以下の分野と密接な関連があります。
コンピュータ言語
データ記述言語
仕様記述言語
スキーマ言語
外部リンク
NVDLの情報
An introduction to NVDL
NVDLは、現代の複雑なXML文書を正確に検証するための強力なツールであり、その柔軟性と拡張性により、様々なXML文書の信頼性を確保するために広く利用されています。