Compartir vía


XmlConvert.EncodeName(String) Método

Definición

Convierte el nombre en un nombre 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

Nombre que se va a convertir.

Devoluciones

String

Nombre con los caracteres no válidos reemplazados por una cadena de escape.

Ejemplos

En el ejemplo siguiente se codifican y descodifican nombres.

#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

Comentarios

Este método traduce caracteres no válidos, como espacios o katakana de ancho medio, que deben asignarse a nombres XML sin la compatibilidad o presencia de esquemas. Los caracteres no válidos se traducen en codificaciones de entidad numérica de escape.

El carácter de escape es "_". Cualquier carácter de nombre XML que no se ajuste a la recomendación de especificación XML 1.0 (cuarta edición) se escape como _xHHHH_. La cadena HHHH representa el código UCS-2 hexadecimal de cuatro dígitos para el carácter en primer orden de bits más significativo. Por ejemplo, el nombre Detalles del pedido se codifica como Order_x0020_Details.

No es necesario que el carácter de subrayado sea de escape a menos que vaya seguido de una secuencia de caracteres que, junto con el carácter de subrayado, se pueda interpretar erróneamente como una secuencia de escape al descodificar el nombre. Por ejemplo, Order_Details no está codificado, pero Order_x0020_ está codificado como Order_x005f_x0020_. No se permiten formatos cortos. Por ejemplo, los formularios _x20_ y __ no se generan.

Este método garantiza que el nombre es válido según la especificación XML. Permite dos puntos en cualquier posición, lo que significa que el nombre puede seguir siendo no válido según la especificación del espacio de nombres W3C. Para garantizar que es un nombre EncodeLocalName completo de espacio de nombres válido para los elementos de prefijo y nombre local y combinar el resultado con dos puntos.

Se aplica a

Consulte también