XmlConvert.EncodeName(String) Método

Definição

Converte o nome em um nome XML válido.

public:
 static System::String ^ EncodeName(System::String ^ name);
public static string EncodeName(string name);
static member EncodeName : string -> string
Public Shared Function EncodeName (name As String) As String

Parâmetros

name
String

Um nome a ser traduzido.

Retornos

O nome com caracteres inválidos substituídos por uma cadeia de caracteres de escape.

Exemplos

O exemplo a seguir codifica e decodifica nomes.

using System;
using System.IO;
using System.Xml;

public class Sample
{

  public static void Main()
  {

     // Encode and decode a name with spaces.
     string name1 = XmlConvert.EncodeName("Order Detail");
     Console.WriteLine("Encoded name: " + name1);
     Console.WriteLine("Decoded name: " + XmlConvert.DecodeName(name1));

     // Encode and decode a local name.
     string name2 = XmlConvert.EncodeLocalName("a:book");
     Console.WriteLine("Encoded local name: " + name2);
     Console.WriteLine("Decoded local name: " + XmlConvert.DecodeName(name2));
  }
}
Imports System.IO
Imports System.Xml

public class Sample

  public shared sub Main()

     ' Encode and decode a name with spaces.
     Dim name1 as string = XmlConvert.EncodeName("Order Detail")
     Console.WriteLine("Encoded name: " + name1)
     Console.WriteLine("Decoded name: " + XmlConvert.DecodeName(name1))

     ' Encode and decode a local name.
     Dim name2 as string= XmlConvert.EncodeLocalName("a:book")
     Console.WriteLine("Encoded local name: " + name2)
     Console.WriteLine("Decoded local name: " + XmlConvert.DecodeName(name2))

  end sub
end class

Comentários

Esse método converte caracteres inválidos, como espaços ou Katakana de meia largura, que precisam ser mapeados para nomes XML sem o suporte ou a presença de esquemas. Os caracteres inválidos são convertidos em codificações de entidade numérica de escape.

O caractere de escape é "_". Qualquer caractere de nome XML que não esteja em conformidade com a recomendação de especificação XML 1.0 (quarta edição) é escapada como _xHHHH_. A cadeia de caracteres HHHH significa o código UCS-2 hexadecimal de quatro dígitos para o caractere na primeira ordem de bits mais significativa. Por exemplo, o nome Detalhes do Pedido é codificado como Order_x0020_Details.

O caractere de sublinhado não precisa ser escapado, a menos que seja seguido por uma sequência de caracteres que, juntamente com o sublinhado, pode ser mal interpretada como uma sequência de escape ao decodificar o nome. Por exemplo, Order_Details não é codificado, mas Order_x0020_ é codificado como Order_x005f_x0020_. Não são permitidas formas curtas. Por exemplo, os formulários _x20_ e __ não são gerados.

Esse método garante que o nome seja válido de acordo com a especificação XML. Ele permite dois-pontos em qualquer posição, o que significa que o nome ainda pode ser inválido de acordo com a Especificação do Namespace W3C. Para garantir que seja um nome EncodeLocalName qualificado de namespace válido para o prefixo e partes de nome local e unir o resultado com dois-pontos.

Aplica-se a

Confira também