Codieren und Decodieren von XML-Element- und -Attributnamen und ID-Werten
Aktualisiert: November 2007
Element- und Attributnamen oder ID-Werte sind auf einen Bereich von XML-Zeichen beschränkt, der der W3C-Empfehlung Extensible Markup Language (XML) 1.0 (Second Edition) entspricht. Sie finden die Empfehlung unter www.w3.org/TR/2000/REC-xml-20001006.html (nur auf Englisch verfügbar). Wenn Namen ungültige Zeichen enthalten, werden Sie mithilfe von Codier- und Decodiermethoden in gültige XML-Namen umgewandelt.
Bei vielen Sprachen und Anwendungen wie Microsoft SQL Server und Microsoft Office Word sind Unicode-Zeichen in Namen zulässig, die in XML-Namen ungültig sind. Beispielsweise wäre bei einer Spaltenüberschrift "Order Detail" in einer Datenbank das Leerzeichen zwischen den Wörtern "Order" und "Detail" zulässig, während es in XML ein ungültiges XML-Zeichen darstellt. Daher muss das Leerzeichen (das ungültige Zeichen) in geschützte Hexadezimalcodierung konvertiert werden, die später decodiert werden kann.
Die XmlTextWriter-Klasse führt standardmäßig keine Zeichenüberprüfung durch. Der Code WriteElementString("Order Detail", "My order"); erstellt beispielsweise ein ungültiges Element von <Order Detail>My order</Order Detail>..
Die korrekte Codierung zum Codieren des Elementwerts lautet writer.WriteElementString(XmlConvert.EncodeName("Order Detail"), "My order"), womit das gültige Element <Order_0x0020_Detail>My order</Order_0x0020_Detail> erstellt.