XmlValidatingReader による検証の種類
更新 : November 2007
ValidationType プロパティは、XmlValidatingReader が実行する検証タイプを決定します。このプロパティは、Read メソッドを呼び出す前に設定しておく必要があります。検証に外部のドキュメント型定義 (DTD) やスキーマが必要な場合は、XmlResolver プロパティを使用します。
メモ : |
---|
.NET Framework version 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 をスローします。