The following table describes some common scenarios and which settings on the XmlReaderSettings class to apply.
Scenario
|
XmlReaderSettings
|
|---|
Requires the data to be a well-formed XML document.
|
ConformanceLevel = ConformanceLevel.Document
|
Requires the data to be a well-formed XML parsed entity.
|
ConformanceLevel = ConformanceLevel.Fragment
|
Needs data to be validated against a DTD.
|
ProhibitDtd = false
ValidationType = ValidationType.DTD
|
Needs data to be validated against an XML Schema.
|
ValidationType = ValidationType.Schema
Schemas = XmlSchemaSet to use for validation
|
Needs data to be validated against an inline XML Schema.
|
ValidationType = ValidationType.Schema
ValidationFlags |= XmlSchemaValidationFlags.ProcessInlineSchema
|
Needs type support.
|
ValidationType = ValidationType.Schema
Schemas = XmlSchemaSet to use
|
There are a few special scenarios that may require using an XmlReader implementation that is not created by the Create method.
Note: |
|---|
The
XmlValidatingReader class is obsolete in the .NET Framework 2.0 release. We recommend that you consider migrating to XML Schemas and validate using an XmlReader object returned by the Create method.
|
To read XML data from an XmlNode object, use the XmlNodeReader class.
If you must expand entities on request (readers created by the Create method expand all entities), or if you do not want your text content normalized, use the XmlTextReader class.
If you do not want default attributes returned, use the XmlTextReader class.
To instantiate an XmlReader object
Dim settings As New XmlReaderSettings()
settings.ConformanceLevel = ConformanceLevel.Fragment
settings.IgnoreWhitespace = true
settings.IgnoreComments = true
Dim reader As XmlReader = XmlReader.Create("books.xml", settings)
XmlReaderSettings settings = new XmlReaderSettings();
settings.ConformanceLevel = ConformanceLevel.Fragment;
settings.IgnoreWhitespace = true;
settings.IgnoreComments = true;
XmlReader reader = XmlReader.Create("books.xml", settings);
To wrap a reader instance within another reader
Dim txtReader As XmlTextReader = New XmlTextReader("bookOrder.xml")
Dim settings As New XmlReaderSettings()
settings.Schemas.Add("urn:po-schema", "PO.xsd")
settings.ValidationType = ValidationType.Schema
Dim reader As XmlReader = XmlReader.Create(txtReader, settings)
XmlTextReader txtReader = new XmlTextReader("bookOrder.xml");
XmlReaderSettings settings = new XmlReaderSettings();
settings.Schemas.Add("urn:po-schema", "PO.xsd");
settings.ValidationType = ValidationType.Schema;
XmlReader reader = XmlReader.Create(txtReader, settings);
To chain readers to add additional settings
Dim settings As New XmlReaderSettings()
settings.ValidationType = ValidationType.DTD
Dim inner As XmlReader = XmlReader.Create("book.xml", settings) ' DTD Validation
settings.Schemas.Add("urn:book-schema", "book.xsd")
settings.ValidationType = ValidationType.Schema
Dim outer As XmlReader = XmlReader.Create(inner, settings) ' XML Schema Validation
XmlReaderSettings settings = new XmlReaderSettings();
settings.ValidationType = ValidationType.DTD;
XmlReader inner = XmlReader.Create("book.xml", settings); // DTD Validation
settings.Schemas.Add("urn:book-schema", "book.xsd");
settings.ValidationType = ValidationType.Schema;
XmlReader outer = XmlReader.Create(inner, settings); // XML Schema Validation