Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. |
Übersetzung
Original
|
XmlConvert.EncodeName-Methode
Konvertiert den Namen in einen gültigen XML-Namen.
Assembly: System.Xml (in System.Xml.dll)
Parameter
- name
- Typ: System.String
Ein zu übersetzender Name.
Rückgabewert
Typ: System.StringGibt den Namen zurück, wobei ungültige Zeichen durch eine Escapezeichenfolge ersetzt wurden.
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.
Im folgenden Beispiel werden Namen codiert und decodiert.
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)); } }
Windows 7, Windows Vista SP1 oder höher, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core wird nicht unterstützt), Windows Server 2008 R2 (Server Core wird mit SP1 oder höher unterstützt), Windows Server 2003 SP2
.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.