XmlConvert.EncodeName(String) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Converte o nome para um nome XML válido.
public:
static System::String ^ EncodeName(System::String ^ name);
public static string EncodeName (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 junto com qualquer caractere inválido substituído por uma cadeia de caracteres de escape.
Exemplos
O exemplo a seguir codifica e decodifica nomes.
#using <System.dll>
#using <System.XML.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml;
int main()
{
// Encode and decode a name with spaces.
String^ name1 = XmlConvert::EncodeName( "Order Detail" );
Console::WriteLine( "Encoded name: {0}", name1 );
Console::WriteLine( "Decoded name: {0}", XmlConvert::DecodeName( name1 ) );
// Encode and decode a local name.
String^ name2 = XmlConvert::EncodeLocalName( "a:book" );
Console::WriteLine( "Encoded local name: {0}", name2 );
Console::WriteLine( "Decoded local name: {0}", XmlConvert::DecodeName( name2 ) );
}
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éricas 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 bit mais significativa. Por exemplo, os detalhes do pedido de nome são codificados como Detalhes da Ordem_x0020_.
O caractere sublinhado não precisa ser de escape, a menos que ele seja seguido de uma sequência de caracteres que junto com o sublinhado possam ser mal-interpretados como uma sequência de escape ao decodificar o nome. Por exemplo, Os Detalhes do Pedido_não são codificados, mas o Order_x0020_ é codificado como Order_x005f_x0020_. Nenhum shortforms é permitido. 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 ele seja um namespace válido, EncodeLocalName use o nome qualificado para o prefixo e as partes de nome local e junte-se ao resultado com dois-pontos.