XmlConvert.EncodeName(String) Metodo

Definizione

Converte il nome in un nome XML valido.

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

Parametri

name
String

Nome da convertire.

Restituisce

String

Nome con gli eventuali caratteri non validi sostituiti da una stringa di escape.

Esempio

L'esempio seguente codifica e decodifica i nomi.

#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

Commenti

Questo metodo converte caratteri non validi, ad esempio spazi o katakana a metà larghezza, che devono essere mappati a nomi XML senza il supporto o la presenza di schemi. I caratteri non validi vengono convertiti in codifiche di entità numeriche di escape.

Il carattere di escape è "_". Qualsiasi carattere di nome XML non conforme alla specifica XML 1.0 (quarta edizione) viene preceduto da un carattere di escape xHHHH__. La stringa HHHH è l'acronimo del codice UCS-2 a quattro cifre per il carattere nel primo ordine di bit più significativo. Ad esempio, il nome Dettagli ordine è codificato come Dettagli ordine_x0020_.

Il carattere di sottolineatura non deve essere sottoposto a escape a meno che non sia seguito da una sequenza di caratteri che, insieme al carattere di sottolineatura, possa essere erroneamente interpretata come una sequenza di escape durante il processo di decodifica del nome. Ad esempio, Dettagli ordine_non è codificato, ma Order_x0020_ è codificato come Order_x005f_x0020_. Non sono consentite forme corte. Ad esempio, i moduli _x20_ e __ non vengono generati.

Questo metodo garantisce che il nome sia valido in base alla specifica XML. Consente i due punti in qualsiasi posizione, il che significa che il nome potrebbe essere ancora non valido in base alla specifica dello spazio dei nomi W3C. Per garantire che si tratti di un nome completo dello spazio dei nomi valido usato EncodeLocalName per il prefisso e le parti del nome locale e unire il risultato con due punti.

Si applica a

Vedi anche