Questo articolo è stato tradotto automaticamente. Per visualizzare l'articolo in inglese, selezionare la casella di controllo Inglese. È possibile anche visualizzare il testo inglese in una finestra popup posizionando il puntatore del mouse sopra il testo.
Traduzione
Inglese

Classe XmlWriter

 

Data di pubblicazione: ottobre 2016

Rappresenta un writer che fornisce un modo veloce, non in cache e di tipo forward-only per generare flussi o i file contenenti dati XML.

Spazio dei nomi:   System.Xml
Assembly:  System.Xml (in System.Xml.dll)


public abstract class XmlWriter : IDisposable

NomeDescrizione
System_CAPS_protmethodXmlWriter()

Inizializza una nuova istanza della classe XmlWriter.

NomeDescrizione
System_CAPS_pubpropertySettings

Ottiene l'oggetto XmlWriterSettings usato per creare questa istanza di XmlWriter.

System_CAPS_pubpropertyWriteState

Quando ne viene eseguito l'override in una classe derivata, ottiene lo stato del writer.

System_CAPS_pubpropertyXmlLang

Quando ne viene eseguito l'override in una classe derivata, ottiene l'ambito xml:lang corrente.

System_CAPS_pubpropertyXmlSpace

Quando sottoposto a override in una classe derivata, ottiene un XmlSpace che rappresenta l'oggetto xml:space ambito.

NomeDescrizione
System_CAPS_pubmethodClose()

Quando ne viene eseguito l'override in una classe derivata, chiude questo flusso e quello sottostante.

System_CAPS_pubmethodSystem_CAPS_staticCreate(Stream)

Crea un nuovo XmlWriter istanza utilizzando il flusso specificato.

System_CAPS_pubmethodSystem_CAPS_staticCreate(Stream, XmlWriterSettings)

Crea un nuovo XmlWriter istanza utilizzando il flusso e XmlWriterSettings oggetto.

System_CAPS_pubmethodSystem_CAPS_staticCreate(String)

Crea un nuovo XmlWriter istanza utilizzando il nome file specificato.

System_CAPS_pubmethodSystem_CAPS_staticCreate(String, XmlWriterSettings)

Crea un nuovo XmlWriter istanza utilizzando il nome del file e XmlWriterSettings oggetto.

System_CAPS_pubmethodSystem_CAPS_staticCreate(StringBuilder)

Crea un nuovo XmlWriter istanza utilizzando l'oggetto specificato StringBuilder.

System_CAPS_pubmethodSystem_CAPS_staticCreate(StringBuilder, XmlWriterSettings)

Crea un nuovo XmlWriter istanza utilizzando il StringBuilder e XmlWriterSettings oggetti.

System_CAPS_pubmethodSystem_CAPS_staticCreate(TextWriter)

Crea un nuovo XmlWriter istanza utilizzando l'oggetto specificato TextWriter.

System_CAPS_pubmethodSystem_CAPS_staticCreate(TextWriter, XmlWriterSettings)

Crea un nuovo XmlWriter istanza utilizzando il TextWriter e XmlWriterSettings oggetti.

System_CAPS_pubmethodSystem_CAPS_staticCreate(XmlWriter)

Crea un nuovo XmlWriter istanza utilizzando l'oggetto specificato XmlWriter oggetto.

System_CAPS_pubmethodSystem_CAPS_staticCreate(XmlWriter, XmlWriterSettings)

Crea un nuovo XmlWriter istanza utilizzando l'oggetto specificato XmlWriter e XmlWriterSettings oggetti.

System_CAPS_pubmethodDispose()

Rilascia tutte le risorse usate dall'istanza corrente della classe XmlWriter.

System_CAPS_protmethodDispose(Boolean)

Rilascia le risorse non gestite usate da XmlWriter e, facoltativamente, le risorse gestite.

System_CAPS_pubmethodEquals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.(Ereditato da Object.)

System_CAPS_protmethodFinalize()

Consente a un oggetto di effettuare un tentativo di liberare risorse ed eseguire altre operazioni di pulizia prima che venga recuperato da Garbage Collection.(Ereditato da Object.)

System_CAPS_pubmethodFlush()

Quando ne viene eseguito l'override in una classe derivata, scarica il contenuto del buffer nei flussi sottostanti e scarica anche il flusso sottostante.

System_CAPS_pubmethodFlushAsync()

Scarica in modo asincrono il contenuto del buffer nei flussi sottostanti e scarica anche il flusso sottostante.

System_CAPS_pubmethodGetHashCode()

Funge da funzione hash predefinita.(Ereditato da Object.)

System_CAPS_pubmethodGetType()

Ottiene l'oggetto Type dell'istanza corrente.(Ereditato da Object.)

System_CAPS_pubmethodLookupPrefix(String)

Quando ne viene eseguito l'override in una classe derivata, restituisce il prefisso più vicino definito nell'ambito dello spazio dei nomi corrente per l'URI dello spazio dei nomi.

System_CAPS_protmethodMemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.(Ereditato da Object.)

System_CAPS_pubmethodToString()

Restituisce una stringa che rappresenta l'oggetto corrente.(Ereditato da Object.)

System_CAPS_pubmethodWriteAttributes(XmlReader, Boolean)

Quando sottoposto a override in una classe derivata, scrive tutti gli attributi rilevati nella posizione corrente all'interno di XmlReader.

System_CAPS_pubmethodWriteAttributesAsync(XmlReader, Boolean)

Scrive in modo asincrono tutti gli attributi rilevati nella posizione corrente all'interno di XmlReader.

System_CAPS_pubmethodWriteAttributeString(String, String)

Quando ne viene eseguito l'override in una classe derivata, scrive l'attributo con il nome locale e il valore specificati.

System_CAPS_pubmethodWriteAttributeString(String, String, String)

Quando ne viene eseguito l'override in una classe derivata, scrive un attributo con il nome locale, l'URI dello spazio dei nomi e il valore specificati.

System_CAPS_pubmethodWriteAttributeString(String, String, String, String)

Quando ne viene eseguito l'override in una classe derivata, scrive l'attributo con il prefisso, il nome locale, l'URI dello spazio dei nomi e il valore specificati.

System_CAPS_pubmethodWriteAttributeStringAsync(String, String, String, String)

Scrive in modo asincrono un attributo con il prefisso, il nome locale, l'URI dello spazio dei nomi e il valore specificati.

System_CAPS_pubmethodWriteBase64(Byte[], Int32, Int32)

Quando ne viene eseguito l'override in una classe derivata, codifica i byte binari specificati come valori Base64 e scrive il testo risultante.

System_CAPS_pubmethodWriteBase64Async(Byte[], Int32, Int32)

Codifica in modo asincrono i byte binari specificati come valori Base64 e scrive il testo risultante.

System_CAPS_pubmethodWriteBinHex(Byte[], Int32, Int32)

Quando sottoposto a override in una classe derivata, codifica i byte binari specificati come BinHex e scrive il testo risulta.

System_CAPS_pubmethodWriteBinHexAsync(Byte[], Int32, Int32)

Codifica in modo asincrono i byte binari specificati come BinHex e scrive il testo risulta.

System_CAPS_pubmethodWriteCData(String)

Quando ne viene eseguito l'override in una classe derivata, scrive un blocco <![CDATA[...]]> che contiene il testo specificato.

System_CAPS_pubmethodWriteCDataAsync(String)

Scrive in modo asincrono un blocco <![CDATA[...]]> che contiene il testo specificato.

System_CAPS_pubmethodWriteCharEntity(Char)

Quando ne viene eseguito l'override in una classe derivata, forza la generazione di un'entità carattere per il valore del carattere Unicode specificato.

System_CAPS_pubmethodWriteCharEntityAsync(Char)

Forza in modo asincrono la generazione di un'entità carattere per il valore del carattere Unicode specificato.

System_CAPS_pubmethodWriteChars(Char[], Int32, Int32)

Quando ne viene eseguito l'override in una classe derivata, scrive il testo in un buffer alla volta.

System_CAPS_pubmethodWriteCharsAsync(Char[], Int32, Int32)

Scrive in modo asincrono il testo in un buffer alla volta.

System_CAPS_pubmethodWriteComment(String)

Quando ne viene eseguito l'override in una classe derivata, scrive un commento <!--...--> che contiene il testo specificato.

System_CAPS_pubmethodWriteCommentAsync(String)

Scrive in modo asincrono un commento <!--...--> che contiene il testo specificato.

System_CAPS_pubmethodWriteDocType(String, String, String, String)

Quando ne viene eseguito l'override in una classe derivata, scrive la dichiarazione DOCTYPE con il nome e gli attributi facoltativi specificati.

System_CAPS_pubmethodWriteDocTypeAsync(String, String, String, String)

Scrive in modo asincrono la dichiarazione DOCTYPE con il nome e gli attributi facoltativi specificati.

System_CAPS_pubmethodWriteElementString(String, String)

Scrive un elemento con il nome locale e il valore specificati.

System_CAPS_pubmethodWriteElementString(String, String, String)

Scrive un elemento con il nome locale, l'URI dello spazio dei nomi e il valore specificati.

System_CAPS_pubmethodWriteElementString(String, String, String, String)

Scrive un elemento con il prefisso, il nome locale, l'URI dello spazio dei nomi e il valore specificati.

System_CAPS_pubmethodWriteElementStringAsync(String, String, String, String)

Scrive in modo asincrono un elemento con il prefisso, il nome locale, l'URI dello spazio dei nomi e il valore specificati.

System_CAPS_pubmethodWriteEndAttribute()

Quando sottoposto a override in una classe derivata, chiude il precedente WriteStartAttribute chiamare.

System_CAPS_protmethodWriteEndAttributeAsync()

Chiude in modo asincrono il precedente WriteStartAttribute chiamare.

System_CAPS_pubmethodWriteEndDocument()

Quando se ne esegue l'override in una classe derivata, chiude qualsiasi elemento o attributo aperto e riporta il writer allo stato di avvio.

System_CAPS_pubmethodWriteEndDocumentAsync()

Chiude in modo asincrono qualsiasi elemento o attributo aperto e riporta il writer allo stato di avvio.

System_CAPS_pubmethodWriteEndElement()

Quando ne viene eseguito l'override in una classe derivata, chiude un elemento e visualizza l'ambito dello spazio dei nomi corrispondente.

System_CAPS_pubmethodWriteEndElementAsync()

Chiude in modo asincrono un elemento e visualizza l'ambito dello spazio dei nomi corrispondente.

System_CAPS_pubmethodWriteEntityRef(String)

Quando sottoposto a override in una classe derivata, scrive un riferimento all'entità come &name;.

System_CAPS_pubmethodWriteEntityRefAsync(String)

Scrive in modo asincrono un riferimento all'entità come &name;.

System_CAPS_pubmethodWriteFullEndElement()

Quando ne viene eseguito l'override in una classe derivata, chiude un elemento e visualizza l'ambito dello spazio dei nomi corrispondente.

System_CAPS_pubmethodWriteFullEndElementAsync()

Chiude in modo asincrono un elemento e visualizza l'ambito dello spazio dei nomi corrispondente.

System_CAPS_pubmethodWriteName(String)

Quando ne viene eseguito l'override in una classe derivata, inserisce il nome specificato, verificando che si tratti di un nome valido in base alla raccomandazione W3C XML 1.0, disponibile all'indirizzo http://www.w3.org/TR/1998/REC-xml-19980210#NT-Name.

System_CAPS_pubmethodWriteNameAsync(String)

Inserisce in modo asincrono il nome specificato, verificando che si tratti di un nome valido in base alla raccomandazione W3C XML 1.0, disponibile all'indirizzo http://www.w3.org/TR/1998/REC-xml-19980210#NT-Name.

System_CAPS_pubmethodWriteNmToken(String)

Quando ne viene eseguito l'override in una classe derivata, inserisce il nome specificato, verificando che si tratti di un oggetto NmToken valido in base alla raccomandazione W3C XML 1.0, disponibile all'indirizzo http://www.w3.org/TR/1998/REC-xml-19980210#NT-Name.

System_CAPS_pubmethodWriteNmTokenAsync(String)

Inserisce in modo asincrono il nome specificato, verificando che si tratti di un NmToken valido in base alla raccomandazione W3C XML 1.0, disponibile all'indirizzo http://www.w3.org/TR/1998/REC-xml-19980210#NT-Name.

System_CAPS_pubmethodWriteNode(XmlReader, Boolean)

Quando ne viene eseguito l'override in una classe derivata, copia tutto il contenuto del lettore nel writer e sposta il lettore all'inizio del successivo elemento di pari livello.

System_CAPS_pubmethodWriteNode(XPathNavigator, Boolean)

Copia tutti gli elementi dal XPathNavigator oggetto per il writer. La posizione del XPathNavigator rimane invariato.

System_CAPS_pubmethodWriteNodeAsync(XmlReader, Boolean)

Copia in modo asincrono tutto il contenuto del lettore nel writer e sposta il lettore sul successivo elemento di pari livello.

System_CAPS_pubmethodWriteNodeAsync(XPathNavigator, Boolean)

Copia tutti gli elementi da in modo asincrono il XPathNavigator oggetto per il writer. La posizione del XPathNavigator rimane invariato.

System_CAPS_pubmethodWriteProcessingInstruction(String, String)

Quando sottoposto a override in una classe derivata, scrive un'istruzione di elaborazione con uno spazio tra il nome e il testo come segue: <? nome testo? >.

System_CAPS_pubmethodWriteProcessingInstructionAsync(String, String)

Scrive in modo asincrono un'istruzione di elaborazione con uno spazio tra il nome e il testo nel modo seguente: <? nome testo? >.

System_CAPS_pubmethodWriteQualifiedName(String, String)

Quando ne viene eseguito l'override in una classe derivata, scrive il nome completo dello spazio dei nomi. Questo metodo esegue la ricerca del prefisso incluso nell'ambito dello spazio dei nomi specificato.

System_CAPS_pubmethodWriteQualifiedNameAsync(String, String)

Scrive in modo asincrono il nome completo dello spazio dei nomi. Questo metodo esegue la ricerca del prefisso incluso nell'ambito dello spazio dei nomi specificato.

System_CAPS_pubmethodWriteRaw(Char[], Int32, Int32)

Quando ne viene eseguito l'override in una classe derivata, scrive manualmente markup non elaborato in base a un buffer di caratteri.

System_CAPS_pubmethodWriteRaw(String)

Quando ne viene eseguito l'override in una classe derivata, scrive manualmente markup non elaborato in base a una stringa.

System_CAPS_pubmethodWriteRawAsync(Char[], Int32, Int32)

Scrive manualmente in modo asincrono markup non elaborato in base a un buffer di caratteri.

System_CAPS_pubmethodWriteRawAsync(String)

Scrive manualmente in modo asincrono markup non elaborato in base a una stringa.

System_CAPS_pubmethodWriteStartAttribute(String)

Scrive l'inizio di un attributo con il nome locale specificato.

System_CAPS_pubmethodWriteStartAttribute(String, String)

Scrive l'inizio di un attributo con il nome locale e l'URI dello spazio dei nomi specificati.

System_CAPS_pubmethodWriteStartAttribute(String, String, String)

Quando ne viene eseguito l'override in una classe derivata, scrive l'inizio di un attributo con il prefisso, il nome locale e l'URI dello spazio dei nomi specificati.

System_CAPS_protmethodWriteStartAttributeAsync(String, String, String)

Scrive in modo asincrono l'inizio di un attributo con il prefisso, il nome locale e l'URI dello spazio dei nomi specificati.

System_CAPS_pubmethodWriteStartDocument()

Quando ne viene eseguito l'override in una classe derivata, scrive la dichiarazione XML in base alla versione "1.0".

System_CAPS_pubmethodWriteStartDocument(Boolean)

Quando ne viene eseguito l'override in una classe derivata, scrive la dichiarazione XML in base alla versione "1.0" e all'attributo standalone.

System_CAPS_pubmethodWriteStartDocumentAsync()

Scrive in modo asincrono la dichiarazione XML con la versione "1.0".

System_CAPS_pubmethodWriteStartDocumentAsync(Boolean)

Scrive in modo asincrono la dichiarazione XML con la versione "1.0" e l'attributo standalone.

System_CAPS_pubmethodWriteStartElement(String)

Quando ne viene eseguito l'override in una classe derivata, scrive un tag di inizio con il nome locale specificato.

System_CAPS_pubmethodWriteStartElement(String, String)

Quando ne viene eseguito l'override in una classe derivata, scrive il tag di inizio specificato e lo associa allo spazio dei nomi indicato.

System_CAPS_pubmethodWriteStartElement(String, String, String)

Quando ne viene eseguito l'override in una classe derivata, scrive il tag di inizio specificato e lo associa allo spazio dei nomi e al prefisso specificati.

System_CAPS_pubmethodWriteStartElementAsync(String, String, String)

Scrive in modo asincrono il tag di inizio specificato e lo associa allo spazio dei nomi e al prefisso specificati.

System_CAPS_pubmethodWriteString(String)

Quando ne viene eseguito l'override in una classe derivata, scrive il contenuto di testo specificato.

System_CAPS_pubmethodWriteStringAsync(String)

Scrive in modo asincrono il contenuto di testo specificato.

System_CAPS_pubmethodWriteSurrogateCharEntity(Char, Char)

Quando ne viene eseguito l'override in una classe derivata, genera e scrive l'entità carattere surrogata per la coppia di caratteri surrogati.

System_CAPS_pubmethodWriteSurrogateCharEntityAsync(Char, Char)

Genera in modo asincrono e scrive l'entità carattere surrogata per la coppia di caratteri surrogati.

System_CAPS_pubmethodWriteValue(Boolean)

Scrive un valore Boolean.

System_CAPS_pubmethodWriteValue(DateTime)

Scrive un valore DateTime.

System_CAPS_pubmethodWriteValue(DateTimeOffset)

Scrive un valore DateTimeOffset.

System_CAPS_pubmethodWriteValue(Decimal)

Scrive un valore Decimal.

System_CAPS_pubmethodWriteValue(Double)

Scrive un valore Double.

System_CAPS_pubmethodWriteValue(Int32)

Scrive un valore Int32.

System_CAPS_pubmethodWriteValue(Int64)

Scrive un valore Int64.

System_CAPS_pubmethodWriteValue(Object)

Scrive il valore dell'oggetto.

System_CAPS_pubmethodWriteValue(Single)

Scrive un numero a virgola mobile e precisione singola.

System_CAPS_pubmethodWriteValue(String)

Scrive un valore String.

System_CAPS_pubmethodWriteWhitespace(String)

Quando ne viene eseguito l'override in una classe derivata, scrive lo spazio specificato.

System_CAPS_pubmethodWriteWhitespaceAsync(String)

Scrive in modo asincrono lo spazio vuoto specificato.

La XmlWriter classe scrive i dati XML a un flusso, un file, un lettore di testo o una stringa. Supporta il W3C Extensible Markup Language (XML) 1.0 (fourth edition) e Namespaces in XML 1.0 (third edition) raccomandazioni.

I membri della XmlWriter classe consentono di:

  • Verificare che i caratteri siano caratteri XML validi e che i nomi di attributi ed elementi siano nomi XML validi.

  • Verificare che il documento XML sia in formato corretto.

  • Codificare i byte binari come Base64 e BinHex e scrive il testo risultante.

  • Passare i valori utilizzando tipi common language runtime anziché stringhe, per evitare di dover eseguire manualmente le conversioni dei valori.

  • Scrivere più documenti in un unico flusso di output.

  • Scrivere nomi validi, qualificati e token del nome.

Contenuto della sezione:

Creazione di un writer XML
Specifica il formato di output
Conformità dei dati
Scrittura di elementi
Scrittura di attributi
Gestione degli spazi dei nomi
Scrittura di dati tipizzati
Chiudere il writer XML
Programmazione asincrona
Considerazioni sulla sicurezza

Per creare un XmlWriter dell'istanza, utilizzare il XmlWriter.Create metodo. Per specificare il set di funzionalità che si desidera attivare il writer XML, passare un XmlWriterSettings per il Create metodo. In caso contrario, vengono utilizzate le impostazioni predefinite. Vedere il Create pagine per i dettagli di riferimento.

La XmlWriterSettings classe include diverse proprietà che controllano la modalità XmlWriter viene formattato l'output:

Proprietà

Descrizione

Encoding

Specifica la codifica di testo da utilizzare. Il valore predefinito è Encoding.UTF8.

Indent

Indica se impostare il rientro per gli elementi. Il valore predefinito è false (alcun rientro).

IndentChars

Specifica la stringa di caratteri da utilizzare quando si esegue il rientro. Il valore predefinito è due spazi.

NewLineChars

Specifica la stringa di caratteri da utilizzare per le interruzioni di riga. Il valore predefinito è \r\n (ritorno a capo, avanzamento riga).

NewLineHandling

Specifica come gestire i caratteri di nuova riga.

NewLineOnAttributes

Indica se scrivere attributi in una nuova riga. Quando si utilizza questa proprietà, è necessario impostare la proprietà Indent su true. Il valore predefinito è false.

OmitXmlDeclaration

Indica se scrivere una dichiarazione XML. Il valore predefinito è false.

Le proprietà Indent e IndentChars consentono di controllare il modo in cui vengono formattati gli spazi vuoti non significativi. Ad esempio, per far rientrare i nodi elemento:

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

Utilizzare il NewLineOnAttributes per scrivere ogni attributo in una nuova riga con un livello extra di rientro:

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

Un writer XML utilizza due proprietà dalla XmlWriterSettings classe per verificare la conformità dei dati:

  • Il CheckCharacters proprietà indica al writer XML per controllare i caratteri e generare un XmlException eccezione se dei caratteri non compreso nell'intervallo valido, come definito per la W3C.

  • Il ConformanceLevel proprietà consente di configurare il writer XML per verificare che il flusso di dati letti sia conforme alle regole per un documento XML 1.0 corretto o un frammento di documento, come definito da di W3C. Nella tabella seguente sono descritti i livelli di tre conformità. Il valore predefinito è Document. Per informazioni dettagliate, vedere la XmlWriterSettings.ConformanceLevel proprietà e il System.Xml.ConformanceLevel enumerazione.

    Livello

    Descrizione

    Document

    L'output XML sia conforme alle regole per un documento XML 1.0 corretto e può essere elaborato da qualsiasi processore conforme.

    Fragment

    L'output XML è conforme alle regole per un frammento di documento XML 1.0 corretto.

    Auto

    Il writer XML determina il livello di conformazione per applicare il controllo (documento o frammento) in base ai dati in ingresso.

È possibile utilizzare la seguente XmlWriter metodi per scrivere nodi elemento. Per esempi, vedere i metodi elencati.

Usare

Per

WriteElementString

Scrivere un nodo elemento intero, incluso un valore stringa.

WriteStartElement

Per scrivere un valore dell'elemento usando più chiamate al metodo. Ad esempio, è possibile chiamare WriteValue per scrivere un valore tipizzato, WriteCharEntity per scrivere un'entità di carattere, WriteAttributeString per scrivere un attributo, oppure è possibile scrivere un elemento figlio. Si tratta di una versione più sofisticata di WriteElementString metodo.

Per chiudere l'elemento, si chiama il WriteEndElement o WriteFullEndElement (metodo).

WriteNode

Per copiare un nodo elemento individuato nella posizione corrente di un XmlReader o XPathNavigator oggetto. Quando viene chiamato, il metodo copia tutto dall'oggetto di origine all'istanza XmlWriter.

È possibile utilizzare la seguente XmlWriter metodi per scrivere attributi su nodi elemento. Questi metodi possono essere utilizzati anche per creare dichiarazioni dello spazio dei nomi in un elemento, come descritto nella sezione successiva.

Usare

Per

WriteAttributeString

Per scrivere un intero nodo attributo, incluso un valore di stringa.

WriteStartAttribute

Per scrivere il valore dell'attributo usando più chiamate al metodo. Ad esempio, è possibile chiamare WriteValue per scrivere un valore tipizzato. Si tratta di una versione più sofisticata di WriteElementString metodo.

Per chiudere l'elemento, si chiama il WriteEndAttribute metodo.

WriteAttributes

Per copiare tutti gli attributi rilevati nella posizione corrente di un XmlReader oggetto. Gli attributi che vengono scritti dipendono dal tipo di nodo che è attualmente posizionato il lettore:

  • Per un nodo attributo, scrive l'attributo corrente, quindi il resto degli attributi fino al tag di chiusura dell'elemento.

  • Per un nodo element, scrive tutti gli attributi contenuti nell'elemento.

  • Per un nodo di dichiarazione XML, scrive tutti gli attributi nella dichiarazione.

  • Per tutti gli altri tipi di nodo, il metodo genera un'eccezione.

Gli spazi dei nomi consentono di qualificare i nomi di elementi e attributi in un documento XML. I prefissi dello spazio dei nomi associano elementi e attributi con spazi dei nomi, che a sua volta sono associati con i riferimenti URI. Gli spazi dei nomi assicurano l'univocità dei nomi di elementi e attributi in un documento XML.

Il XmlWriter mantiene uno stack dello spazio dei nomi che corrisponde a tutti gli spazi dei nomi definiti nell'ambito dello spazio dei nomi corrente. Quando si scrivono elementi e attributi, è possibile utilizzare gli spazi dei nomi nei seguenti modi:

  • Dichiarare manualmente gli spazi dei nomi utilizzando il WriteAttributeString metodo. Può essere utile quando si conosce il metodo migliore per ottimizzare il numero di dichiarazioni dello spazio dei nomi. Per un esempio, vedere il WriteAttributeString(String, String, String, String) metodo.

  • Sostituire la dichiarazione dello spazio dei nomi corrente con un nuovo spazio dei nomi. Nel codice seguente, il WriteAttributeString metodo modifica l'URI dello spazio per il "x" prefisso da "123" a "abc".

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

    Tale codice genererà la stringa XML seguente:

    <x:root xmlns:x="123">
      <item xmlns:x="abc" />
    </x:root>
    
  • Specificare un prefisso dello spazio dei nomi quando si scrivono attributi o elementi. Molti dei metodi utilizzati per scrivere elementi e attributi consentono di eseguire questa operazione. Ad esempio, il WriteStartElement(String, String, String) metodo scrive un tag di inizio e la associa un spazio dei nomi specificato e un prefisso.

Il WriteValue metodo accetta un oggetto di common language runtime (CLR), converte il valore di input nella relativa rappresentazione di stringa in base alle regole di conversione di XML schema definition language (XSD) dati tipo e viene scritto usando il WriteString metodo. Ciò risulta più semplice rispetto all'utilizzo dei metodi di XmlConvert (classe) per convertire i dati tipizzati in un valore stringa prima della scrittura.

Durante la scrittura di testo, il valore tipizzato viene serializzato come testo utilizzando il XmlConvert regole per quel tipo di schema.

Per impostazione predefinita tipi di dati XSD che corrispondono ai tipi CLR, vedere il WriteValue metodo.

Il XmlWriter può anche essere utilizzato per scrivere in un archivio di dati XML. Ad esempio, la classe XPathNavigator può creare un oggetto XmlWriter e quindi creare nodi per un oggetto XmlDocument. Se l'archivio dati è disponibile, le informazioni sullo schema di WriteValue metodo genera un'eccezione se si tenta di convertire un tipo che non è consentito. Se l'archivio dati non dispone di informazioni sullo schema di cui dispone il WriteValue metodo considera tutti i valori come un xsd:anySimpleType tipo.

Quando si utilizza XmlWriter metodi per l'output XML, gli elementi e attributi non vengono scritte finché non si chiama il Close metodo. Ad esempio, se si utilizza XmlWriter per popolare un XmlDocument dell'oggetto, non sarà in grado di visualizzare gli elementi scritti e gli attributi nel documento di destinazione fino a quando non si chiude il XmlWriter istanza.

La maggior parte del XmlWriter metodi dispongono di controparti asincrone con "Async" alla fine dei relativi nomi di metodo. Ad esempio, l'equivalente asincrono di WriteAttributeString è WriteAttributeStringAsync.

Per il WriteValue metodo, che non ha una controparte asincrona, convertire il valore restituito in una stringa e utilizzare il WriteStringAsync metodo invece.

Tenere presente quanto segue quando si lavora con la XmlWriter classe:

  • Le eccezioni generate di XmlWriter possono rivelare informazioni sui percorsi che non si desidera propagato l'app. L'app debba intercettare le eccezioni ed elaborarle in modo adeguato.

  • XmlWriter convalida i dati che viene passati per il WriteDocType o WriteRaw (metodo). Non passare dati arbitrari a questi metodi.

Esempio di codice seguente viene illustrato come utilizzare l'API asincrona per generare codice 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();
    }
}

Universal Windows Platform
Disponibile da 8
.NET Framework
Disponibile da 1.1
Libreria di classi portabile
Supportato in: piattaforme .NET portabili
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0
Windows Phone
Disponibile da 8.1

I membri statici pubblici ( Condiviso in Visual Basic) di questo tipo è thread safe. Non tutti i membri di istanza sono garantiti come thread safe.

Torna all'inizio
Mostra: