次の方法で共有


XmlValidatingReader による検証の種類

ValidationType プロパティは、XmlValidatingReader が実行する検証の種類を決定します。このプロパティは、Read メソッドを呼び出す前に設定しておく必要があります。検証に外部の文書型定義 (DTD: Document Type Definition) やスキーマが必要な場合は、XmlResolver プロパティを使用します。

ValidationType プロパティの値について次の表で簡単に説明します。

ValidationType.Auto

これは、ValidationType プロパティの既定値です。ValidationType プロパティが Auto に設定されているときの検証の規則を次の表に示します。

DTD またはスキーマ ValidationType.Auto
DTD とスキーマのどちらもなし XML を検証せずに解析します。例外をスローすることはありません。型情報は提供されません。
DTD DTD 検証を実行します。既定の属性およびエンティティは展開されます。一般エンティティは、使用 (展開) されている場合にだけ読み込まれて解析されます。型情報は提供されません。
XML スキーマ (参照またはインライン) XML スキーマ定義言語 (XSD) 検証を実行します。XML スキーマを使用して検証します。既定の属性は展開されます。型情報が提供されます。
XDR スキーマ (参照またはインライン) XDR (XML-Data Reduced) スキーマ検証を実行します。XDR スキーマを使用して検証します。既定の属性は展開されます。型情報が提供されます。
DTD、XML スキーマ、または XDR スキーマ (参照またはインライン) DTD、XML スキーマ、XDR スキーマのうち、最初に見つかった種類の検証を実行します。DTD 検証は、常に他の検証の種類に優先して実行されます。

ValidationType.DTD

ValidationType.DTD 値が設定されている場合、XmlValidatingReader は DTD に基づいてドキュメントを検証します。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 プロパティが Schema に設定されているときの検証の規則を次の表に示します。

DTD またはスキーマ ValidationType.Schema
DTD とスキーマのどちらもなし 各要素に対して No schema found という警告を返します。
DTD 混在している別の検証の種類に対して XmlException がスローされます。
XML スキーマ (参照またはインライン) XML スキーマ検証を実行します。XML スキーマを使用して検証します。既定の属性はスキーマから展開されます。型情報が提供されます。
XDR スキーマ (参照またはインライン) 混在している別の検証の種類に対して XmlException がスローされます。
DTD、XML スキーマ、または XDR スキーマ (参照またはインライン) XML スキーマ検証を実行します。既定の属性はスキーマから展開されます。型情報が提供されます。DTD または XDR スキーマが見つかると、混在している別の検証の種類に対して XmlException がスローされます。

ValidationType.XDR

ValidationType.XDR 値が設定されている場合、XmlValidatingReader は、インライン スキーマを含めた XDR スキーマに基づいてドキュメントを検証します。ValidationType プロパティが XDR に設定されているときの検証の規則を次の表に示します。

DTD またはスキーマ ValidationType.XDR
DTD とスキーマのどちらもなし 検証が実行されなかったことを示す最後の警告を返します。
DTD 混在している別の検証の種類に対して XmlException がスローされます。
XML スキーマ (参照またはインライン) 混在している別の検証の種類に対して XmlException がスローされます。
XDR スキーマ (参照またはインライン) 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 プロパティが None に設定されているときの検証の規則を次の表に示します。

DTD またはスキーマ ValidationType.None
DTD とスキーマのどちらもなし XML を検証せずに解析します。例外をスローすることはありません。型情報は提供されません。
DTD XML 1.0 に準拠した、検証を実行しないパーサーが作成されます。DTD 検証は実行されません。既定の属性およびエンティティは DTD から展開されます。型情報は提供されません。
XML スキーマ (参照またはインライン) XML を検証せずに解析します。例外をスローすることはありません。既定の属性はスキーマから展開されません。型情報は提供されません。
XDR スキーマ (参照またはインライン) XML を検証せずに解析します。例外をスローすることはありません。既定の属性はスキーマから展開されません。型情報は提供されません。
DTD、XML スキーマ、または XDR スキーマ (参照またはインライン) XML 1.0 に準拠した、検証を実行しないパーサーが作成されます。DTD 検証は実行されません。既定の属性およびエンティティは DTD から展開されます。型情報は提供されません。

最初の Read メソッドを実行した後で ValidationType プロパティに設定した場合、XmlValidatingReaderInvalidOperation 例外をスローします。

参照

XmlValidatingReader を使用した XML の検証 | スキーマとの XML の検証 | XmlResolver Class クラス