System.Xml.XmlConvert-Klasse

Dieser Artikel enthält ergänzende Hinweise zur Referenzdokumentation für diese API.

Die XmlConvert-Klasse ist in Bezug auf die Funktionen äquivalent zur Convert-Klasse, unterstützt aber XML-Standards. Das Typsystem basiert auf dem XSD-Schematyp (XML Schema Definition Language), und die zurückgegebenen Werte sind stets vom Gebietsschema unabhängig.

Codierung und Decodierung

Element- und Attributnamen oder ID-Werte sind entsprechend der W3C-Empfehlung zu XML 1.0 auf einen Bereich von XML-Zeichen beschränkt. Wenn Namen ungültige Zeichen enthalten, können Sie die Methoden EncodeName und DecodeName in dieser Klasse verwenden, um sie in gültige XML-Namen zu übersetzen.

Wenn Sie beispielsweise die Spaltenüberschrift „Order Detail“ in einer Datenbank verwenden möchten, ist in der Datenbank das Leerzeichen zwischen den beiden Wörtern zulässig. In XML gilt das Leerzeichen zwischen „Order“ und „Detail“ jedoch als ungültiges XML-Zeichen. Sie müssen es in eine Hexadezimalcodierung mit Escapezeichen konvertieren und später decodieren.

Sie können die EncodeName-Methode mit der XmlWriter-Klasse verwenden, um sicherzustellen, dass die geschriebenen Namen gültige XML-Namen sind. Der folgende C#-Code konvertiert den Namen „Order Detail“ in einen gültigen XML-Namen und schreibt das Element <Order_0x0020_Detail>My order</Order_0x0020_Detail>.

writer.WriteElementString(XmlConvert.EncodeName("Order Detail"),"My order");

Die folgenden XmlConvert-Methoden führen Codierung und Decodierung aus:

Methode Beschreibung
EncodeName Akzeptiert einen Namen und gibt den codierten Namen zusammen mit allen ungültigen Zeichen zurück, die durch eine Escapezeichenfolge ersetzt wurden. Diese Methode erlaubt einen Doppelpunkt an beliebiger Position, d. h. der Name ist entsprechend der W3C-Empfehlung „Namespaces in XML 1.0“ möglicherweise immer noch ungültig.
EncodeNmToken Akzeptiert einen Namen und gibt den codierten Namen zurück.
EncodeLocalName Diese Methode entspricht der EncodeName-Methode, sie codiert jedoch auch den Doppelpunkt. Dadurch wird sichergestellt, dass der Name als LocalName-Teil des namespacequalifizierten Namens verwendet werden kann.
DecodeName Kehrt die Transformation für alle Codierungsmethoden um.

Namensvalidierung

Die XmlConvert-Klasse enthält zwei Methoden, die die Zeichen in einem Element- oder Attributnamen überprüfen und sicherstellen, dass der Name den Regeln entspricht, die in der W3C-Empfehlung zu XML 1.0 festgelegt sind:

  • Mit VerifyName werden die Zeichen überprüft, und es wird sichergestellt, dass der Name gültig ist. Die Methode gibt den Namen zurück, wenn er gültig ist, und löst eine Ausnahme aus, wenn dies nicht der Fall ist.
  • VerifyNCName führt dieselbe Überprüfung aus, akzeptiert aber unqualifizierte Namen.

XmlConvert enthält zusätzliche Methoden, mit denen Token, Leerzeichen, öffentliche IDs und andere Zeichenfolgen überprüft werden.

Konvertieren von Datentypen

XmlConvert stellt außerdem Methoden bereit, mit denen Sie Daten aus einer Zeichenfolge in einen stark typisierten Datentyp konvertieren können. Die Methode ToDateTime konvertiert z. B. eine Zeichenfolge in das DateTime-Äquivalent. Dies ist hilfreich, da die meisten Methoden in der XmlReader-Klasse Daten als Zeichenfolge zurückgeben. Nachdem die Daten gelesen wurden, können sie vor der Verwendung in den geeigneten Datentyp umgewandelt werden. Die ToString-Überladungen stellen den ergänzenden Vorgang bereit, indem stark typisierte Daten in Zeichenfolgen konvertiert werden. Dies ist beispielsweise hilfreich, wenn Sie die Daten zu Textfeldern auf einer Webseite hinzufügen möchten. Gebietsschemaeinstellungen werden während der Datenkonvertierung nicht berücksichtigt. Die Datentypen basieren auf den Datentypen des XML-Schemas (XSD).