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 プロパティに設定した場合、XmlValidatingReader は InvalidOperation 例外をスローします。
参照
XmlValidatingReader を使用した XML の検証 | スキーマとの XML の検証 | XmlResolver Class クラス