スキーマとの XML の検証

XML ドキュメントの構造、その要素間の関係、データ型、および内容の制約を定義するには、文書型定義 (DTD: Document Type Definition) またはスキーマを使用します。XML ドキュメントは、W3C (World Wide Web Consortium) 勧告『Extensible Markup Language (XML) 1.0』で定義されている構文要件をすべて満たしている場合には整形式と見なされますが、整形式であるだけでなく DTD またはスキーマに定義されている制約に準拠していなければ有効とは見なされません。したがって、有効な XML ドキュメントはすべて整形式ですが、整形式の XML ドキュメントがすべて有効であるとは限りません。

XML の詳細については、W3C (World Wide Web Consortium) の Web サイト (http://www.w3.org/TR/2000/REC-xml-20001006) で『Extensible Markup Language (XML) 1.0 (Second Edition) Recommendation』を参照してください。また、XML スキーマの詳細については、同サイト (http://www.w3.org/TR/) で『XML Schema Part 1: Structures Recommendation』および『XML Schema Part 2: Datatypes Recommendation』を参照してください。

XML ドキュメントや XML フラグメントの検証を強制的に実行するには、XmlValidatingReader クラスを使用します。このクラスは、上で示した W3C 勧告で定義されている検証制約を実装することによって、DTD、XDR (XML-Data Reduced) スキーマ、および XML スキーマ定義言語 (XSD) スキーマとの検証サービスを提供します。

XmlValidatingReader クラスは、XmlReader クラスを実装し、前方への読み取りのみを行って XML ストリームの検証を実行します。XmlValidatingReader は、XmlTextReader を入力として受け取ることができます。XmlValidatingReader 層は、XmlTextReader をサポートすることに加えて、XmlParserContext クラスを使用した XML フラグメントの解析機能もサポートします。XML フラグメントの解析の詳細については、「XmlValidatingReader を使用した XML フラグメントの読み込み」を参照してください。

XmlTextReader に設定されているすべてのプロパティが、その XmlTextReader を受け取る XmlValidatingReader にも適用されます。

XmlValidatingReader 層による XmlTextReader のサポートを次のサンプル コードに示します。

Dim tr as XmlTextReader = new XmlTextReader("Sample1.xml")
Dim vr as XmlValidatingReader = new XmlValidatingReader(tr)
[C#]
XmlTextReader tr = new XmlTextReader("Sample1.xml");
XmlValidatingReader vr = new XmlValidatingReader(tr);

このセクションの内容

関連項目