XmlValidatingReader による検証の種類
ValidationType プロパティは、XmlValidatingReader が実行する検証タイプを決定します。このプロパティは、Read メソッドを呼び出す前に設定しておく必要があります。検証に外部のドキュメント型定義 (DTD) やスキーマが必要な場合は、XmlResolver プロパティを使用します。
注意
.NET Framework 2.0 では、XmlValidatingReader クラスが廃止されています。XmlReaderSettings クラスと Create メソッドを使用して、検証用の XmlReader インスタンスを作成できます。詳細については、「XmlReader による XML データの検証」を参照してください。
ValidationType 列挙値
ValidationType プロパティは、いずれかの ValidationType 列挙値に設定できます。以下のセクションでは ValidationType 値について説明します。
ValidationType.Auto
これは、ValidationType プロパティの既定値です。ValidationType プロパティが Auto に設定されているときの検証の規則を次の表に示します。
DTD またはスキーマ |
ValidationType.Auto |
---|---|
DTD とスキーマのどちらもなし |
XML を検証せずに解析します。例外をスローすることはありません。型情報は提供されません。 |
DTD |
DTD 検証を実行します。既定の属性およびエンティティは展開されます。一般エンティティは、使用 (展開) されている場合にだけ読み込まれて解析されます。型情報は提供されません。 |
XML スキーマ (参照またはインライン) |
XML スキーマ定義言語 (XSD) 検証を実行します。スキーマを使用して検証します。既定の属性は展開されます。型情報が提供されます。 |
XDR スキーマ (参照またはインライン) |
XDR (XML-Data Reduced) スキーマ検証を実行します。スキーマを使用して検証します。既定の属性は展開されます。型情報が提供されます。 |
DTD、XML スキーマ、または XDR スキーマ (参照またはインライン) |
DTD、XML スキーマ、XDR スキーマのうち、最初に見つかった種類の検証を実行します。DTD 検証は、常に他の検証の種類に優先して実行されます。 |
ValidationType.DTD
ValidationType.DTD 値が指定されている場合、XmlValidatingReader は DTD に基づいてドキュメントを検証します。ValidationType プロパティが ValidationType.DTD に設定されているときの検証の規則を次の表に示します。
DTD またはスキーマ |
ValidationType.DTD |
---|---|
DTD とスキーマのどちらもなし |
ルート要素の位置で No DTD found という警告を返します。例外をスローすることはありません。型情報は提供されません。 |
DTD |
DTD 検証を実行します。既定の属性およびエンティティは展開されます。一般エンティティは、使用 (展開) されている場合にだけ読み込まれて解析されます。型情報は提供されません。 |
XML スキーマ (参照またはインライン) |
ルート要素の位置で No DTD found という警告を返します。スキーマが見つかった場合は、混在している検証タイプに対して XmlException がスローされます。 |
XDR スキーマ (参照またはインライン) |
ルート要素の位置で No DTD found という警告を返します。スキーマが見つかった場合は、混在している検証タイプに対して XmlException がスローされます。 |
DTD、XML スキーマ、または XDR スキーマ (参照またはインライン) |
DTD 検証を実行します。既定の属性およびエンティティは展開されます。 |
ValidationType.Schema
ValidationType.Schema 値が設定されている場合、XmlValidatingReader は、インライン スキーマを含む XML スキーマに基づいてドキュメントを検証します。ValidationType プロパティが ValidationType.Schema に設定されているときの検証の規則を次の表に示します。
DTD またはスキーマ |
ValidationType.Schema |
---|---|
DTD とスキーマのどちらもなし |
各要素に対して No schema found という警告を返します。 |
DTD |
混在している検証タイプに対して XmlException がスローされます。 |
XML スキーマ (参照またはインライン) |
XML スキーマ検証を実行します。スキーマを使用して検証します。既定の属性はスキーマから展開されます。型情報が提供されます。 |
XDR スキーマ (参照またはインライン) |
混在している検証タイプに対して XmlException がスローされます。 |
DTD、XML スキーマ、または XDR スキーマ (参照またはインライン) |
XML スキーマ検証を実行します。既定の属性はスキーマから展開されます。型情報が提供されます。DTD または XDR スキーマが見つかると、混在している検証タイプに対して XmlException がスローされます。 |
ValidationType.XDR
ValidationType.XDR 値が設定されている場合、XmlValidatingReader は、インライン スキーマを含む XDR スキーマに基づいてドキュメントを検証します。ValidationType プロパティが ValidationType.XDR に設定されているときの検証の規則を次の表に示します。
DTD またはスキーマ |
ValidationType.XDR |
---|---|
DTD とスキーマのどちらもなし |
検証が実行されなかったことを示す最後の警告を返します。 |
DTD |
混在している検証タイプに対して XmlException がスローされます。 |
XML スキーマ (参照またはインライン) |
混在している検証タイプに対して XmlException がスローされます。 |
XDR スキーマ (参照またはインライン) |
XDR 検証を実行します。スキーマを使用して検証します。既定の属性はスキーマから展開されます。型情報が提供されます。 |
DTD、XML スキーマ、または XDR スキーマ (参照またはインライン) |
XDR 検証を実行します。既定の属性はスキーマから展開されます。型情報が提供されます。DTD または XML スキーマが見つかると、混在している検証タイプに対して XmlException がスローされます。 |
ValidationType.None
ValidationType.None 値を設定すると、W3C (World Wide Web Consortium) 勧告『Extensible Markup Language (XML) 1.0』に準拠した非検証型パーサーが作成されます。既定の属性が報告され、一般エンティティが解決されます。検証エラーはスローされません。ValidationType プロパティが ValidationType.None に設定されているときの検証の規則を次の表に示します。
DTD またはスキーマ |
ValidationType.None |
---|---|
DTD とスキーマのどちらもなし |
XML を検証せずに解析します。例外をスローすることはありません。型情報は提供されません。 |
DTD |
XML 1.0 に準拠した、検証を実行しないパーサーが作成されます。DTD 検証は実行されません。既定の属性およびエンティティは DTD から展開されます。型情報は提供されません。 |
XML スキーマ (参照またはインライン) |
XML を検証せずに解析します。例外をスローすることはありません。既定の属性はスキーマから展開されません。型情報は提供されません。 |
XDR スキーマ (参照またはインライン) |
XML を検証せずに解析します。例外をスローすることはありません。既定の属性はスキーマから展開されません。型情報は提供されません。 |
DTD、XML スキーマ、または XDR スキーマ (参照またはインライン) |
XML 1.0 に準拠した、検証を実行しないパーサーが作成されます。DTD 検証は実行されません。既定の属性およびエンティティは DTD から展開されます。型情報は提供されません。 |
1 番目の Read メソッドを呼び出した後で ValidationType プロパティを設定すると、XmlValidatingReader は InvalidOperationException をスローします。