Partager via


Écriture de données typées

La classe XmlWriter permet d'écrire des données typées. La méthode WriteValue accepte les valeurs CLR (Common Language Runtime) de type simple. Ceci s'avère utile lorsqu'il s'agit de traiter des types simples CLR et une instance de l'objet XmlWriter. Vous pouvez appeler la méthode WriteValue pour écrire la valeur typée au lieu d'utiliser les méthodes de la classe XmlConvert pour convertir des données typées en une valeur de chaîne avant de l'écrire.

Écriture de valeurs typées

La méthode WriteValue utilise un objet CLR et convertit la valeur d'entrée au type de sortie souhaité à l'aide des règles de conversion de type de données de langage XSD (XML Schema Definition). Si l'objet CLR est un type de liste, comme IEnumerable, IList ou ICollection, il est traité comme un tableau du type de valeur.

Lors d'un appel à la méthode WriteValue, l'objet XmlWriter convertit la valeur en une représentation de chaîne en fonction des règles de type de données XSD (XML Schema Definition) et l'écrit à l'aide de la méthode WriteString.

Écriture sous la forme de texte

En cas d'appel à la méthode WriteValue, la valeur typée est sérialisée en texte à l'aide des règles XmlConvert adaptées à ce type de schéma.

Type de CLR

Type de données XSD (XML Schema Definition) par défaut

System.Boolean

xsd:boolean

System.Byte**

xsd:integer

System.Byte[]

xsd:base64Binary

System.Char**

xsd:string

System.DateTime

xsd:dateTime

System.Decimal

xsd:decimal

System.Double

xsd:double

System.Int16**

xsd:integer

System.Int32

xsd:integer

System.Int64

xsd:integer

System.Single

xsd:float

System.String

xsd:string

System.IO.TextReader

xsd:string

System.IO.BinaryReader

xsd:base64Binary

**Ces types ne sont pas conformes CLS. Ils n'ont pas de méthode correspondante pour la classe XmlReader.

RemarqueRemarque

Si la méthode WriteValue est appelée plusieurs fois de suite, les valeurs ne sont pas délimitées par un espace.Vous devez appeler la méthode WriteWhitespace entre les appels à la méthode WriteValue pour insérer un espace blanc.

Écriture dans un magasin de données XML

L'objet XmlWriter permet d'écrire dans un magasin de données XML. Par exemple, la classe XPathNavigator peut créer un objet XmlWriter pour créer des nœuds pour un objet XmlDocument.

Si des informations de schéma sont disponibles pour un magasin de données, la méthode WriteValue lève une exception si l'appel à la méthode WriteValue essaie de convertir en un type qui n'est pas autorisé.

Si aucune information de schéma n'est disponible pour un magasin de données, la méthode WriteValue traite toutes les valeurs comme un type xsd:anySimpleType.

Exemple

L'exemple suivant augmente le prix du livre de 15 % avant de l'écrire. L'information de schéma provient du lecteur, qui est un objet XmlReader de validation.

reader.ReadToDescendant("price")
writer.WriteStartElement("price")
writer.WriteValue(reader.ReadElementContentAsDouble() * 1.15)
writer.WriteEndElement()
reader.ReadToDescendant("price");
writer.WriteStartElement("price");
writer.WriteValue((reader.ReadElementContentAsDouble()) * 1.15);
writer.WriteEndElement();

Voir aussi

Autres ressources

Écriture de XML avec XmlWriter

Prise en charge du type dans les classes System.Xml