XmlWriterSettings.ConformanceLevel Свойство

Определение

Возвращает или задает уровень соответствия, на предмет которого средство записи XML проверяет выходные данные XML.

public:
 property System::Xml::ConformanceLevel ConformanceLevel { System::Xml::ConformanceLevel get(); void set(System::Xml::ConformanceLevel value); };
public System.Xml.ConformanceLevel ConformanceLevel { get; set; }
member this.ConformanceLevel : System.Xml.ConformanceLevel with get, set
Public Property ConformanceLevel As ConformanceLevel

Значение свойства

ConformanceLevel

Одно из значений перечисления, указывающее уровень соответствия (документ, фрагмент или автоматическое обнаружение). Значение по умолчанию — Document.

Примеры

В следующем примере фрагмент XML записывается в поток памяти.

XmlWriterSettings settings = new XmlWriterSettings();
settings.OmitXmlDeclaration = true;
settings.ConformanceLevel = ConformanceLevel.Fragment;
settings.CloseOutput = false;

// Create the XmlWriter object and write some content.
MemoryStream strm = new MemoryStream();
XmlWriter writer = XmlWriter.Create(strm, settings);
writer.WriteElementString("orderID", "1-456-ab");
writer.WriteElementString("orderID", "2-36-00a");
writer.Flush();
writer.Close();

// Do additional processing on the stream.
Dim settings As XmlWriterSettings = New XmlWriterSettings()
settings.OmitXmlDeclaration = true
settings.ConformanceLevel = ConformanceLevel.Fragment
settings.CloseOutput = false

' Create the XmlWriter object and write some content.
Dim strm as MemoryStream = new MemoryStream()
Dim writer As XmlWriter = XmlWriter.Create(strm, settings)
writer.WriteElementString("orderID", "1-456-ab")
writer.WriteElementString("orderID", "2-36-00a")
writer.Flush()
writer.Close()

' Do additional processing on the stream.

Комментарии

Свойство XmlWriterSettings.ConformanceLevel настраивает модуль записи XML, чтобы проверить и гарантировать, что поток, записываемый, соответствует определенному набору правил. Xml-данные можно проверить, чтобы убедиться, что они соответствуют правилам документа XML 1.0 или фрагмента документа. В следующей таблице описаны три параметра. По умолчанию используется соответствие на уровне документа.

Параметр Описание:
Document Гарантирует, что выходные данные XML соответствуют правилам хорошо сформированного документа XML 1.0 и могут обрабатываться любым соответствующим процессором.

Проверки соответствия документа включают большую часть проверок на уровне фрагментов, а также гарантируют следующее:

— Элемент верхнего уровня не имеет узлов, отличных от xml-объявления, DTD, элемента, комментария, пробела или инструкций по обработке.
— XML-данные имеют один и только один узел элемента верхнего уровня.

Модуль записи XML не анализирует записанные данные DTD. Пользователь отвечает за правильность формирования DTD.
Fragment Гарантирует, что выходные данные XML соответствуют правилам для хорошо сформированного фрагмента документа XML 1.0.

Этот параметр принимает XML-данные с несколькими корневыми элементами или текстовыми узлами на верхнем уровне. Этот уровень проверки гарантирует, что любое средство обработки сможет обработать считываемый поток как сущность XML 1.0 с внешним синтаксическим анализом.

Сведения DTD не допускаются в фрагментах документов.
Auto Указывает, что модуль записи XML должен определить уровень проверки соответствия на основе входящих данных. Этот параметр может быть полезен, если вы не знаете, будет ли созданный XML-документ хорошо сформированным XML-документом или фрагментом.

Проверка согласованности на уровне документа применяется в следующих случаях:

— Если WriteStartDocument метод вызывается.
— Если данные DTD записываются.

Проверка соответствия фрагмента применяется, если XML-данные содержат одно из следующих значений:

— узел Text, CDATA или EntityReference на корневом уровне.
— Несколько элементов на корневом уровне.
— элемент на корневом уровне отсутствует.

Исключение XmlException создается, если обнаруживается конфликт, например когда на корневом уровне одновременно записываются текстовый узел и DTD.

При обтекании другого XmlWriter объекта внешний объект не выполняет дополнительную проверку соответствия; он остается на базовый объект.

Если модуль записи XML обнаруживает любые сведения, которые нарушают заданный уровень соответствия, он создает исключение. В некоторых случаях модуль записи XML автоматически исправляет ошибку соответствия. Например, модуль записи закрывает незакрытый атрибут без исключения. В следующей таблице показано, как в каждом параметре обрабатываются различные нарушения соответствия.

Условие Document Fragment Auto
Обнаружена информация DTD. Не является нарушением этого параметра. Однако модуль записи XML не проверяет DTD; пользователь должен убедиться, что DTD имеет правильный формат. XmlException возникает исключение. Применяется проверка соответствия документа.
Вызывается метод WriteStartDocument. Не считается нарушением этого параметра. XmlException возникает исключение. Применяется проверка соответствия документа.
WriteStartDocument вызывается несколько раз. XmlException возникает исключение. XmlException возникает исключение. XmlException возникает исключение.
Текстовое значение отображается на верхнем уровне (не ниже элемента или узла атрибута). XmlException возникает исключение. Не считается нарушением. Применяется проверка соответствия фрагмента.
Несколько элементов или элементов не отображаются на верхнем уровне. XmlException возникает исключение. Не считается нарушением. Применяется проверка соответствия фрагмента.
Элемент верхнего уровня — это пробелы. Не считается нарушением. Не считается нарушением. Не считается нарушением.
WriteEndAttribute не вызывается для завершения узла атрибута. Исправлено средством записи XML. Исправлено средством записи XML. Исправлено средством записи XML.
Модуль записи XML находится в неправильно вложенном состоянии (например, WriteStartElement за вызовом следует a WriteEndAttribute). XmlException возникает исключение. XmlException возникает исключение. XmlException возникает исключение.
Элемент верхнего уровня является атрибутом. XmlException возникает исключение. XmlException возникает исключение. XmlException возникает исключение.
Найдены несколько смежных текстовых узлов. Не считается нарушением, но это ответственность пользователя за объединение текстовых узлов. Не считается нарушением, но это ответственность пользователя за объединение текстовых узлов. Не считается нарушением, но это ответственность пользователя за объединение текстовых узлов.
В элементе дважды объявлен один и тот же префикс пространства имен. Модуль записи XML создает новый префикс для второго пространства имен. Модуль записи XML создает новый префикс для второго пространства имен. Модуль записи XML создает новый префикс для второго пространства имен.
WriteStartElement указывает префикс и пространство имен, которое не объявлено в этой области, или префикс связан с другим пространством имен. Модуль записи XML записывает необходимый узел пространства имен. Модуль записи XML записывает необходимый узел пространства имен. Модуль записи XML записывает необходимый узел пространства имен.
WriteStartAttribute указывает префикс и пространство имен, которое не объявлено в этой области. Модуль записи XML записывает необходимый узел пространства имен. Модуль записи XML записывает необходимый узел пространства имен. Модуль записи XML записывает необходимый узел пространства имен.
WriteStartAttribute задает префикс и пространство имен, но префикс связан с другим пространством имен в области. Модуль записи XML игнорирует указанный префикс и ищет правильный префикс или создает новый префикс. Модуль записи XML игнорирует указанный префикс и ищет правильный префикс или создает новый префикс. Модуль записи XML игнорирует указанный префикс и ищет правильный префикс или создает новый префикс.
WriteQualifiedName используется для записи содержимого элемента с помощью пространства имен, которое не существует в области. XmlException возникает исключение. XmlException возникает исключение. XmlException возникает исключение.
WriteQualifiedName используется для записи содержимого атрибута с помощью пространства имен, которое не существует в области. Модуль записи XML записывает необходимое объявление пространства имен. Модуль записи XML записывает необходимое объявление пространства имен. Модуль записи XML записывает необходимое объявление пространства имен.
Атрибут xml:space не содержит допустимого значения. XmlException возникает исключение. XmlException возникает исключение. XmlException возникает исключение.
Обнаружено недопустимое имя. XmlException возникает исключение. XmlException возникает исключение. XmlException возникает исключение.
Префикс xml не совпадает с универсальным кодом ресурса (URI). Модуль записи XML не проверяет наличие этого типа нарушения. Модуль записи XML не проверяет наличие этого типа нарушения. Модуль записи XML не проверяет наличие этого типа нарушения.
Префикс xml не совпадает с универсальным http://www.w3.org/XML/1998/namespace кодом ресурса (URI). XmlException возникает исключение. XmlException возникает исключение. XmlException возникает исключение.
Префикс или локальное xmlns имя не совпадает с универсальным кодом ресурса (URI). Модуль записи XML не проверяет наличие этого типа нарушения. Модуль записи XML не проверяет наличие этого типа нарушения. Модуль записи XML не проверяет наличие этого типа нарушения.
Префикс или локальное xmlns имя не совпадает с универсальным http://www.w3.org/2000/xmlns кодом ресурса (URI). XmlException возникает исключение. XmlException возникает исключение. XmlException возникает исключение.

Применяется к