XmlWriterSettings.ConformanceLevel Propriedade
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Obtém ou define o nível de conformidade que o escritor XML verifica na saída 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
Valor de Propriedade
Um dos valores de enumeração que especifica o nível de conformidade (documento, fragmento ou deteção automática). A predefinição é Document.
Exemplos
O exemplo seguinte escreve um fragmento XML num fluxo de memória.
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.
Observações
A XmlWriterSettings.ConformanceLevel propriedade configura o escritor XML para verificar e garantir que o fluxo a ser escrito cumpre um determinado conjunto de regras. Os dados XML podem ser verificados para verificar se cumprem as regras de um documento XML 1.0 bem formado ou de um fragmento de documento. A tabela seguinte descreve as três configurações. O padrão é a conformidade ao nível do documento.
| Definição | Descrição |
|---|---|
| Document | Assegura que a saída XML cumpre as regras de um documento XML 1.0 bem formado e pode ser processada por qualquer processador conforme. As verificações de conformidade dos documentos incluem a maioria das verificações ao nível do fragmento e também garantem o seguinte: - O item de topo não tem nós além de Declaração XML, DTD, elemento, comentário, espaço em branco ou instrução de processamento. - Os dados XML têm apenas um nó de elemento de topo. O escritor XML não analisa a informação DTD que está escrita. O utilizador é responsável por garantir que o DTD está bem estruturado. |
| Fragment | Assegura que a saída XML cumpre as regras para um fragmento de documento XML 1.0 bem formado. Esta configuração aceita dados XML que têm múltiplos elementos raiz ou nós de texto ao nível superior. Este nível de verificação garante que qualquer processador pode consumir o fluxo que está a ser lido como uma entidade externa analisada XML 1.0. Informação DTD não é permitida em fragmentos de documentos. |
| Auto | Especifica que o escritor XML deve determinar o nível de verificação de conformidade com base nos dados recebidos. Esta configuração pode ser útil quando não se sabe se o XML gerado será um documento XML bem formado ou um fragmento. A verificação de conformidade dos documentos é aplicada nos seguintes casos: - Se o WriteStartDocument método for chamado. - Se a informação DTD for escrita. A verificação de conformidade de fragmentos é aplicada se os dados XML conterem um destes: - Nó Text, CDATA ou EntityReference ao nível raiz. - Mais do que um elemento ao nível da raiz. - Nenhum elemento ao nível raiz. Um XmlException é lançado se houver um conflito, como quando tentas escrever um nó de texto e um DTD ao nível raiz. Se estiver a envolver outro XmlWriter objeto, o objeto exterior não faz qualquer verificação adicional de conformidade; isto fica a cargo do objeto subjacente. |
Se o escritor XML detetar alguma informação que viole o nível de conformidade especificado, lança uma exceção. Em alguns casos, o escritor XML corrige automaticamente o erro de conformidade. Por exemplo, o escritor fecha um atributo não fechado sem lançar uma exceção. A tabela seguinte mostra como as várias violações de conformidade são tratadas em cada cenário.
| Condition | Document | Fragment | Auto |
|---|---|---|---|
| Encontra-se informação sobre DTD. | Não é uma violação desta definição. No entanto, o escritor XML não verifica o DTD; o utilizador deve garantir que a DTD está bem estruturada. | XmlException é lançado. | É aplicada a verificação de conformidade documental. |
| WriteStartDocument é invocado. | Não é considerado uma violação para esta configuração. | XmlException é lançado. | É aplicada a verificação de conformidade documental. |
| WriteStartDocument é chamada várias vezes. | XmlException é lançado. | XmlException é lançado. | XmlException é lançado. |
| Um valor de texto aparece no nível superior (não abaixo de um elemento ou nó de atributo). | XmlException é lançado. | Não é considerado uma violação. | É aplicada a verificação de conformidade de fragmentos. |
| Vários elementos ou nenhum elemento aparecem no nível superior. | XmlException é lançado. | Não é considerado uma violação. | É aplicada a verificação de conformidade de fragmentos. |
| O item de topo é o espaço em branco. | Não é considerado uma violação. | Não é considerado uma violação. | Não é considerado uma violação. |
| WriteEndAttribute não é chamado para terminar um nó de atributo. | Corrigido por XML writer. | Corrigido por XML writer. | Corrigido por XML writer. |
| O escritor XML encontra-se num estado aninhado incorretamente (por exemplo, uma WriteStartElement chamada é seguida por um WriteEndAttribute). | XmlException é lançado. | XmlException é lançado. | XmlException é lançado. |
| Item de topo é um atributo. | XmlException é lançado. | XmlException é lançado. | XmlException é lançado. |
| São encontrados múltiplos nós de texto contíguos. | Não é considerado uma violação, mas é responsabilidade do utilizador concatenar os nós de texto. | Não é considerado uma violação, mas é responsabilidade do utilizador concatenar os nós de texto. | Não é considerado uma violação, mas é responsabilidade do utilizador concatenar os nós de texto. |
| O mesmo prefixo de espaço de nomes é declarado duas vezes num elemento. | O escritor XML gera um novo prefixo para o segundo espaço de nomes. | O escritor XML gera um novo prefixo para o segundo espaço de nomes. | O escritor XML gera um novo prefixo para o segundo espaço de nomes. |
| WriteStartElement especifica um prefixo e um namespace que não são declarados dentro desse âmbito, ou o prefixo está associado a um namespace diferente. | O escritor XML escreve o nó de namespace necessário. | O escritor XML escreve o nó de namespace necessário. | O escritor XML escreve o nó de namespace necessário. |
| WriteStartAttribute especifica um prefixo e um namespace que não são declarados dentro desse âmbito. | O escritor XML escreve o nó de namespace necessário. | O escritor XML escreve o nó de namespace necessário. | O escritor XML escreve o nó de namespace necessário. |
| WriteStartAttribute especifica um prefixo e um namespace, mas o prefixo está associado a um namespace dentro do âmbito diferente. | O escritor XML ignora o prefixo especificado e procura o prefixo correto ou gera um novo. | O escritor XML ignora o prefixo especificado e procura o prefixo correto ou gera um novo. | O escritor XML ignora o prefixo especificado e procura o prefixo correto ou gera um novo. |
| WriteQualifiedName é usado para escrever conteúdo elemental usando um namespace que não existe dentro do âmbito. | XmlException é lançado. | XmlException é lançado. | XmlException é lançado. |
| WriteQualifiedName é usado para escrever conteúdo de atributos usando um namespace que não existe dentro desse âmbito. | O escritor XML escreve a declaração necessária do espaço de nomes. | O escritor XML escreve a declaração necessária do espaço de nomes. | O escritor XML escreve a declaração necessária do espaço de nomes. |
O xml:space atributo não contém um valor válido. |
XmlException é lançado. | XmlException é lançado. | XmlException é lançado. |
| Encontra-se um nome inválido. | XmlException é lançado. | XmlException é lançado. | XmlException é lançado. |
O xml prefixo não está associado a um URI. |
O escritor XML não verifica este tipo de violação. | O escritor XML não verifica este tipo de violação. | O escritor XML não verifica este tipo de violação. |
O xml prefixo não está correspondido ao http://www.w3.org/XML/1998/namespace URI. |
XmlException é lançado. | XmlException é lançado. | XmlException é lançado. |
O xmlns prefixo ou o nome local não estão associados a um URI. |
O escritor XML não verifica este tipo de violação. | O escritor XML não verifica este tipo de violação. | O escritor XML não verifica este tipo de violação. |
O xmlns prefixo ou nome local não está associado ao http://www.w3.org/2000/xmlns URI. |
XmlException é lançado. | XmlException é lançado. | XmlException é lançado. |