XmlConvert.EncodeName(String) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
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.