Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Clase XmlWriter

 

Publicado: octubre de 2016

Representa un sistema de escritura que constituye una manera rápida, no almacenada en caché y de solo avance para generar flujos o archivos que contienen datos XML.

Espacio de nombres:   System.Xml
Ensamblado:  System.Xml (en System.Xml.dll)


public abstract class XmlWriter : IDisposable

NombreDescripción
System_CAPS_protmethodXmlWriter()

Inicializa una nueva instancia de la clase XmlWriter.

NombreDescripción
System_CAPS_pubpropertySettings

Obtiene el objeto XmlWriterSettings que se usa para crear esta instancia de XmlWriter.

System_CAPS_pubpropertyWriteState

Cuando se invalida en una clase derivada, obtiene el estado del sistema de escritura.

System_CAPS_pubpropertyXmlLang

Cuando se invalida en una clase derivada, obtiene la actual xml:lang ámbito.

System_CAPS_pubpropertyXmlSpace

Cuando se invalida en una clase derivada, obtiene un XmlSpace que representa la actual xml:space ámbito.

NombreDescripción
System_CAPS_pubmethodClose()

Cuando se invalida en una clase derivada, cierra este flujo y el flujo subyacente.

System_CAPS_pubmethodSystem_CAPS_staticCreate(Stream)

Crea un nuevo XmlWriter instancia mediante la secuencia especificada.

System_CAPS_pubmethodSystem_CAPS_staticCreate(Stream, XmlWriterSettings)

Crea un nuevo XmlWriter instancia utilizando la secuencia y XmlWriterSettings objeto.

System_CAPS_pubmethodSystem_CAPS_staticCreate(String)

Crea un nuevo XmlWriter instancia mediante el nombre de archivo especificado.

System_CAPS_pubmethodSystem_CAPS_staticCreate(String, XmlWriterSettings)

Crea un nuevo XmlWriter instancia mediante el nombre de archivo y XmlWriterSettings objeto.

System_CAPS_pubmethodSystem_CAPS_staticCreate(StringBuilder)

Crea un nuevo XmlWriter instancia utilizando el parámetro StringBuilder.

System_CAPS_pubmethodSystem_CAPS_staticCreate(StringBuilder, XmlWriterSettings)

Crea un nuevo XmlWriter instancia mediante el StringBuilder y XmlWriterSettings objetos.

System_CAPS_pubmethodSystem_CAPS_staticCreate(TextWriter)

Crea un nuevo XmlWriter instancia utilizando el parámetro TextWriter.

System_CAPS_pubmethodSystem_CAPS_staticCreate(TextWriter, XmlWriterSettings)

Crea un nuevo XmlWriter instancia mediante el TextWriter y XmlWriterSettings objetos.

System_CAPS_pubmethodSystem_CAPS_staticCreate(XmlWriter)

Crea un nuevo XmlWriter instancia utilizando el parámetro XmlWriter objeto.

System_CAPS_pubmethodSystem_CAPS_staticCreate(XmlWriter, XmlWriterSettings)

Crea un nuevo XmlWriter instancia utilizando el parámetro XmlWriter y XmlWriterSettings objetos.

System_CAPS_pubmethodDispose()

Libera todos los recursos usados por la instancia actual de la clase XmlWriter.

System_CAPS_protmethodDispose(Boolean)

Libera los recursos no administrados que usa XmlWriter y libera los recursos administrados de forma opcional.

System_CAPS_pubmethodEquals(Object)

Determina si el objeto especificado es igual al objeto actual.(Heredado de Object).

System_CAPS_protmethodFinalize()

Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por el recolector de basura. (Heredado de Object).

System_CAPS_pubmethodFlush()

Cuando se invalida en una clase derivada, vuelca el contenido del búfer en los flujos subyacentes y también vuelca el flujo subyacente.

System_CAPS_pubmethodFlushAsync()

Vuelca asincrónicamente el contenido del búfer en los flujos subyacentes y también vuelca el flujo subyacente.

System_CAPS_pubmethodGetHashCode()

Sirve como la función hash predeterminada.(Heredado de Object).

System_CAPS_pubmethodGetType()

Obtiene el Type de la instancia actual.(Heredado de Object).

System_CAPS_pubmethodLookupPrefix(String)

Cuando se invalida en una clase derivada, devuelve el prefijo más próximo definido en el ámbito de espacio de nombres actual correspondiente al identificador URI de espacio de nombres.

System_CAPS_protmethodMemberwiseClone()

Crea una copia superficial del Object actual.(Heredado de Object).

System_CAPS_pubmethodToString()

Devuelve una cadena que representa al objeto actual. (Heredado de Object).

System_CAPS_pubmethodWriteAttributes(XmlReader, Boolean)

Cuando se invalida en una clase derivada, escribe todos los atributos encontrados en la posición actual en el XmlReader.

System_CAPS_pubmethodWriteAttributesAsync(XmlReader, Boolean)

De forma asincrónica escribe todos los atributos encontrados en la posición actual en el XmlReader.

System_CAPS_pubmethodWriteAttributeString(String, String)

Cuando se invalida en una clase derivada, escribe el atributo con el valor y nombre local especificados.

System_CAPS_pubmethodWriteAttributeString(String, String, String)

Cuando se invalida en una clase derivada, escribe un atributo con el valor, nombre local e identificador URI del espacio de nombres especificados.

System_CAPS_pubmethodWriteAttributeString(String, String, String, String)

Cuando se invalida en una clase derivada, escribe el atributo con el prefijo, el nombre local, el identificador URI de espacio de nombres y el valor especificados.

System_CAPS_pubmethodWriteAttributeStringAsync(String, String, String, String)

Escribe asincrónicamente un atributo con el prefijo, el nombre local, el URI del espacio de nombres y el valor especificados.

System_CAPS_pubmethodWriteBase64(Byte[], Int32, Int32)

Cuando se invalida en una clase derivada, codifica los bytes binarios especificados en Base64 y escribe el texto resultante.

System_CAPS_pubmethodWriteBase64Async(Byte[], Int32, Int32)

Codifica asincrónicamente los bytes binarios especificados en Base64 y escribe el texto resultante.

System_CAPS_pubmethodWriteBinHex(Byte[], Int32, Int32)

Cuando se invalida en una clase derivada, codifica los bytes binarios especificados como BinHex y escribe el texto resultante.

System_CAPS_pubmethodWriteBinHexAsync(Byte[], Int32, Int32)

Codifica asincrónicamente los bytes binarios especificados como BinHex y escribe el texto resultante.

System_CAPS_pubmethodWriteCData(String)

Cuando se invalida en una clase derivada, escribe un bloque <![CDATA[...]]> que contiene el texto especificado.

System_CAPS_pubmethodWriteCDataAsync(String)

Escribe asincrónicamente un bloque <![CDATA[...]]> que contiene el texto especificado.

System_CAPS_pubmethodWriteCharEntity(Char)

Cuando se invalida en una clase derivada, impone la generación de una entidad de caracteres para el valor de carácter Unicode especificado.

System_CAPS_pubmethodWriteCharEntityAsync(Char)

Impone asincrónicamente la generación de una entidad de caracteres para el valor de carácter Unicode especificado.

System_CAPS_pubmethodWriteChars(Char[], Int32, Int32)

Cuando se invalida en una clase derivada, escribe texto en un búfer cada vez.

System_CAPS_pubmethodWriteCharsAsync(Char[], Int32, Int32)

Escribe asincrónicamente texto en un búfer cada vez.

System_CAPS_pubmethodWriteComment(String)

Cuando se invalida en una clase derivada, escribe un comentario <!--...--> que contiene el texto especificado.

System_CAPS_pubmethodWriteCommentAsync(String)

De forma asincrónica escribe un comentario <!--...--> que contiene el texto especificado.

System_CAPS_pubmethodWriteDocType(String, String, String, String)

Cuando se invalida en una clase derivada, escribe la declaración DOCTYPE con el nombre y atributos opcionales especificados.

System_CAPS_pubmethodWriteDocTypeAsync(String, String, String, String)

Escribe asincrónicamente la declaración DOCTYPE con el nombre y los atributos opcionales especificados.

System_CAPS_pubmethodWriteElementString(String, String)

Escribe un elemento con el nombre local y el valor especificados.

System_CAPS_pubmethodWriteElementString(String, String, String)

Escribe un elemento con el nombre local especificado, el URI de espacio de nombres y el valor.

System_CAPS_pubmethodWriteElementString(String, String, String, String)

Escribe un elemento con el prefijo, nombre local, el URI de espacio de nombres y el valor especificados.

System_CAPS_pubmethodWriteElementStringAsync(String, String, String, String)

Escribe asincrónicamente un elemento con el nombre local, el URI de espacio de nombres, el valor y el prefijo especificados.

System_CAPS_pubmethodWriteEndAttribute()

Cuando se invalida en una clase derivada, cierra la anterior WriteStartAttribute llamar.

System_CAPS_protmethodWriteEndAttributeAsync()

Cierra asincrónicamente anterior WriteStartAttribute llamar.

System_CAPS_pubmethodWriteEndDocument()

Cuando se invalida en una clase derivada, cierra todos los elementos o atributos abiertos y vuelve a colocar el sistema de escritura en el estado de inicio.

System_CAPS_pubmethodWriteEndDocumentAsync()

Cierra asincrónicamente todos los elementos o atributos abiertos y coloca de nuevo el sistema de escritura en el estado de inicio.

System_CAPS_pubmethodWriteEndElement()

Cuando se invalida en una clase derivada, cierra un elemento y extrae el ámbito de espacio de nombres correspondiente.

System_CAPS_pubmethodWriteEndElementAsync()

Cierra asincrónicamente un elemento y extrae el correspondiente ámbito de espacio de nombres.

System_CAPS_pubmethodWriteEntityRef(String)

Cuando se invalida en una clase derivada, escribe una referencia de entidad como &name;.

System_CAPS_pubmethodWriteEntityRefAsync(String)

Escribe asincrónicamente una referencia de entidad como &name;.

System_CAPS_pubmethodWriteFullEndElement()

Cuando se invalida en una clase derivada, cierra un elemento y extrae el ámbito de espacio de nombres correspondiente.

System_CAPS_pubmethodWriteFullEndElementAsync()

Cierra asincrónicamente un elemento y extrae el correspondiente ámbito de espacio de nombres.

System_CAPS_pubmethodWriteName(String)

Cuando se invalida en una clase derivada, escribe el nombre especificado, comprobando que sea un nombre válido de acuerdo con la recomendación relativa a XML 1.0 del Consorcio W3C (http://www.w3.org/TR/1998/REC-xml-19980210#NT-Name).

System_CAPS_pubmethodWriteNameAsync(String)

Escribe asincrónicamente el nombre especificado, asegurando que se trata de un nombre válido de acuerdo con la recomendación relativa a XML 1.0 del Consorcio W3C (http://www.w3.org/TR/1998/REC-xml-19980210#NT-Name).

System_CAPS_pubmethodWriteNmToken(String)

Cuando se invalida en una clase derivada, escribe el nombre especificado, comprobando que sea un NmToken válido de acuerdo con la recomendación relativa a XML 1.0 del Consorcio W3C (http://www.w3.org/TR/1998/REC-xml-19980210#NT-Name).

System_CAPS_pubmethodWriteNmTokenAsync(String)

Escribe asincrónicamente el nombre especificado, asegurando que se trata de un NmToken válido de acuerdo con la recomendación relativa a XML 1.0 del Consorcio W3C (http://www.w3.org/TR/1998/REC-xml-19980210#NT-Name).

System_CAPS_pubmethodWriteNode(XmlReader, Boolean)

Cuando se invalida en una clase derivada, copia todo el contenido del lector en el sistema de escritura y desplaza el lector al inicio del siguiente nodo relacionado.

System_CAPS_pubmethodWriteNode(XPathNavigator, Boolean)

Copia todo el contenido de la XPathNavigator objeto en el sistema de escritura. La posición de la XPathNavigator permanece sin cambios.

System_CAPS_pubmethodWriteNodeAsync(XmlReader, Boolean)

Copia asincrónicamente todo el contenido del lector en el sistema de escritura y desplaza el lector al inicio del siguiente nodo relacionado.

System_CAPS_pubmethodWriteNodeAsync(XPathNavigator, Boolean)

Copia asincrónicamente todo, desde la XPathNavigator objeto en el sistema de escritura. La posición de la XPathNavigator permanece sin cambios.

System_CAPS_pubmethodWriteProcessingInstruction(String, String)

Cuando se invalida en una clase derivada, escribe una instrucción de procesamiento con un espacio entre el nombre y el texto siguiente: <? nombre texto? >.

System_CAPS_pubmethodWriteProcessingInstructionAsync(String, String)

De forma asincrónica escribe una instrucción de procesamiento con un espacio entre el nombre y el texto siguiente: <? nombre texto? >.

System_CAPS_pubmethodWriteQualifiedName(String, String)

Cuando se invalida en una clase derivada, escribe el nombre completo del espacio de nombres. Este método busca un prefijo que está en el ámbito del espacio de nombres especificado.

System_CAPS_pubmethodWriteQualifiedNameAsync(String, String)

Escribe asincrónicamente el nombre completo del espacio de nombres. Este método busca un prefijo que está en el ámbito del espacio de nombres especificado.

System_CAPS_pubmethodWriteRaw(Char[], Int32, Int32)

Cuando se invalida en una clase derivada, escribe marcado sin formato manualmente desde un búfer de caracteres.

System_CAPS_pubmethodWriteRaw(String)

Cuando se invalida en una clase derivada, escribe marcado sin formato manualmente desde una cadena.

System_CAPS_pubmethodWriteRawAsync(Char[], Int32, Int32)

Escribe asincrónicamente el marcado sin formato de un búfer de caracteres.

System_CAPS_pubmethodWriteRawAsync(String)

Escribe asincrónicamente el marcado sin formato de una cadena.

System_CAPS_pubmethodWriteStartAttribute(String)

Escribe el inicio de un atributo con el nombre local especificado.

System_CAPS_pubmethodWriteStartAttribute(String, String)

Escribe el inicio de un atributo con el URI de espacio de nombres y el nombre local especificados.

System_CAPS_pubmethodWriteStartAttribute(String, String, String)

Cuando se invalida en una clase derivada, escribe el inicio de un atributo con el prefijo, el nombre local y el URI de espacio de nombres especificados.

System_CAPS_protmethodWriteStartAttributeAsync(String, String, String)

Escribe asincrónicamente el inicio de un atributo con el prefijo, URI de espacio de nombres y el nombre local especificados.

System_CAPS_pubmethodWriteStartDocument()

Cuando se invalida en una clase derivada, escribe la declaración XML con la versión "1.0".

System_CAPS_pubmethodWriteStartDocument(Boolean)

Cuando se invalida en una clase derivada, escribe la declaración XML con la versión "1.0" y el atributo independiente.

System_CAPS_pubmethodWriteStartDocumentAsync()

Escribe asincrónicamente la declaración XML con la versión "1.0".

System_CAPS_pubmethodWriteStartDocumentAsync(Boolean)

Escribe asincrónicamente la declaración XML con la versión "1.0" así como el atributo independiente.

System_CAPS_pubmethodWriteStartElement(String)

Cuando se invalida en una clase derivada, escribe una etiqueta de apertura con el nombre local especificado.

System_CAPS_pubmethodWriteStartElement(String, String)

Cuando se invalida en una clase derivada, escribe la etiqueta de apertura especificada y la asocia al espacio de nombres especificado.

System_CAPS_pubmethodWriteStartElement(String, String, String)

Cuando se invalida en una clase derivada, escribe la etiqueta de apertura especificada y la asocia al espacio de nombres y prefijo especificados.

System_CAPS_pubmethodWriteStartElementAsync(String, String, String)

Escribe asincrónicamente la etiqueta de apertura especificada y la asocia al espacio de nombres y al prefijo especificados.

System_CAPS_pubmethodWriteString(String)

Cuando se invalida en una clase derivada, escribe el contenido de texto especificado.

System_CAPS_pubmethodWriteStringAsync(String)

Escribe asincrónicamente el contenido de texto dado.

System_CAPS_pubmethodWriteSurrogateCharEntity(Char, Char)

Cuando se invalida en una clase derivada, genera y escribe la entidad de carácter suplente para el par de caracteres suplentes.

System_CAPS_pubmethodWriteSurrogateCharEntityAsync(Char, Char)

Genera y escribe asincrónicamente la entidad de carácter suplente del par de caracteres suplentes.

System_CAPS_pubmethodWriteValue(Boolean)

Escribe un valor Boolean.

System_CAPS_pubmethodWriteValue(DateTime)

Escribe un valor DateTime.

System_CAPS_pubmethodWriteValue(DateTimeOffset)

Escribe un valor DateTimeOffset.

System_CAPS_pubmethodWriteValue(Decimal)

Escribe un valor Decimal.

System_CAPS_pubmethodWriteValue(Double)

Escribe un valor Double.

System_CAPS_pubmethodWriteValue(Int32)

Escribe un valor Int32.

System_CAPS_pubmethodWriteValue(Int64)

Escribe un valor Int64.

System_CAPS_pubmethodWriteValue(Object)

Escribe el valor del objeto.

System_CAPS_pubmethodWriteValue(Single)

Escribe un número de punto flotante de precisión sencilla.

System_CAPS_pubmethodWriteValue(String)

Escribe un valor String.

System_CAPS_pubmethodWriteWhitespace(String)

Cuando se invalida en una clase derivada, escribe el espacio en blanco especificado.

System_CAPS_pubmethodWriteWhitespaceAsync(String)

Escribe asincrónicamente el espacio en blanco especificado.

La XmlWriter clase escribe datos XML en una secuencia, un archivo, un lector de texto o una cadena. Es compatible con el W3C Extensible Markup Language (XML) 1.0 (fourth edition) y Namespaces in XML 1.0 (third edition) recomendaciones.

Los miembros de la XmlWriter clase le permiten:

  • Comprobar que los caracteres son caracteres legales XML y que los nombres de elemento y atributo son nombres XML válidos.

  • Comprobar que el documento XML tiene el formato correcto.

  • Codificar bytes binarios en Base64 y BinHex y escribir el texto resultante.

  • Pasar valores mediante tipos common language runtime en lugar de cadenas, para evitar tener que realizar manualmente conversiones de valores.

  • Escribir varios documentos en un flujo de salida.

  • Escribir nombres válidos, nombres completos y tokens de nombres.

En esta sección:

Crear un escritor de XML
Especifica el formato de salida
Cumplimiento en datos
Escritura de elementos
Escribir atributos
Control de espacios de nombres
Escribir datos de tipo
Cierre el sistema de escritura XML
Programación asincrónica
Consideraciones de seguridad

Para crear un XmlWriter de instancia, utilice el XmlWriter.Create método. Para especificar el conjunto de características que desea habilitar en el sistema de escritura XML, pase una XmlWriterSettings a la Create (método). De lo contrario, se utiliza la configuración predeterminada. Consulte la Create páginas para obtener más información de referencia.

La XmlWriterSettings clase incluye varias propiedades que controlan cómo XmlWriter con el formato de salida:

Propiedad

Descripción

Encoding

Especifica la codificación de texto que se va a utilizar. De manera predeterminada, es Encoding.UTF8.

Indent

Indica si se van a aplicar sangrías a los elementos. El valor predeterminado es false (no hay sangría).

IndentChars

Especifica la cadena de caracteres que se va a utilizar para aplicar la sangría. El valor predeterminado es dos espacios.

NewLineChars

Especifica la cadena de caracteres que se va a utilizar para los saltos de línea. El valor predeterminado es \r\n (retorno de carro, avance de línea).

NewLineHandling

Especifica cómo controlar los caracteres de nueva línea.

NewLineOnAttributes

Indica si se van a escribir atributos en una línea nueva. Indent se debería establecer en true si se utiliza esta propiedad. De manera predeterminada, es false.

OmitXmlDeclaration

Indica si se va a escribir una declaración XML. De manera predeterminada, es false.

Las propiedades Indent y IndentChars controlan cómo se da formato al espacio en blanco que es poco importante. Por ejemplo, para aplicar sangría a los nodos de elemento:

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

Utilice la NewLineOnAttributes para escribir cada atributo en una línea nueva con un nivel adicional de sangría:

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

Un sistema de escritura XML usa dos propiedades de la XmlWriterSettings clase para comprobar el cumplimiento de datos:

  • El CheckCharacters propiedad indica al escritor XML que compruebe los caracteres e inicie una XmlException excepción si los caracteres están fuera del intervalo válido, definida por el W3C.

  • El ConformanceLevel propiedad configura el escritor XML para comprobar que la secuencia que se está escribiendo cumple las reglas para un documento de XML 1.0 correcto o un fragmento de documento definida por el W3C. Los tres niveles se describen en la tabla siguiente. De manera predeterminada, es Document. Para obtener más información, consulte el XmlWriterSettings.ConformanceLevel propiedad y System.Xml.ConformanceLevel (enumeración).

    Nivel

    Descripción

    Document

    El XML resultante se ajusta a las reglas de un documento de XML 1.0 correcto y puede ser procesado por cualquier procesador compatible.

    Fragment

    El XML resultante se ajusta a las reglas para un fragmento de documento de XML 1.0 correcto.

    Auto

    El escritor XML determina qué nivel de conformación comprobación para aplicar (documento o fragmento) basándose en los datos entrantes.

Puede utilizar el siguiente XmlWriter métodos para escribir nodos de elemento. Para obtener ejemplos, vea los métodos enumerados.

Uso

TO

WriteElementString

Escribir un nodo de elementos completo, incluyendo un valor de cadena.

WriteStartElement

Para escribir un valor de elemento utilizando varias llamadas al método. Por ejemplo, puede llamar a WriteValue para escribir un valor con establecimiento de tipos, a WriteCharEntity para escribir una entidad de caracteres, a WriteAttributeString para escribir un atributo o puede escribir un elemento secundario. Se trata de una versión más sofisticada de la WriteElementString (método).

Para cerrar el elemento, se llama a la WriteEndElement o WriteFullEndElement (método).

WriteNode

Para copiar un nodo de elemento que se encuentra en la posición actual de un XmlReader o XPathNavigator objeto. Cuando se llama, copia todo del objeto de origen en la instancia de XmlWriter.

Puede utilizar el siguiente XmlWriter métodos para escribir atributos en nodos de elemento. Estos métodos también pueden utilizarse para crear las declaraciones de espacio de nombres en un elemento, como se describe en la sección siguiente.

Uso

TO

WriteAttributeString

Para escribir un nodo de atributos completo, incluyendo un valor de cadena.

WriteStartAttribute

Para escribir el valor del atributo utilizando varias llamadas de método. Por ejemplo, puede llamar a WriteValue para escribir un valor con tipo. Se trata de una versión más sofisticada de la WriteElementString (método).

Para cerrar el elemento, se llama a la WriteEndAttribute (método).

WriteAttributes

Para copiar todos los atributos encontrados en la posición actual de un XmlReader objeto. Los atributos que se escriben dependen del tipo de nodo que se encuentra situado actualmente el lector:

  • Para un nodo de atributo, escribe el atributo actual y, a continuación, el resto de los atributos hasta la etiqueta de cierre del elemento.

  • Para un nodo de elemento, escribe todos los atributos incluidos en el elemento.

  • Para un nodo de declaración XML, escribe todos los atributos en la declaración.

  • Para los demás tipos de nodo, el método produce una excepción.

Los espacios de nombres se utilizan para calificar nombres de atributos y elementos en un documento XML. Prefijos de espacio de nombres asocian elementos y atributos con espacios de nombres, que a su vez asociados con referencias URI. Los espacios de nombres crean nombres de elementos y atributos únicos en un documento XML.

El XmlWriter mantiene una pila de espacio de nombres correspondiente a todos los espacios de nombres definidos en el ámbito de espacio de nombres actual. A la hora de escribir elementos y atributos, puede utilizar espacios de nombres de las siguientes formas:

  • Declarar espacios de nombres manualmente mediante el WriteAttributeString método. Esto puede resultar útil si conoce la mejor forma de optimizar el número de declaraciones de espacios de nombres. Para obtener un ejemplo, consulte el WriteAttributeString(String, String, String, String) método.

  • Invalidar la declaración de espacio de nombres actual con un espacio de nombres nuevo. En el código siguiente, la WriteAttributeString método cambia el URI de espacio de nombres para el "x" prefijo de "123" a "abc".

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

    El código genera la siguiente cadena XML:

    <x:root xmlns:x="123">
      <item xmlns:x="abc" />
    </x:root>
    
  • Especifique un prefijo de espacio de nombres al escribir atributos o elementos. Muchos de los métodos utilizados para escribir elementos y atributos permiten hacerlo. Por ejemplo, el WriteStartElement(String, String, String) método escribe una etiqueta de apertura y lo asocia con un espacio de nombres especificado y un prefijo.

El WriteValue método acepta un objeto de common language runtime (CLR), convierte el valor de entrada en su representación de cadena según las reglas de conversión de tipos de datos XML schema definition language (XSD) y escribe alejar con la WriteString (método). Esto es más sencillo que usar los métodos de la XmlConvert clase para convertir los datos de tipo a un valor de cadena antes de escribirlos.

Cuando se escribe en texto, el valor con tipo se serializa en texto utilizando la XmlConvert reglas para ese tipo de esquema.

Para los tipos de datos XSD en el valor predeterminado que se corresponden con los tipos de CLR, consulte la WriteValue método.

El XmlWriter también puede utilizarse para escribir en un almacén de datos XML. Por ejemplo, la clase XPathNavigator puede crear un objeto XmlWriter para crear nodos para un objeto XmlDocument. Si el almacén de datos tiene información de esquema, el WriteValue método produce una excepción si se intenta convertir un tipo que no está permitido. Si el almacén de datos no tiene información de esquema, el WriteValue método trata todos los valores como un xsd:anySimpleType tipo.

Al usar XmlWriter métodos a la salida XML, los elementos y atributos no se escriben hasta que llame a la Close (método). Por ejemplo, si utiliza XmlWriter para rellenar un XmlDocument de objeto, no podrá ver los elementos y atributos escritos en el documento de destino hasta que cierre el XmlWriter instancia.

La mayoría de los XmlWriter métodos tienen homólogos asincrónicos que tienen "Async" al final de los nombres de método. Por ejemplo, el equivalente asincrónico de WriteAttributeString es WriteAttributeStringAsync.

Para el WriteValue método, que no tiene un homólogo asincrónico, convertir el valor devuelto en una cadena y utilice el WriteStringAsync método en su lugar.

Tenga en cuenta lo siguiente cuando trabaje con el XmlWriter clase:

  • Las excepciones producidas por el XmlWriter pueden revelar información de ruta de acceso que no desea que se ejecuta hasta la aplicación. La aplicación debe detectar las excepciones y procesarlas correctamente.

  • XmlWriter no valida los datos que se pasan a la WriteDocType o WriteRaw (método). No debe pasar datos arbitrarios a estos métodos.

El ejemplo de código siguiente muestra cómo utilizar la API asíncrona para generar 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();
    }
}

Plataforma universal de Windows
Disponible desde 8
.NET Framework
Disponible desde 1.1
Biblioteca de clases portable
Se admite en: plataformas portátiles de .NET
Silverlight
Disponible desde 2.0
Windows Phone Silverlight
Disponible desde 7.0
Windows Phone
Disponible desde 8.1

Cualquier miembro ( Compartido en Visual Basic) estático público de este tipo es seguro para subprocesos. No se garantiza que los miembros de instancia sean seguros para subprocesos.

Volver al principio
Mostrar: