スキーマとの 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);
このセクションの内容
- XmlDocument の読み込み時の検証
XmlValidatingReader を使用して XML ドキュメントを読み込む方法について説明します。 - XmlValidatingReader を使用した XML の検証
文書型定義 (DTD: Document Type Definition)、XDR (XML-Data Reduced) スキーマ、および XML スキーマ定義言語 (XSD) スキーマを基準として XML を検証するために XmlValidatingReader クラスを実装する方法、および XML フラグメントの検証方法について説明します。ValidationEventHandler イベントについても説明します。 - スキーマ キャッシュとしての XmlSchemaCollection
キャッシュされたコレクション内にスキーマを読み込み、検証に使用する方法について説明します。 - XmlValidatingReader を使用したエンティティの解決
エンティティの処理に使用するプロパティとメソッドについて説明します。 - スキーマ型情報へのアクセス
検証時にスキーマの型情報にアクセスする方法について説明します。
関連項目
- XML スキーマ リファレンス (XSD)
World Wide Web Consortium (W3C) で定義されている XML スキーマ定義言語 (XSD) について説明します。