Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

XmlWriter classe

 

Date de publication : novembre 2016

Représente un writer qui fournit un moyen rapide, sans mise en cache et en avant de générer des flux de données ou des fichiers contenant des données XML.

Espace de noms:   System.Xml
Assembly:  System.Xml (dans System.Xml.dll)


public abstract class XmlWriter : IDisposable

NomDescription
System_CAPS_protmethodXmlWriter()

Initialise une nouvelle instance de la classe XmlWriter.

NomDescription
System_CAPS_pubpropertySettings

Obtient l'objet XmlWriterSettings permettant de créer cette instance de XmlWriter.

System_CAPS_pubpropertyWriteState

En cas de substitution dans une classe dérivée, obtient l'état du writer.

System_CAPS_pubpropertyXmlLang

En cas de substitution dans une classe dérivée, obtient l’actuel xml:lang étendue.

System_CAPS_pubpropertyXmlSpace

En cas de substitution dans une classe dérivée, obtient un XmlSpace représentant actuel xml:space étendue.

NomDescription
System_CAPS_pubmethodClose()

En cas de substitution dans une classe dérivée, ferme ce flux et le flux sous-jacent.

System_CAPS_pubmethodSystem_CAPS_staticCreate(Stream)

Crée un nouveau XmlWriter instance à l’aide du flux spécifié.

System_CAPS_pubmethodSystem_CAPS_staticCreate(Stream, XmlWriterSettings)

Crée un nouveau XmlWriter instance à l’aide du flux et XmlWriterSettings objet.

System_CAPS_pubmethodSystem_CAPS_staticCreate(String)

Crée un nouveau XmlWriter instance à l’aide du nom de fichier spécifié.

System_CAPS_pubmethodSystem_CAPS_staticCreate(String, XmlWriterSettings)

Crée un XmlWriter à l’aide du nom de fichier d’instance et XmlWriterSettings objet.

System_CAPS_pubmethodSystem_CAPS_staticCreate(StringBuilder)

Crée un nouveau XmlWriter instance à l’aide du StringBuilder.

System_CAPS_pubmethodSystem_CAPS_staticCreate(StringBuilder, XmlWriterSettings)

Crée un XmlWriter à l’aide de l’instance du StringBuilder et XmlWriterSettings objets.

System_CAPS_pubmethodSystem_CAPS_staticCreate(TextWriter)

Crée un nouveau XmlWriter instance à l’aide du TextWriter.

System_CAPS_pubmethodSystem_CAPS_staticCreate(TextWriter, XmlWriterSettings)

Crée un XmlWriter à l’aide de l’instance du TextWriter et XmlWriterSettings objets.

System_CAPS_pubmethodSystem_CAPS_staticCreate(XmlWriter)

Crée un XmlWriter à l’aide de l’élément spécifié de l’instance XmlWriter objet.

System_CAPS_pubmethodSystem_CAPS_staticCreate(XmlWriter, XmlWriterSettings)

Crée un XmlWriter à l’aide de l’élément spécifié de l’instance XmlWriter et XmlWriterSettings objets.

System_CAPS_pubmethodDispose()

Libère toutes les ressources utilisées par l'instance actuelle de la classe XmlWriter.

System_CAPS_protmethodDispose(Boolean)

Libère les ressources non managées utilisées par XmlWriter et libère éventuellement les ressources managées.

System_CAPS_pubmethodEquals(Object)

Détermine si l'objet spécifié est identique à l'objet actuel.(Hérité de Object.)

System_CAPS_protmethodFinalize()

Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de nettoyage avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.)

System_CAPS_pubmethodFlush()

En cas de substitution dans une classe dérivée, vide le contenu de la mémoire tampon dans les flux sous-jacents, puis vide le flux sous-jacent.

System_CAPS_pubmethodFlushAsync()

Vide de façon asynchrone le contenu de la mémoire tampon dans les flux sous-jacents, puis vide le flux sous-jacent.

System_CAPS_pubmethodGetHashCode()

Fait office de fonction de hachage par défaut.(Hérité de Object.)

System_CAPS_pubmethodGetType()

Obtient le Type de l'instance actuelle.(Hérité de Object.)

System_CAPS_pubmethodLookupPrefix(String)

En cas de substitution dans une classe dérivée, retourne le préfixe le plus proche défini dans la portée espace de noms actuelle pour l'URI de l'espace de noms.

System_CAPS_protmethodMemberwiseClone()

Crée une copie superficielle du Object actuel.(Hérité de Object.)

System_CAPS_pubmethodToString()

Retourne une chaîne qui représente l'objet actuel.(Hérité de Object.)

System_CAPS_pubmethodWriteAttributes(XmlReader, Boolean)

En cas de substitution dans une classe dérivée, écrit tous les attributs trouvés à la position actuelle dans le XmlReader.

System_CAPS_pubmethodWriteAttributesAsync(XmlReader, Boolean)

Écrit de façon asynchrone tous les attributs trouvés à la position actuelle dans le XmlReader.

System_CAPS_pubmethodWriteAttributeString(String, String)

En cas de substitution dans une classe dérivée, écrit l'attribut avec le nom local et la valeur spécifiés.

System_CAPS_pubmethodWriteAttributeString(String, String, String)

En cas de substitution dans une classe dérivée, écrit un attribut avec le nom local, l'URI de l'espace de noms et la valeur spécifiés.

System_CAPS_pubmethodWriteAttributeString(String, String, String, String)

En cas de substitution dans une classe dérivée, écrit l'attribut avec le préfixe, le nom local, l'URI de l'espace de noms et la valeur spécifiés.

System_CAPS_pubmethodWriteAttributeStringAsync(String, String, String, String)

Écrit de façon asynchrone l'attribut avec le préfixe, le nom local, l'URI de l'espace de noms et la valeur spécifiés.

System_CAPS_pubmethodWriteBase64(Byte[], Int32, Int32)

En cas de substitution dans une classe dérivée, code les octets binaires spécifiés au format Base64 et écrit le texte obtenu.

System_CAPS_pubmethodWriteBase64Async(Byte[], Int32, Int32)

Encode de façon asynchrone les octets binaires spécifiés au format base64 et écrit le texte résultant.

System_CAPS_pubmethodWriteBinHex(Byte[], Int32, Int32)

En cas de substitution dans une classe dérivée, encode les octets binaires spécifiés au BinHex et écrit le texte résultant.

System_CAPS_pubmethodWriteBinHexAsync(Byte[], Int32, Int32)

Encode les octets binaires spécifiés en tant que de façon asynchrone BinHex et écrit le texte résultant.

System_CAPS_pubmethodWriteCData(String)

En cas de substitution dans une classe dérivée, écrit un bloc <![CDATA[...]]> contenant le texte spécifié.

System_CAPS_pubmethodWriteCDataAsync(String)

Écrit de façon asynchrone un bloc <![CDATA[…]]> contenant le texte spécifié.

System_CAPS_pubmethodWriteCharEntity(Char)

En cas de substitution dans une classe dérivée, force la génération d'une entité de caractère pour la valeur du caractère Unicode spécifiée.

System_CAPS_pubmethodWriteCharEntityAsync(Char)

Force de façon asynchrone la génération d'une entité de caractère pour la valeur du caractère Unicode spécifiée.

System_CAPS_pubmethodWriteChars(Char[], Int32, Int32)

En cas de substitution dans une classe dérivée, écrit du texte mémoire tampon par mémoire tampon.

System_CAPS_pubmethodWriteCharsAsync(Char[], Int32, Int32)

Écrit de façon asynchrone du texte mémoire tampon par mémoire tampon.

System_CAPS_pubmethodWriteComment(String)

En cas de substitution dans une classe dérivée, écrit un commentaire <!--...--> contenant le texte spécifié.

System_CAPS_pubmethodWriteCommentAsync(String)

Écrit de façon asynchrone un commentaire <!--...--> contenant le texte spécifié.

System_CAPS_pubmethodWriteDocType(String, String, String, String)

En cas de substitution dans une classe dérivée, écrit la déclaration DOCTYPE avec le nom et les attributs facultatifs spécifiés.

System_CAPS_pubmethodWriteDocTypeAsync(String, String, String, String)

Écrit de façon asynchrone la déclaration DOCTYPE avec le nom et les attributs facultatifs spécifiés.

System_CAPS_pubmethodWriteElementString(String, String)

Écrit un élément avec la valeur et le nom locaux spécifiés.

System_CAPS_pubmethodWriteElementString(String, String, String)

Écrit un élément avec le nom local, l'URI de l'espace de noms et la valeur spécifiés.

System_CAPS_pubmethodWriteElementString(String, String, String, String)

Écrit un élément avec le préfixe spécifié, le nom local, l'URI de l'espace de noms et la valeur spécifiés.

System_CAPS_pubmethodWriteElementStringAsync(String, String, String, String)

Écrit de façon asynchrone un élément avec le préfixe spécifié, le nom local, l'URI de l'espace de noms et la valeur spécifiés.

System_CAPS_pubmethodWriteEndAttribute()

En cas de substitution dans une classe dérivée, ferme le précédent WriteStartAttribute appeler.

System_CAPS_protmethodWriteEndAttributeAsync()

Ferme de façon asynchrone le précédent WriteStartAttribute appeler.

System_CAPS_pubmethodWriteEndDocument()

En cas de substitution dans une classe dérivée, ferme les éléments ou attributs ouverts, et replace le writer à l'état Start.

System_CAPS_pubmethodWriteEndDocumentAsync()

Ferme de façon asynchrone les éléments ou attributs ouverts, et replace le writer à l'état Start.

System_CAPS_pubmethodWriteEndElement()

En cas de substitution dans une classe dérivée, ferme un élément et dépile la portée espace de noms correspondante.

System_CAPS_pubmethodWriteEndElementAsync()

Ferme de façon asynchrone un élément et exécute un pop sur la portée espace de noms correspondante.

System_CAPS_pubmethodWriteEntityRef(String)

En cas de substitution dans une classe dérivée, écrit une référence d’entité en tant que &name;.

System_CAPS_pubmethodWriteEntityRefAsync(String)

Écrit de façon asynchrone une référence d’entité en tant que &name;.

System_CAPS_pubmethodWriteFullEndElement()

En cas de substitution dans une classe dérivée, ferme un élément et dépile la portée espace de noms correspondante.

System_CAPS_pubmethodWriteFullEndElementAsync()

Ferme de façon asynchrone un élément et exécute un pop sur la portée espace de noms correspondante.

System_CAPS_pubmethodWriteName(String)

En cas de substitution dans une classe dérivée, écrit le nom spécifié, en vérifiant qu'il s'agit d'un nom valide conformément à la recommandation du W3C intitulée Extensible Markup Language (XML) 1.0 (http://www.w3.org/TR/1998/REC-xml-19980210#NT-Name).

System_CAPS_pubmethodWriteNameAsync(String)

Écrit de façon asynchrone le nom spécifié, en vérifiant qu'il s'agit d'un nom valide conformément à la recommandation du W3C intitulée Extensible Markup Language (XML) 1.0 (http://www.w3.org/TR/1998/REC-xml-19980210#NT-Name).

System_CAPS_pubmethodWriteNmToken(String)

En cas de substitution dans une classe dérivée, écrit le nom spécifié, en vérifiant qu'il s'agit d'un NmToken valide conformément à la recommandation du W3C intitulée Extensible Markup Language (XML) 1.0 (http://www.w3.org/TR/1998/REC-xml-19980210#NT-Name).

System_CAPS_pubmethodWriteNmTokenAsync(String)

Écrit de façon asynchrone le nom spécifié, en vérifiant qu'il s'agit d'un NmToken valide conformément à la recommandation du W3C intitulée Extensible Markup Language (XML) 1.0 (http://www.w3.org/TR/1998/REC-xml-19980210#NT-Name).

System_CAPS_pubmethodWriteNode(XmlReader, Boolean)

En cas de substitution dans une classe dérivée, copie tout le contenu du lecteur vers le writer, puis déplace le lecteur vers le début du frère suivant.

System_CAPS_pubmethodWriteNode(XPathNavigator, Boolean)

Copie tout de le XPathNavigator l’objet vers le writer. La position de la XPathNavigator reste inchangé.

System_CAPS_pubmethodWriteNodeAsync(XmlReader, Boolean)

Copie de façon asynchrone tout le contenu du lecteur vers le writer, puis déplace le lecteur vers le début du frère suivant.

System_CAPS_pubmethodWriteNodeAsync(XPathNavigator, Boolean)

Copie tous les éléments à partir de façon asynchrone le XPathNavigator objet vers le writer. La position de la XPathNavigator reste inchangé.

System_CAPS_pubmethodWriteProcessingInstruction(String, String)

En cas de substitution dans une classe dérivée, écrit une instruction de traitement avec un espace entre le nom et le texte comme suit : < ? nom texte ? >.

System_CAPS_pubmethodWriteProcessingInstructionAsync(String, String)

Écrit de façon asynchrone une instruction de traitement avec un espace entre le nom et le texte comme suit : < ? nom texte ? >.

System_CAPS_pubmethodWriteQualifiedName(String, String)

En cas de substitution dans une classe dérivée, écrit le nom qualifié de l'espace de noms. Cette méthode recherche le préfixe situé dans la portée de l'espace de noms spécifié.

System_CAPS_pubmethodWriteQualifiedNameAsync(String, String)

Écrit de façon asynchrone le nom qualifié de l'espace de noms. Cette méthode recherche le préfixe situé dans la portée de l'espace de noms spécifié.

System_CAPS_pubmethodWriteRaw(Char[], Int32, Int32)

En cas de substitution dans une classe dérivée, écrit manuellement un balisage brut à partir d'une mémoire tampon de caractères.

System_CAPS_pubmethodWriteRaw(String)

En cas de substitution dans une classe dérivée, écrit manuellement un balisage brut à partir d'une chaîne.

System_CAPS_pubmethodWriteRawAsync(Char[], Int32, Int32)

Écrit manuellement de façon asynchrone un balisage brut à partir d'une mémoire tampon de caractères.

System_CAPS_pubmethodWriteRawAsync(String)

Écrit de façon asynchrone un balisage brut à partir d'une chaîne.

System_CAPS_pubmethodWriteStartAttribute(String)

Écrit le début d'un attribut avec le nom local spécifié.

System_CAPS_pubmethodWriteStartAttribute(String, String)

Écrit le début d'un attribut avec le nom local et l'URI de l'espace de noms spécifiés.

System_CAPS_pubmethodWriteStartAttribute(String, String, String)

En cas de substitution dans une classe dérivée, écrit le début d'un attribut avec le préfixe, le nom local et l'URI de l'espace de noms spécifiés.

System_CAPS_protmethodWriteStartAttributeAsync(String, String, String)

Écrit de façon asynchrone le début d'un attribut avec le préfixe, le nom local et l'URI de l'espace de noms spécifiés.

System_CAPS_pubmethodWriteStartDocument()

En cas de substitution dans une classe dérivée, écrit la déclaration XML avec la version "1.0".

System_CAPS_pubmethodWriteStartDocument(Boolean)

En cas de substitution dans une classe dérivée, écrit la déclaration XML avec la version "1.0" et l'attribut autonome.

System_CAPS_pubmethodWriteStartDocumentAsync()

Écrit de façon asynchrone la déclaration XML avec la version « 1.0 ».

System_CAPS_pubmethodWriteStartDocumentAsync(Boolean)

Écrit de façon asynchrone la déclaration XML avec la version « 1.0 » et l'attribut autonome.

System_CAPS_pubmethodWriteStartElement(String)

En cas de substitution dans une classe dérivée, écrit une étiquette de début avec le nom local spécifié.

System_CAPS_pubmethodWriteStartElement(String, String)

En cas de substitution dans une classe dérivée, écrit l’étiquette de début spécifiée et l’associe à l’espace de noms indiqué.

System_CAPS_pubmethodWriteStartElement(String, String, String)

En cas de substitution dans une classe dérivée, écrit l’étiquette de début spécifiée, puis l’associe à l’espace de noms et au préfixe indiqués.

System_CAPS_pubmethodWriteStartElementAsync(String, String, String)

Écrit de façon asynchrone l’étiquette de début indiquée et l’associe à l’espace de noms et au préfixe spécifiés.

System_CAPS_pubmethodWriteString(String)

En cas de substitution dans une classe dérivée, écrit le texte spécifié.

System_CAPS_pubmethodWriteStringAsync(String)

Écrit de façon asynchrone le texte spécifié.

System_CAPS_pubmethodWriteSurrogateCharEntity(Char, Char)

En cas de substitution dans une classe dérivée, génère et écrit l'entité de caractère de substitution correspondant à la paire de caractères de substitution.

System_CAPS_pubmethodWriteSurrogateCharEntityAsync(Char, Char)

Génère de façon asynchrone et écrit l'entité de caractère de substitution correspondant à la paire de caractères de substitution.

System_CAPS_pubmethodWriteValue(Boolean)

Écrit une valeur Boolean.

System_CAPS_pubmethodWriteValue(DateTime)

Écrit une valeur DateTime.

System_CAPS_pubmethodWriteValue(DateTimeOffset)

Écrit une valeur DateTimeOffset.

System_CAPS_pubmethodWriteValue(Decimal)

Écrit une valeur Decimal.

System_CAPS_pubmethodWriteValue(Double)

Écrit une valeur Double.

System_CAPS_pubmethodWriteValue(Int32)

Écrit une valeur Int32.

System_CAPS_pubmethodWriteValue(Int64)

Écrit une valeur Int64.

System_CAPS_pubmethodWriteValue(Object)

Écrit la valeur de l'objet.

System_CAPS_pubmethodWriteValue(Single)

Écrit un nombre à virgule flottante simple précision.

System_CAPS_pubmethodWriteValue(String)

Écrit une valeur String.

System_CAPS_pubmethodWriteWhitespace(String)

En cas de substitution dans une classe dérivée, écrit l'espace blanc spécifié.

System_CAPS_pubmethodWriteWhitespaceAsync(String)

Écrit de façon asynchrone l'espace blanc spécifié.

La XmlWriter classe écrit des données XML dans un flux, un fichier, un lecteur de texte ou une chaîne. Il prend en charge le W3C Extensible Markup Language (XML) 1.0 (fourth edition) et Namespaces in XML 1.0 (third edition) recommandations.

Les membres de la XmlWriter classe permettent de :

  • vérifier que les caractères sont des caractères XML reconnus et que les noms d'éléments et d'attributs sont des noms XML valides ;

  • vérifier que le document XML est correctement construit ;

  • Coder les octets binaires en Base64 ou BinHex et écrire le texte résultant.

  • Passer des valeurs à l’aide de types common language runtime plutôt que des chaînes, afin d’éviter de devoir effectuer manuellement des conversions de valeurs.

  • écrire plusieurs documents dans un même flux de sortie ;

  • écrire des noms, des noms qualifiés et des jetons de nom valides.

Dans cette section :

Création d’un writer XML
Spécification du format de sortie
Conformité des données
Écriture d’éléments
Écriture des attributs
Gestion des espaces de noms
Écriture de données typées
Fermeture de l’enregistreur XML
Programmation asynchrone
Considérations relatives à la sécurité

Pour créer un XmlWriter d’instance, utilisez la XmlWriter.Create méthode. Pour spécifier l’ensemble de fonctionnalités à activer sur l’enregistreur XML, passez un XmlWriterSettings à le Create (méthode). Sinon, les paramètres par défaut sont utilisées. Consultez le Create pages pour plus d’informations de référence.

La XmlWriterSettings classe comprend plusieurs propriétés qui contrôlent la façon dont XmlWriter sortie est mise en forme :

Property

Description

Encoding

Spécifie l'encodage de texte à utiliser. La valeur par défaut est Encoding.UTF8.

Indent

Indique si des éléments doivent être mis en retrait. La valeur par défaut est false (aucune mise en retrait).

IndentChars

Spécifie la chaîne de caractères à utiliser pour la mise en retrait. Par défaut, il s'agit de deux espaces.

NewLineChars

Spécifie la chaîne de caractères à utiliser pour les sauts de ligne. La valeur par défaut est \r\n (retour chariot, saut de ligne).

NewLineHandling

Spécifie comment gérer les caractères de saut de ligne.

NewLineOnAttributes

Indique si des attributs doivent être écrits sur une nouvelle ligne. La propriété Indent doit être définie sur true lorsque vous utilisez cette propriété. La valeur par défaut est false.

OmitXmlDeclaration

Indique si une déclaration XML doit être écrite. La valeur par défaut est false.

Les propriétés Indent et IndentChars contrôlent la taille minime de l'espace blanc formaté. Par exemple, pour mettre en retrait des nœuds d’élément :

XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.IndentChars = "\t";
XmlWriter writer = XmlWriter.Create("books.xml", settings);

Utilisez le NewLineOnAttributes pour écrire chaque attribut sur une nouvelle ligne avec un niveau supplémentaire de mise en retrait :

XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.NewLineOnAttributes = true;
XmlWriter writer = XmlWriter.Create("books.xml", settings);

Un enregistreur XML utilise deux propriétés de la XmlWriterSettings classe pour vérifier la conformité des données :

  • Le CheckCharacters propriété fait en sorte que le writer XML pour vérifier les caractères et de lever une XmlException exception si les caractères sont en dehors de la plage autorisée, telle que définie par le W3C.

  • Le ConformanceLevel propriété configure l’enregistreur XML pour vérifier que le flux de données en cours d’écriture est compatible avec les règles pour un document XML 1.0 correctement construit ou un fragment de document, tel que défini par le W3C. Les niveaux de trois conformité sont décrits dans le tableau suivant. La valeur par défaut est Document. Pour plus d’informations, consultez le XmlWriterSettings.ConformanceLevel propriété et System.Xml.ConformanceLevel énumération.

    Niveau

    Description

    Document

    La sortie XML est conforme aux règles d’un document XML 1.0 correctement construit et peut être traitée par tout processeur conforme.

    Fragment

    La sortie XML est conforme aux règles d’un fragment de document XML 1.0 correctement construit.

    Auto

    Le rédacteur XML détermine le niveau de conformation vérification pour appliquer (document ou un fragment) basé sur les données entrantes.

Vous pouvez utiliser les éléments suivants XmlWriter méthodes pour écrire des nœuds d’élément. Pour obtenir des exemples, consultez les méthodes répertoriées.

utilisez

Vers

WriteElementString

Écrire un nœud d’élément entier, y compris une valeur de chaîne.

WriteStartElement

Pour écrire une valeur d’élément à l’aide de plusieurs appels de méthode. Par exemple, vous pouvez appeler WriteValue pour écrire une valeur typée, WriteCharEntity pour écrire une entité de caractères, WriteAttributeString pour écrire un attribut ou vous pouvez écrire un élément enfant. Il s’agit d’une version plus sophistiquée de la WriteElementString méthode.

Pour fermer l’élément, vous appelez le WriteEndElement ou WriteFullEndElement (méthode).

WriteNode

Pour copier un nœud d’élément trouvé à la position actuelle d’un XmlReader ou XPathNavigator objet. Lorsqu'elle est appelée, elle copie tout l'objet source vers l'instance de l'objet XmlWriter.

Vous pouvez utiliser les éléments suivants XmlWriter méthodes pour écrire des attributs sur les nœuds d’élément. Ces méthodes peuvent également être utilisées pour créer des déclarations d’espace de noms sur un élément, comme indiqué dans la section suivante.

utilisez

Vers

WriteAttributeString

Pour écrire un nœud d’attribut entier, y compris une valeur de chaîne.

WriteStartAttribute

Pour écrire la valeur d’attribut à l’aide de plusieurs appels de méthode. Par exemple, vous pouvez appeler WriteValue pour écrire une valeur typée. Il s’agit d’une version plus sophistiquée de la WriteElementString méthode.

Pour fermer l’élément, vous appelez le WriteEndAttribute (méthode).

WriteAttributes

Pour copier tous les attributs trouvés à la position actuelle d’un XmlReader objet. Les attributs qui sont écrits varient selon le type de nœud que le lecteur est positionné sur :

  • Pour un nœud d’attribut, elle écrit l’attribut actuel, puis le reste des attributs jusqu'à la balise de fermeture de l’élément.

  • Pour un nœud d’élément, il écrit tous les attributs contenus dans l’élément.

  • Pour un nœud de déclaration XML, il écrit tous les attributs de la déclaration.

  • Pour tous les autres types de nœud, la méthode lève une exception.

Les espaces de noms sont utilisés pour qualifier des noms d'attributs et d'éléments dans un document XML. Les préfixes Namespace associent des éléments et attributs des espaces de noms, qui sont associés à son tour des références URI. Les espaces de noms garantissent l'unicité des noms d'attributs et d'éléments dans un document XML.

Le XmlWriter gère un espace de noms qui correspond à tous les espaces de noms définis dans la portée espace de noms actuel. Lors de l'écriture des éléments et attributs, vous pouvez utiliser les espaces de noms comme suit :

  • Déclarer des espaces de noms manuellement à l’aide de la WriteAttributeString méthode. Cela peut s'avérer utile si vous savez comment optimiser le nombre de déclarations d'espaces de noms. Pour obtenir un exemple, consultez la WriteAttributeString(String, String, String, String) méthode.

  • substituer la déclaration d'un nouvel espace de noms à celle de l'espace de noms en cours ; Dans le code suivant, la WriteAttributeString méthode modifie l’URI d’espace de noms pour le "x" à partir du préfixe "123" à "abc".

    writer.WriteStartElement("x", "root", "123");
    writer.WriteStartElement("item");
    writer.WriteAttributeString("xmlns", "x", null, "abc");
    writer.WriteEndElement();
    writer.WriteEndElement();
    

    Le code génère la chaîne XML suivante :

    <x:root xmlns:x="123">
      <item xmlns:x="abc" />
    </x:root>
    
  • spécifier un préfixe d'espace de noms lors de l'écriture des attributs ou éléments. La plupart des méthodes utilisées pour écrire des éléments et attributs permettent de le faire. Par exemple, le WriteStartElement(String, String, String) méthode écrit une balise de début et l’associe à un espace de noms spécifié et un préfixe.

Le WriteValue méthode accepte un objet du common language runtime (CLR), convertit la valeur d’entrée en sa représentation sous forme de chaîne en fonction des règles de conversion du type de données XML schema definition language (XSD) et écrit à l’aide de la WriteString méthode. C’est plus facile à l’aide des méthodes dans la XmlConvert classe afin de convertir les données typées pour une valeur de chaîne avant de l’écrire.

Lors de l’écriture de texte, la valeur typée est sérialisée en texte à l’aide de la XmlConvert des règles pour ce type de schéma.

Pour les types de données XSD par défaut qui correspondent aux types CLR, consultez la WriteValue méthode.

Le XmlWriter peut également être utilisé pour é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 le magasin de données comporte des informations de schéma disponibles, la WriteValue méthode lève une exception si vous essayez de convertir en un type qui n’est pas autorisé. Si le magasin de données ne dispose pas d’informations de schéma disponibles, la WriteValue méthode traite toutes les valeurs comme un xsd:anySimpleType type.

Lorsque vous utilisez XmlWriter méthodes de sortie XML, les éléments et les attributs ne sont pas écrits jusqu'à ce que vous appeliez la Close méthode. Par exemple, si vous utilisez XmlWriter pour remplir un XmlDocument de l’objet, vous ne pourrez pas voir les éléments écrites et les attributs dans le document cible jusqu'à ce que vous fermiez la XmlWriter instance.

La plupart de la XmlWriter méthodes ont des équivalents asynchrones qui ont « Async » à la fin de leur nom de méthode. Par exemple, l’équivalent asynchrone de WriteAttributeString est WriteAttributeStringAsync.

Pour les WriteValue (méthode), qui n’ont un équivalent asynchrone, convertir la valeur de retour en chaîne et utiliser la WriteStringAsync méthode à la place.

Considérez les éléments suivants lorsque vous travaillez avec la XmlWriter classe :

  • Les exceptions levées par le XmlWriter peut divulguer des informations de chemin d’accès que vous ne souhaitez pas propagées dans l’application. Votre application doit intercepter les exceptions et les traiter correctement.

  • XmlWriter ne valide pas les données qui sont transmises à la WriteDocType ou WriteRaw (méthode). Vous ne devez pas passer des données arbitraires à ces méthodes.

L’exemple de code suivant montre comment utiliser l’API asynchrone pour générer du code XML.

async Task TestWriter(Stream stream) 
{
    XmlWriterSettings settings = new XmlWriterSettings();
    settings.Async = true;

    using (XmlWriter writer = XmlWriter.Create(stream, settings)) {
        await writer.WriteStartElementAsync("pf", "root", "http://ns");
        await writer.WriteStartElementAsync(null, "sub", null);
        await writer.WriteAttributeStringAsync(null, "att", null, "val");
        await writer.WriteStringAsync("text");
        await writer.WriteEndElementAsync();
        await writer.WriteProcessingInstructionAsync("pName", "pValue");
        await writer.WriteCommentAsync("cValue");
        await writer.WriteCDataAsync("cdata value");
        await writer.WriteEndElementAsync();
        await writer.FlushAsync();
    }
}

Plateforme Windows universelle
Disponible depuis 8
.NET Framework
Disponible depuis 1.1
Bibliothèque de classes portable
Pris en charge dans : plateformes .NET portables
Silverlight
Disponible depuis 2.0
Silverlight pour Windows Phone
Disponible depuis 7.0
Windows Phone
Disponible depuis 8.1

Tous les membres statiques publics ( Shared en Visual Basic) de ce type sont thread-safe. Les membres d’instance n’ont pas la garantie d’être thread-safe.

Retour au début
Afficher: