XmlWriterSettings.ConformanceLevel Свойство

Определение

Возвращает или задает уровень соответствия, на предмет которого средство записи XML проверяет выходные данные XML.Gets or sets the level of conformance that the XML writer checks the XML output for.

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

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

Одно из значений перечисления, указывающее уровень соответствия (документ, фрагмент или автоматическое обнаружение).One of the enumeration values that specifies the level of conformance (document, fragment, or automatic detection). Значение по умолчанию — Document.The default is Document.

Примеры

В следующем примере фрагмент XML записывается в поток памяти.The following example writes an XML fragment to a memory stream.

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 на проверку и гарантирует, что записываемый поток соответствует определенному набору правил.The XmlWriterSettings.ConformanceLevel property configures the XML writer to check and guarantee that the stream being written complies with a certain set of rules. XML-данные можно проверить, чтобы убедиться, что они соответствует правилам для XML-документа 1,0 или фрагмента документа.The XML data can be checked to see that it conforms to the rules for a well-formed XML 1.0 document or a document fragment. В следующей таблице описаны три параметра.The following table describes the three settings. Значение по умолчанию — соответствие уровня документа.The default is document-level conformance.

ПараметрSetting DescriptionDescription
Document Гарантирует, что выходные данные XML должны соответствовать правилам для xml 1,0-документа с правильным форматом и могут обрабатываться любым процессором.Ensures that the XML output conforms to the rules for a well-formed XML 1.0 document and can be processed by any conforming processor.

Проверка соответствия документов включает большую часть проверок на уровне фрагментов, а также гарантирует следующее:The document conformance checks include most of the fragment-level checks and also ensure the following:

— У элемента верхнего уровня нет ни одного узла, кроме объявления XML, DTD, элемента, комментария, пробела или инструкции по обработке.- The top-level item doesn't have any nodes other than XML Declaration, DTD, element, comment, white space, or processing instruction.
— XML-данные имеют один и только один узел элемента верхнего уровня.- The XML data has one and only one top-level element node.

Модуль записи XML не анализирует данные DTD, которые записываются.The XML writer doesn't parse DTD information that is written. Пользователь несет ответственность за обеспечение правильного формата DTD.The user is responsible for ensuring that the DTD is well-formed.
Fragment Гарантирует, что выходные данные XML соответствует правилам для фрагмента документа xml 1,0 с правильным форматом.Ensures that the XML output conforms to the rules for a well-formed XML 1.0 document fragment.

Этот параметр принимает XML-данные с несколькими корневыми элементами или текстовыми узлами на верхнем уровне.This setting accepts XML data that has multiple root elements or text nodes at the top level. Этот уровень проверки гарантирует, что любое средство обработки сможет обработать считываемый поток как сущность XML 1.0 с внешним синтаксическим анализом.This level of checking ensures that any processor can consume the stream being read as an XML 1.0 external parsed entity.

Сведения о DTD не разрешены в фрагментах документа.DTD information isn't allowed in document fragments.
Auto Указывает, что модуль записи XML должен определить уровень проверки соответствия на основе входящих данных.Specifies that the XML writer should determine the level of conformance checking based on the incoming data. Этот параметр может быть полезен, если не известно, будет ли сформированный XML-документ правильного формата или фрагмента.This setting can be useful when you don't know whether the generated XML will be a well-formed XML document or a fragment.

Проверка согласованности на уровне документа применяется в следующих случаях:Document conformance checking is applied in the following cases:

— При вызове метода WriteStartDocument.- If the WriteStartDocument method is called.
— Если сведения о DTD записываются.- If DTD information is written.

Проверка соответствия фрагментов применяется, если XML-данные содержат один из следующих элементов:Fragment conformance checking is applied if the XML data contains one of these:

— Текстовый, CDATA или узел EntityReference на корневом уровне.- Text, CDATA, or EntityReference node at the root level.
— Более одного элемента на корневом уровне.- More than one element at the root level.
— Отсутствует элемент на корневом уровне.- No element at the root level.

Исключение XmlException создается, если обнаруживается конфликт, например когда на корневом уровне одновременно записываются текстовый узел и DTD.An XmlException is thrown if there is a conflict, such as when you try to write a text node and a DTD at the root level.

При создании оболочки для другого объекта XmlWriter внешний объект не выполняет дополнительную проверку соответствия. Это оставлено базовому объекту.If you are wrapping another XmlWriter object, the outer object doesn't do any additional conformance checking; this is left to the underlying object.

Если модуль записи XML обнаруживает какие-либо сведения, которые нарушают указанный уровень соответствия, возникает исключение.If the XML writer detects any information that would violate the specified level of conformance, it throws an exception. В некоторых случаях модуль записи XML автоматически исправляет ошибку соответствия.In some cases, the XML writer automatically corrects the conformance error. Например, модуль записи закрывает незакрытый атрибут, не вызывая исключение.For example, the writer closes an unclosed attribute without throwing an exception. В следующей таблице показано, как различные нарушения соответствия обрабатываются в каждом параметре.The following table shows how various conformance violations are handled in each setting.

УсловиеCondition Document Fragment Auto
Найдены сведения о DTD.DTD information is found. Не является нарушением этого параметра.Not a violation for this setting. Однако модуль записи XML не проверяет DTD. пользователь должен убедиться, что DTD имеет правильный формат.However, the XML writer doesn't check the DTD; the user must ensure that the DTD is well-formed. выдается XmlException.XmlException is thrown. Применяется проверка соответствия документов.Document conformance checking is applied.
Вызывается метод WriteStartDocument.WriteStartDocument is called. Не считается нарушением для этого параметра.Not considered a violation for this setting. выдается XmlException.XmlException is thrown. Применяется проверка соответствия документов.Document conformance checking is applied.
WriteStartDocument вызывается несколько раз.WriteStartDocument is called multiple times. выдается XmlException.XmlException is thrown. выдается XmlException.XmlException is thrown. выдается XmlException.XmlException is thrown.
Текстовое значение отображается на верхнем уровне (не ниже элемента или узла атрибута).A text value appears at the top level (not below an element or attribute node). выдается XmlException.XmlException is thrown. Не считается нарушением.Not considered a violation. Применяется проверка соответствия фрагмента.Fragment conformance checking is applied.
На верхнем уровне не отображаются несколько элементов или элементов.Multiple elements or no elements appear at the top level. выдается XmlException.XmlException is thrown. Не считается нарушением.Not considered a violation. Применяется проверка соответствия фрагмента.Fragment conformance checking is applied.
Элемент верхнего уровня является пробелом.Top-level item is white space. Не считается нарушением.Not considered a violation. Не считается нарушением.Not considered a violation. Не считается нарушением.Not considered a violation.
WriteEndAttribute не вызывается для завершения узла атрибута.WriteEndAttribute isn't called to end an attribute node. Исправлено модулем записи XML.Fixed by XML writer. Исправлено модулем записи XML.Fixed by XML writer. Исправлено модулем записи XML.Fixed by XML writer.
Модуль записи XML находится в неправильном вложенном состоянии (например, за вызовом WriteStartElement за ним следует WriteEndAttribute).The XML writer is in an improperly nested state (for example, a WriteStartElement call is followed by a WriteEndAttribute). выдается XmlException.XmlException is thrown. выдается XmlException.XmlException is thrown. выдается XmlException.XmlException is thrown.
Элемент верхнего уровня является атрибутом.Top-level item is an attribute. выдается XmlException.XmlException is thrown. выдается XmlException.XmlException is thrown. выдается XmlException.XmlException is thrown.
Найдены несколько смежных текстовых узлов.Multiple, contiguous text nodes are found. Не считается нарушением, но ответственность за сцепление текстовых узлов несет пользователь.Not considered a violation, but it's the responsibility of the user to concatenate the text nodes. Не считается нарушением, но ответственность за сцепление текстовых узлов несет пользователь.Not considered a violation, but it's the responsibility of the user to concatenate the text nodes. Не считается нарушением, но ответственность за сцепление текстовых узлов несет пользователь.Not considered a violation, but it's the responsibility of the user to concatenate the text nodes.
В элементе дважды объявлен один и тот же префикс пространства имен.The same namespace prefix is declared twice in an element. Модуль записи XML создает новый префикс для второго пространства имен.The XML writer generates a new prefix for the second namespace. Модуль записи XML создает новый префикс для второго пространства имен.The XML writer generates a new prefix for the second namespace. Модуль записи XML создает новый префикс для второго пространства имен.The XML writer generates a new prefix for the second namespace.
WriteStartElement указывает префикс и пространство имен, которое не объявлено в этой области, либо префикс связан с другим пространством имен.WriteStartElement specifies a prefix and a namespace that isn't declared within that scope, or the prefix is associated with a different namespace. Модуль записи XML записывает необходимый узел пространства имен.The XML writer writes the necessary namespace node. Модуль записи XML записывает необходимый узел пространства имен.The XML writer writes the necessary namespace node. Модуль записи XML записывает необходимый узел пространства имен.The XML writer writes the necessary namespace node.
WriteStartAttribute указывает префикс и пространство имен, которое не объявлено в этой области.WriteStartAttribute specifies a prefix and a namespace that isn't declared within that scope. Модуль записи XML записывает необходимый узел пространства имен.The XML writer writes the necessary namespace node. Модуль записи XML записывает необходимый узел пространства имен.The XML writer writes the necessary namespace node. Модуль записи XML записывает необходимый узел пространства имен.The XML writer writes the necessary namespace node.
WriteStartAttribute указывает префикс и пространство имен, но префикс связан с другим пространством имен в области.WriteStartAttribute specifies a prefix and a namespace, but the prefix is associated with a different in-scope namespace. Модуль записи XML игнорирует указанный префикс и либо ищет правильный префикс, либо создает новый префикс.The XML writer ignores the specified prefix and either looks up the correct prefix or generates a new prefix. Модуль записи XML игнорирует указанный префикс и либо ищет правильный префикс, либо создает новый префикс.The XML writer ignores the specified prefix and either looks up the correct prefix or generates a new prefix. Модуль записи XML игнорирует указанный префикс и либо ищет правильный префикс, либо создает новый префикс.The XML writer ignores the specified prefix and either looks up the correct prefix or generates a new prefix.
WriteQualifiedName используется для записи содержимого элемента с помощью пространства имен, которое не существует в области.WriteQualifiedName is used to write element content by using a namespace that doesn't exist within the scope. выдается XmlException.XmlException is thrown. выдается XmlException.XmlException is thrown. выдается XmlException.XmlException is thrown.
WriteQualifiedName используется для записи содержимого атрибута с помощью пространства имен, которое не существует в области.WriteQualifiedName is used to write attribute content by using a namespace that doesn't exist within the scope. Модуль записи XML записывает необходимое объявление пространства имен.The XML writer writes the necessary namespace declaration. Модуль записи XML записывает необходимое объявление пространства имен.The XML writer writes the necessary namespace declaration. Модуль записи XML записывает необходимое объявление пространства имен.The XML writer writes the necessary namespace declaration.
Атрибут xml:space не содержит допустимого значения.The xml:space attribute doesn't contain a valid value. выдается XmlException.XmlException is thrown. выдается XmlException.XmlException is thrown. выдается XmlException.XmlException is thrown.
Обнаружено недопустимое имя.An invalid name is encountered. выдается XmlException.XmlException is thrown. выдается XmlException.XmlException is thrown. выдается XmlException.XmlException is thrown.
Префикс xml не соответствует универсальному коду ресурса (URI).The xml prefix isn't matched to a URI. Модуль записи XML не проверяет этот тип нарушения.The XML writer doesn't check for this type of violation. Модуль записи XML не проверяет этот тип нарушения.The XML writer doesn't check for this type of violation. Модуль записи XML не проверяет этот тип нарушения.The XML writer doesn't check for this type of violation.
Префикс xml не соответствует URI http://www.w3.org/XML/1998/namespace.The xml prefix isn't matched to the http://www.w3.org/XML/1998/namespace URI. выдается XmlException.XmlException is thrown. выдается XmlException.XmlException is thrown. выдается XmlException.XmlException is thrown.
Префикс xmlns или локальное имя не соответствует универсальному коду ресурса (URI).The xmlns prefix or local name isn't matched to a URI. Модуль записи XML не проверяет этот тип нарушения.The XML writer doesn't check for this type of violation. Модуль записи XML не проверяет этот тип нарушения.The XML writer doesn't check for this type of violation. Модуль записи XML не проверяет этот тип нарушения.The XML writer doesn't check for this type of violation.
Префикс xmlns или локальное имя не соответствует URI http://www.w3.org/2000/xmlns.The xmlns prefix or local name isn't matched to the http://www.w3.org/2000/xmlns URI. выдается XmlException.XmlException is thrown. выдается XmlException.XmlException is thrown. выдается XmlException.XmlException is thrown.

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