Freigeben über


XmlConvert.EncodeName-Methode

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

Namespace: System.Xml
Assembly: System.Xml (in system.xml.dll)

Syntax

'Declaration
Public Shared Function EncodeName ( _
    name As String _
) As String
'Usage
Dim name As String
Dim returnValue As String

returnValue = XmlConvert.EncodeName(name)
public static string EncodeName (
    string name
)
public:
static String^ EncodeName (
    String^ name
)
public static String EncodeName (
    String name
)
public static function EncodeName (
    name : String
) : String

Parameter

  • name
    Ein zu übersetzender Name.

Rückgabewert

Gibt den Namen zurück, wobei ungültige Zeichen durch eine Escapezeichenfolge ersetzt wurden.

Hinweise

Diese Methode übersetzt ungültige Zeichen, z. B. Leerzeichen oder Katakanazeichen halber Breite, die XML-Namen zugeordnet werden müssen, ohne dass Schemas unterstützt werden oder vorhanden sind. Die ungültigen Zeichen werden als numerische Entitäten in Escapezeichen codiert.

Das Escapezeichen ist "_". Zeichen von XML-Namen, die nicht der W3C-Spezifikation Extensible Markup Language (XML) 1.0 entsprechen, werden in den Escapecode _xHHHH_ übersetzt. Die Zeichenfolge HHHH steht für den vierstelligen UCS-2-Hexadezimalcode für das Zeichen, wobei das höchstwertige Bit zuerst aufgeführt ist. Der Name Order Details wird z. B. als Order_x0020_Details codiert.

Der Unterstrich muss nur in ein Escapezeichen umgewandelt werden, wenn auf diesen eine Zeichensequenz folgt, die zusammen mit dem Unterstrich beim Decodieren des Namens als Escapesequenz fehlinterpretiert werden kann. Order_Details ist z. B. nicht codiert, Order_x0020_ ist jedoch als Order_x005f_x0020_ codiert. Kurzformen sind nicht zulässig. Zeichenfolgen der Form _x20_ und __ werden z. B. nicht generiert.

Diese Methode stellt sicher, dass der Name entsprechend der XML-Spezifikation gültig ist. Die Spezifikation lässt Doppelpunkte in jeder Position zu. Dies bedeutet, dass der Name weiterhin entsprechend der W3C-Namespacespezifikation (www.w3.org/TR/REC-xml-names, nur auf Englisch verfügbar) ungültig sein kann. Verwenden Sie EncodeLocalName für das Präfix und den Teil des lokalen Namens, und verbinden Sie das Ergebnis mit einem Doppelpunkt, um sicherzustellen, dass ein gültiger durch einen Namespace gekennzeichneter Name vorliegt.

Beispiel

Im folgenden Beispiel werden Namen codiert und decodiert.

Imports System
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
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));

  }
}
#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 ) );
}
import System.*;
import System.IO.*;
import System.Xml.*;

public class Sample
{
    public static void main(String[] args)
    {
        // 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));
    } //main 
} //Sample

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

XmlConvert-Klasse
XmlConvert-Member
System.Xml-Namespace
EncodeLocalName
DecodeName