Типы проверок XmlValidatingReader
Свойство ValidationType определяет тип проверок, выполняемый классом XmlValidatingReader.Необходимо задать это свойство перед вызовом метода Read.Если для проверки требуются внешние определения типа документа (DTD) или схемы, то используется свойство XmlResolver.
Примечание
Класс XmlValidatingReader в версии .NET Framework 2.0 устарел.Экземпляр XmlReader для проверки можно создать с помощью класса XmlReaderSettings и метода Create.Дополнительные сведения см. в разделе Проверка XML-данных с помощью XmlReader.
Перечисление ValidationType
Свойство ValidationType может иметь одно из значений перечисления ValidationType.В следующем разделе описаны значения ValidationType.
ValidationType.Auto
Это значение по умолчанию для свойства ValidationType.В следующей таблице показаны правила проверки при значении свойства ValidationType, равном Auto.
DTD или схема |
ValidationType.Auto |
---|---|
Без DTD или схемы |
Выполняет синтаксический анализ XML без проверки.Исключение не возникает.Сведения о типах не передаются. |
DTD |
Выполняет DTD-проверку.Атрибуты по умолчанию и сущности раскрываются.Общие сущности загружаются и подвергаются синтаксическому анализу только при использовании (раскрытии).Сведения о типах не передаются. |
XML-схема (ссылочная или встроенная) |
Выполняет проверку языка XSD.Выполняет проверку по схеме.Атрибуты по умолчанию раскрываются.Указываются сведения о типах. |
XDR-схема (ссылочная или встроенная) |
Выполняет проверку схемы XDR.Выполняет проверку по схеме.Атрибуты по умолчанию раскрываются.Указываются сведения о типах. |
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 для языка 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.Сведения о типах не передаются. |
Класс XmlValidatingReader вызывает исключение InvalidOperationException, если свойство ValidationType установлено после первого метода Read.
См. также
Основные понятия
Чтение XML с помощью XmlReader