Compartilhar via


Classe System.Xml.XmlConvert

Este artigo fornece comentários complementares à documentação de referência para esta API.

A XmlConvert classe é funcionalmente equivalente à Convert classe, mas dá suporte a padrões XML. O sistema de tipos é baseado no tipo de esquema XSD (linguagem de definição de esquema XML) e os valores retornados são sempre independentes de localidade.

Codificação e decodificação

Os nomes de elemento e atributo ou valores de ID são limitados a um intervalo de caracteres XML de acordo com a recomendação W3C XML 1.0. Quando os nomes contêm caracteres inválidos, você pode usar os métodos EncodeName e DecodeName nesta classe para convertê-los em nomes XML válidos.

Por exemplo, se você quiser usar o título da coluna "Detalhes da Ordem" em um banco de dados, o banco de dados permitirá o espaço entre as duas palavras. No entanto, em XML, o espaço entre "Order" e "Detail" é considerado um caractere XML inválido. Você deve convertê-lo em uma codificação hexadecimal escapada e decodificá-lo posteriormente.

Você pode usar o EncodeName método com a XmlWriter classe para garantir que os nomes gravados sejam nomes XML válidos. O código C# a seguir converte o nome "Detalhe da Ordem" em um nome XML válido e grava o elemento <Order_0x0020_Detail>My order</Order_0x0020_Detail>.

writer.WriteElementString(XmlConvert.EncodeName("Order Detail"),"My order");

XmlConvert Os métodos a seguir executam a codificação e a decodificação.

Método Descrição
EncodeName Usa um nome e retorna o nome codificado junto com qualquer caractere inválido que seja substituído por uma cadeia de caracteres de escape. Este método permite dois-pontos em qualquer posição, o que significa que o nome ainda pode ser inválido de acordo com os Namespaces W3C na recomendação XML 1.0.
EncodeNmToken Usa um nome e retorna o nome codificado.
EncodeLocalName Equivalente a EncodeName, exceto pelo fato de que ele também codifica o caractere dois-pontos, garantindo que o nome possa ser usado como a parte LocalName de um nome qualificado do namespace.
DecodeName Inverte a transformação para todos os métodos de codificação.

Validação de nome

A XmlConvert classe contém dois métodos que verificam os caracteres em um elemento ou nome de atributo e verificam se o nome está em conformidade com as regras definidas pela recomendação W3C XML 1.0:

  • VerifyName verifica os caracteres e verifica se o nome é válido. O método retornará o nome se for válido e gerará uma exceção se não for.
  • VerifyNCName executa a mesma validação, mas aceita nomes não qualificados.

O XmlConvert contém métodos adicionais que validam tokens, caracteres de espaço em branco, IDs públicas e outras cadeias de caracteres.

Conversão de tipo de dados

XmlConvert também fornece métodos que permitem converter dados de uma cadeia de caracteres em um tipo de dados fortemente tipado. Por exemplo, o ToDateTime método converte uma cadeia de caracteres em seu DateTime equivalente. Isso é útil porque a maioria dos métodos na XmlReader classe retorna dados como uma cadeia de caracteres. Depois que os dados são lidos, eles podem ser convertidos no tipo de dados adequado antes de serem usados. As sobrecargas ToString fornecem a operação complementar convertendo dados fortemente tipados em cadeias de caracteres. Por exemplo, isso é útil quando você deseja adicionar os dados a caixas de texto em uma página da Web. As configurações de localidade não são levadas em conta durante a conversão de dados. Os tipos de dados são baseados nos tipos de dados XSD (Esquema XML).