Freigeben über


XmlConvert.EncodeName(String) Methode

Definition

Konvertiert den Namen in einen gültigen XML-Namen.

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

Parameter

name
String

Ein zu übersetzender Name.

Gibt zurück

String

Der Name, in dem eventuelle ungültige Zeichen durch eine Escapezeichenfolge ersetzt wurden.

Beispiele

Im folgenden Beispiel werden Namen codiert und dekodiert.

#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

Hinweise

Diese Methode übersetzt ungültige Zeichen, z. B. Leerzeichen oder Katakana mit halber Breite, die XML-Namen ohne Unterstützung oder Anwesenheit von Schemas zugeordnet werden müssen. Die ungültigen Zeichen werden in escaped numerische Entitätscodierungen übersetzt.

Das Escapezeichen lautet "_". Jedes XML-Namenszeichen, das nicht der XML 1.0-Spezifikation (vierte Edition) entspricht, wird als _xHHHHH_ escapet. Die HHHH-Zeichenfolge steht für den vierstelligen Hexadezimal-UCS-2-Code für das Zeichen in der wichtigsten ersten Bitreihenfolge. Beispielsweise wird der Name "Bestelldetails" als "Order_x0020_Details" codiert.

Der Unterstrich muss nicht geschützt werden, es sei denn, er wird von einer Zeichensequenz gefolgt, die beim Decodieren des Namens zusammen mit dem Unterstrich als Escapezeichenfolge fehlinterpretiert werden kann. Bestelldetails werden z. B_. nicht codiert, "_Order x0020_ " wird jedoch als Order_x005f_x0020_ codiert. Es sind keine Kurzformen zulässig. Beispielsweise werden die Formulare _x20_ und __ nicht generiert.

Diese Methode garantiert, dass der Name gemäß der XML-Spezifikation gültig ist. Es ermöglicht Doppelpunkte an einer beliebigen Position, was bedeutet, dass der Name möglicherweise weiterhin gemäß der W3C-Namespacespezifikation ungültig ist. Um sicherzustellen, dass es sich um einen gültigen namespacequalifizierten Namen handelt, verwenden EncodeLocalName Sie die Präfix- und lokalen Namensteile, und verknüpfen Sie das Ergebnis mit einem Doppelpunkt.

Gilt für

Siehe auch