Share via


Validation Types of the XmlValidatingReader

The ValidationType property determines the type of validation performed by the XmlValidatingReader. You must set this property before calling the Read method. If external document type definitions (DTDs) or schemas are required for validation, the XmlResolver property is used.

The following tables outline the values for the ValidationType property.

ValidationType.Auto

This is the default value for the ValidationType property. The following table shows the rules for validation when the ValidationType property is set to Auto.

DTD or schema ValidationType.Auto
No DTD or schema Parses the XML without validation. No exception is thrown. No type information is supplied.
DTD Performs DTD validation. Default attributes and entities are expanded. General entities are loaded and parsed only if they are used (expanded). No type information is supplied.
XML Schema (reference or inline) Performs XML Schema definition language (XSD) validation. Validates with the schema. Default attributes are expanded. Type information is supplied.
XDR schema (reference or inline) Performs XML-Data Reduced (XDR) schema validation. Validates with the schema. Default attributes are expanded. Type information is supplied.
DTD and XML Schema or XDR schema (reference or inline) Performs DTD/XML Schema/XDR validation according to the first occurrence of the validation type. DTD validation always takes precedence over other validation types.

ValidationType.DTD

If the ValidationType.DTD value is set, the XmlValidatingReader validates the document according to the DTD. The following table shows the rules for validation when the ValidationType property is set to DTD.

DTD or schema ValidationType.DTD
No DTD or schema Returns a No DTD found warning at the root element. No exception is thrown. No type information is supplied.
DTD Performs DTD validation. Default attributes and entities are expanded. General entities are loaded and parsed only if they are used (expanded). No type information is supplied.
XML Schema (reference or inline) Returns a No DTD found warning at the root element. An XmlException is thrown for mixed validation types when schema is found.
XDR schema (reference or inline) Returns a No DTD found warning at the root element. An XmlException is thrown for mixed validation types when schema is found.
DTD and XML Schema or XDR schema (reference or inline) Performs DTD validation. Default attributes and entities are expanded.

ValidationType.Schema

If the ValidationType.Schema value is set, the XmlValidatingReader validates the document according to the XML Schemas, including inline schemas. The following table shows the rules for validation when the ValidationType property is set to Schema.

DTD or schema ValidationType.Schema
No DTD or schema Returns a No schema found warning for each element.
DTD An XmlException is thrown for mixed validation types.
XML Schema (reference or inline) Performs XML Schema validation. Validates with a schema. Default attributes are expanded from schema. Type information is supplied.
XDR schema (reference or inline) An XmlException is thrown for mixed validation types.
DTD and XML Schema or XDR schema (reference or inline) Performs XML Schema validation. Default attributes are expanded from schema. Type information is supplied. If a DTD or XDR schema is found, an XmlException is thrown for mixed validation types.

ValidationType.XDR

If the ValidationType.XDR value is set, the XmlValidatingReader validates the document according to XDR schemas, including inline schemas. The following table shows the rules for validation when the ValidationType property is set to XDR.

DTD or schema ValidationType.XDR
No DTD or schema Returns a final warning that no validation has occurred.
DTD An XmlException is thrown for mixed validation types.
XML Schema (reference or inline) An XmlException is thrown for mixed validation types.
XDR schema (reference or inline) Performs XDR validation. Validates with a schema. Default attributes are expanded from schema. Type information is supplied.
DTD and XML Schema or XDR schema (reference or inline) Performs XDR validation. Default attributes are expanded from schema. Type information is supplied. If a DTD or XML Schema is found, an XmlException is thrown for mixed validation types.

ValidationType.None

The ValidationType.None value creates a non-validating parser that complies with the World Wide Web Consortium (W3C) Extensible Markup Language (XML) 1.0 Recommendation. Default attributes are reported and general entities can be resolved. No validation errors are thrown. The following table shows the rules for validation when the ValidationType property is set to None.

DTD or schema ValidationType.None
No DTD or schema Parses the XML without validation. No exception is thrown. No type information is supplied.
DTD An XML 1.0 compliant non-validating parser is created. No DTD validation is performed. Default attributes and entities are expanded from the DTD. No type information is supplied.
XML Schema (reference or inline) Parses the XML without validation. No exception is thrown. Default attributes are not expanded from the schema. No type information is supplied.
XDR schema (reference or inline) Parses the XML without validation. No exception is thrown. Default attributes are not expanded from the schema. No type information is supplied.
DTD and XML Schema or XDR schema (reference or inline) An XML 1.0 compliant non-validating parser is created. No DTD validation is performed. Default attributes and entities are expanded from the DTD. No type information is supplied.

The XmlValidatingReader throws an InvalidOperation exception if the ValidationType property is set after the first Read method.

See Also

Validation of XML with XmlValidatingReader | Validation of XML with Schemas | XmlResolver Class