XmlWriterSettings.ConformanceLevel Propriedade

Definição

Obtém ou define o nível de conformidade em relação ao qual o gravador de XML verifica a saída 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

Valor da propriedade

ConformanceLevel

Um dos valores de enumeração que especificam o nível de conformidade (documento, fragmento ou detecção automática).One of the enumeration values that specifies the level of conformance (document, fragment, or automatic detection). O padrão é Document.The default is Document.

Exemplos

O exemplo a seguir grava um fragmento XML em um fluxo de memória.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.

Comentários

A XmlWriterSettings.ConformanceLevel Propriedade configura o gravador de XML para verificar e garantir que o fluxo que está sendo gravado esteja em conformidade com um determinado conjunto de regras.The XmlWriterSettings.ConformanceLevel property configures the XML writer to check and guarantee that the stream being written complies with a certain set of rules. Os dados XML podem ser verificados para ver se estão em conformidade com as regras para um documento XML 1,0 bem formado ou um fragmento de documento.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. A tabela a seguir descreve as três configurações.The following table describes the three settings. O padrão é conformidade em nível de documento.The default is document-level conformance.

ConfiguraçãoSetting DescriçãoDescription
Document Garante que a saída XML esteja em conformidade com as regras para um documento xml 1,0 bem formado e possa ser processada por qualquer processador de conformidade.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.

As verificações de conformidade do documento incluem a maioria das verificações no nível do fragmento e também garantem o seguinte:The document conformance checks include most of the fragment-level checks and also ensure the following:

-O item de nível superior não tem nenhum outro nó além da declaração XML, do DTD, do elemento, do comentário, do espaço em branco ou da instrução de processamento.- The top-level item doesn't have any nodes other than XML Declaration, DTD, element, comment, white space, or processing instruction.
-Os dados XML têm apenas um nó de elemento de nível superior.- The XML data has one and only one top-level element node.

O gravador de XML não analisa informações de DTD gravadas.The XML writer doesn't parse DTD information that is written. O usuário é responsável por garantir que o DTD esteja bem formado.The user is responsible for ensuring that the DTD is well-formed.
Fragment Garante que a saída XML esteja em conformidade com as regras para um fragmento de documento XML 1,0 bem formado.Ensures that the XML output conforms to the rules for a well-formed XML 1.0 document fragment.

Essa configuração aceita dados XML que têm vários elementos raiz ou nós de texto no nível superior.This setting accepts XML data that has multiple root elements or text nodes at the top level. Este nível de verificação assegura que todo o processador possa receber o fluxo que está sendo como Entidade analisada externo XML 1,0ler.This level of checking ensures that any processor can consume the stream being read as an XML 1.0 external parsed entity.

As informações de DTD não são permitidas em fragmentos de documento.DTD information isn't allowed in document fragments.
Auto Especifica que o gravador de XML deve determinar o nível de verificação de conformidade com base nos dados de entrada.Specifies that the XML writer should determine the level of conformance checking based on the incoming data. Essa configuração pode ser útil quando você não sabe se o XML gerado será um documento XML bem formado ou um fragmento.This setting can be useful when you don't know whether the generated XML will be a well-formed XML document or a fragment.

Verificação de compatibilidade de documento é aplicado nos seguintes casos:Document conformance checking is applied in the following cases:

-Se o WriteStartDocument método for chamado.- If the WriteStartDocument method is called.
-Se informações de DTD forem gravadas.- If DTD information is written.

A verificação de conformidade do fragmento será aplicada se os dados XML contiverem um destes:Fragment conformance checking is applied if the XML data contains one of these:

-O nó Text, CDATA ou EntityReference no nível raiz.- Text, CDATA, or EntityReference node at the root level.
-Mais de um elemento no nível raiz.- More than one element at the root level.
-Nenhum elemento no nível raiz.- No element at the root level.

XmlException é lançada se houver um conflito, como quando você tentar gravar um nó de texto e um DTD no nível raiz.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.

Se você estiver encapsulando outro XmlWriter objeto, o objeto externo não realizará nenhuma verificação de conformidade adicional; isso é deixado para o objeto subjacente.If you are wrapping another XmlWriter object, the outer object doesn't do any additional conformance checking; this is left to the underlying object.

Se o gravador de XML detectar qualquer informação que viole o nível de conformidade especificado, ele lançará uma exceção.If the XML writer detects any information that would violate the specified level of conformance, it throws an exception. Em alguns casos, o gravador de XML corrige automaticamente o erro de conformidade.In some cases, the XML writer automatically corrects the conformance error. Por exemplo, o gravador fecha um atributo não fechado sem gerar uma exceção.For example, the writer closes an unclosed attribute without throwing an exception. A tabela a seguir mostra como várias violações de conformidade são tratadas em cada configuração.The following table shows how various conformance violations are handled in each setting.

CondiçãoCondition Document Fragment Auto
Informações de DTD encontradas.DTD information is found. Não é uma violação para essa configuração.Not a violation for this setting. No entanto, o gravador de XML não verifica o DTD; o usuário deve garantir que o DTD esteja bem formado.However, the XML writer doesn't check the DTD; the user must ensure that the DTD is well-formed. XmlException é lançada.XmlException is thrown. A verificação de conformidade do documento é aplicada.Document conformance checking is applied.
WriteStartDocument é chamado.WriteStartDocument is called. Não é considerada uma violação para essa configuração.Not considered a violation for this setting. XmlException é lançada.XmlException is thrown. A verificação de conformidade do documento é aplicada.Document conformance checking is applied.
WriteStartDocument é chamado várias vezes.WriteStartDocument is called multiple times. XmlException é lançada.XmlException is thrown. XmlException é lançada.XmlException is thrown. XmlException é lançada.XmlException is thrown.
Um valor de texto é exibido no nível superior (não abaixo de um elemento ou nó de atributo).A text value appears at the top level (not below an element or attribute node). XmlException é lançada.XmlException is thrown. Não é considerada uma violação.Not considered a violation. Verificação de compatibilidade de fragmento é aplicado.Fragment conformance checking is applied.
Vários elementos ou nenhum elemento aparecem no nível superior.Multiple elements or no elements appear at the top level. XmlException é lançada.XmlException is thrown. Não é considerada uma violação.Not considered a violation. Verificação de compatibilidade de fragmento é aplicado.Fragment conformance checking is applied.
O item de nível superior é um espaço em branco.Top-level item is white space. Não é considerada uma violação.Not considered a violation. Não é considerada uma violação.Not considered a violation. Não é considerada uma violação.Not considered a violation.
WriteEndAttribute Não é chamado para encerrar um nó de atributo.WriteEndAttribute isn't called to end an attribute node. Corrigido pelo gravador de XML.Fixed by XML writer. Corrigido pelo gravador de XML.Fixed by XML writer. Corrigido pelo gravador de XML.Fixed by XML writer.
O gravador de XML está em um estado aninhado incorretamente (por exemplo, uma WriteStartElement chamada é seguida por um WriteEndAttribute ).The XML writer is in an improperly nested state (for example, a WriteStartElement call is followed by a WriteEndAttribute). XmlException é lançada.XmlException is thrown. XmlException é lançada.XmlException is thrown. XmlException é lançada.XmlException is thrown.
O item de nível superior é um atributo.Top-level item is an attribute. XmlException é lançada.XmlException is thrown. XmlException é lançada.XmlException is thrown. XmlException é lançada.XmlException is thrown.
Várias, nós contíguos de texto for encontrado.Multiple, contiguous text nodes are found. Não é considerado uma violação, mas é responsabilidade do usuário concatenar os nós de texto.Not considered a violation, but it's the responsibility of the user to concatenate the text nodes. Não é considerado uma violação, mas é responsabilidade do usuário concatenar os nós de texto.Not considered a violation, but it's the responsibility of the user to concatenate the text nodes. Não é considerado uma violação, mas é responsabilidade do usuário concatenar os nós de texto.Not considered a violation, but it's the responsibility of the user to concatenate the text nodes.
O mesmo prefixo de namespace é declarada duas vezes em um elemento.The same namespace prefix is declared twice in an element. O gravador de XML gera um novo prefixo para o segundo namespace.The XML writer generates a new prefix for the second namespace. O gravador de XML gera um novo prefixo para o segundo namespace.The XML writer generates a new prefix for the second namespace. O gravador de XML gera um novo prefixo para o segundo namespace.The XML writer generates a new prefix for the second namespace.
WriteStartElement Especifica um prefixo e um namespace que não está declarado dentro desse escopo ou o prefixo está associado a um namespace diferente.WriteStartElement specifies a prefix and a namespace that isn't declared within that scope, or the prefix is associated with a different namespace. O gravador de XML grava o nó de namespace necessário.The XML writer writes the necessary namespace node. O gravador de XML grava o nó de namespace necessário.The XML writer writes the necessary namespace node. O gravador de XML grava o nó de namespace necessário.The XML writer writes the necessary namespace node.
WriteStartAttribute Especifica um prefixo e um namespace que não está declarado dentro desse escopo.WriteStartAttribute specifies a prefix and a namespace that isn't declared within that scope. O gravador de XML grava o nó de namespace necessário.The XML writer writes the necessary namespace node. O gravador de XML grava o nó de namespace necessário.The XML writer writes the necessary namespace node. O gravador de XML grava o nó de namespace necessário.The XML writer writes the necessary namespace node.
WriteStartAttribute Especifica um prefixo e um namespace, mas o prefixo está associado a um namespace no escopo diferente.WriteStartAttribute specifies a prefix and a namespace, but the prefix is associated with a different in-scope namespace. O gravador de XML ignora o prefixo especificado e pesquisa o prefixo correto ou gera um novo prefixo.The XML writer ignores the specified prefix and either looks up the correct prefix or generates a new prefix. O gravador de XML ignora o prefixo especificado e pesquisa o prefixo correto ou gera um novo prefixo.The XML writer ignores the specified prefix and either looks up the correct prefix or generates a new prefix. O gravador de XML ignora o prefixo especificado e pesquisa o prefixo correto ou gera um novo prefixo.The XML writer ignores the specified prefix and either looks up the correct prefix or generates a new prefix.
WriteQualifiedName é usado para gravar o conteúdo do elemento usando um namespace que não existe dentro do escopo.WriteQualifiedName is used to write element content by using a namespace that doesn't exist within the scope. XmlException é lançada.XmlException is thrown. XmlException é lançada.XmlException is thrown. XmlException é lançada.XmlException is thrown.
WriteQualifiedName é usado para gravar o conteúdo de atributo usando um namespace que não existe dentro do escopo.WriteQualifiedName is used to write attribute content by using a namespace that doesn't exist within the scope. O gravador de XML grava a declaração de namespace necessária.The XML writer writes the necessary namespace declaration. O gravador de XML grava a declaração de namespace necessária.The XML writer writes the necessary namespace declaration. O gravador de XML grava a declaração de namespace necessária.The XML writer writes the necessary namespace declaration.
O xml:space atributo não contém um valor válido.The xml:space attribute doesn't contain a valid value. XmlException é lançada.XmlException is thrown. XmlException é lançada.XmlException is thrown. XmlException é lançada.XmlException is thrown.
Um nome inválido é localizado.An invalid name is encountered. XmlException é lançada.XmlException is thrown. XmlException é lançada.XmlException is thrown. XmlException é lançada.XmlException is thrown.
O xml prefixo não corresponde a um URI.The xml prefix isn't matched to a URI. O gravador de XML não verifica esse tipo de violação.The XML writer doesn't check for this type of violation. O gravador de XML não verifica esse tipo de violação.The XML writer doesn't check for this type of violation. O gravador de XML não verifica esse tipo de violação.The XML writer doesn't check for this type of violation.
O xml prefixo não corresponde ao http://www.w3.org/XML/1998/namespace URI.The xml prefix isn't matched to the http://www.w3.org/XML/1998/namespace URI. XmlException é lançada.XmlException is thrown. XmlException é lançada.XmlException is thrown. XmlException é lançada.XmlException is thrown.
O xmlns prefixo ou o nome local não corresponde a um URI.The xmlns prefix or local name isn't matched to a URI. O gravador de XML não verifica esse tipo de violação.The XML writer doesn't check for this type of violation. O gravador de XML não verifica esse tipo de violação.The XML writer doesn't check for this type of violation. O gravador de XML não verifica esse tipo de violação.The XML writer doesn't check for this type of violation.
O xmlns prefixo ou o nome local não corresponde ao http://www.w3.org/2000/xmlns URI.The xmlns prefix or local name isn't matched to the http://www.w3.org/2000/xmlns URI. XmlException é lançada.XmlException is thrown. XmlException é lançada.XmlException is thrown. XmlException é lançada.XmlException is thrown.

Aplica-se a