Partager via


Classe System.Xml.XmlConvert

Cet article fournit des remarques supplémentaires à la documentation de référence de cette API.

La XmlConvert classe est fonctionnellement équivalente à la Convert classe, mais elle prend en charge les normes XML. Le système de type est basé sur le type de schéma XSD (XML Schema Definition Language) et les valeurs retournées sont toujours indépendantes des paramètres régionaux.

Encodage et décodage

Les noms d’éléments et d’attributs ou les valeurs d’ID sont limités à une plage de caractères XML en fonction de la recommandation W3C XML 1.0. Lorsque les noms contiennent des caractères non valides, vous pouvez utiliser les méthodes et DecodeName les EncodeName méthodes de cette classe pour les traduire en noms XML valides.

Par exemple, si vous souhaitez utiliser l’en-tête de colonne « Détail de l’ordre » dans une base de données, la base de données autorise l’espace entre les deux mots. Toutefois, en XML, l’espace entre « Order » et « Detail » est considéré comme un caractère XML non valide. Vous devez le convertir en encodage hexadécimal d’échappement et le décoder ultérieurement.

Vous pouvez utiliser la EncodeName méthode avec la XmlWriter classe pour vous assurer que les noms écrits sont des noms XML valides. Le code C# suivant convertit le nom « Order Detail » en un nom XML valide et écrit l’élément <Order_0x0020_Detail>My order</Order_0x0020_Detail>.

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

Les méthodes suivantes XmlConvert effectuent l’encodage et le décodage.

Méthode Descriptif
EncodeName Prend un nom et retourne le nom encodé avec tout caractère non valide remplacé par une chaîne d’échappement. Cette méthode autorise les deux-points dans n’importe quelle position, ce qui signifie que le nom peut toujours être non valide en fonction des espaces de noms W3C dans la recommandation XML 1.0.
EncodeNmToken Prend un nom et retourne le nom encodé.
EncodeLocalName Identique à ceci sauf EncodeName qu’il encode également le caractère deux-points, garantissant que le nom peut être utilisé comme LocalName partie d’un nom qualifié d’espace de noms.
DecodeName Inverse la transformation de toutes les méthodes d’encodage.

Validation de nom

La XmlConvert classe contient deux méthodes qui vérifient les caractères d’un nom d’élément ou d’attribut et vérifient que le nom est conforme aux règles définies par la recommandation W3C XML 1.0 :

  • VerifyName vérifie les caractères et vérifie que le nom est valide. La méthode retourne le nom s’il est valide et lève une exception si ce n’est pas le cas.
  • VerifyNCName effectue la même validation, mais accepte des noms non qualifiés.

Contient XmlConvert des méthodes supplémentaires qui valident les jetons, les espaces blancs, les ID publics et d’autres chaînes.

Conversion de types de données

XmlConvert fournit également des méthodes qui vous permettent de convertir des données d’une chaîne en type de données fortement typé. Par exemple, la ToDateTime méthode convertit une chaîne en son DateTime équivalent. Cela est utile, car la plupart des méthodes de la XmlReader classe retournent des données sous forme de chaîne. Une fois les données lues, elles peuvent être converties en type de données approprié avant d’être utilisées. Les ToString surcharges fournissent l’opération complémentaire en convertissant des données fortement typées en chaînes. Par exemple, cela est utile lorsque vous souhaitez ajouter les données aux zones de texte d’une page web. Les paramètres régionaux ne sont pas pris en compte lors de la conversion des données. Les types de données sont basés sur les types de données XML Schema (XSD).