Compartir a través de


Cumplimiento en datos y XmlWriter

La clase XmlWriter incluye dos valores para la comprobación del cumplimiento. Puede establecer XmlWriter para que compruebe el cumplimiento de los datos escritos.

Valor de CheckCharacters

La propiedad XmlWriterSettings.CheckCharacters pide al sistema de escritura que compruebe los caracteres e inicie una XmlException si cualquiera de los caracteres se sale del intervalo de caracteres XML legales. Cuando se habilita la comprobación de caracteres, tiene la garantía de que todos los caracteres del documento están en el intervalo de caracteres XML legales, tal y como define la recomendación XML 1.0 del W3C.

NotaNota

La comprobación de caracteres no incluye la comprobación de caracteres ilegales en nombres XML o la comprobación de la validez de todos los nombres XML.La comprobación de nombres es una parte estándar de la comprobación del cumplimiento.Para obtener más información, vea http://www.w3.org/TR/REC-xml#NT-Name.

De manera predeterminada, la comprobación de caracteres está habilitada.

Valor de ConformanceLevel

La propiedad XmlWriterSettings.ConformanceLevel configura XmlWriter para comprobar y garantizar que la secuencia que se está escribiendo cumple un conjunto determinado de reglas. Dependiendo del nivel de cumplimiento que se especifique, se puede comprobar si los datos XML cumplen las reglas de un documento o un fragmento de documento de XML 1.0 correcto. Si los datos no cumplen las reglas, se inicia una XmlException o ArgumentException. El valor predeterminado es ConformanceLevel.Document.

NotaNota

Si el sistema de escritura está configurado para permitir ConformanceLevel.Fragment, pero los datos XML contienen una definición de tipo de documento (DTD), el sistema de escritura inicia una excepción.La recomendación de XML 1.0 requiere que haya cumplimiento a nivel del documento cuando hay una DTD.De esta manera, si se llama al método WriteStartDocument en un sistema de escritura que esté configurado para permitir ConformanceLevel.Fragment, el sistema de escritura iniciará también una excepción.

Nivel de cumplimiento

Descripción

Documento

Este valor garantiza que el resultado cumple las reglas de un documento correcto de XML 1.0 y es posible procesarlo por medio de cualquier procesador compatible.

NotaNota
El sistema de escritura no analiza la información DTD que se escribe.El usuario es responsable de garantizar que la DTD sea correcta.

Fragmento

Los datos XML cumplen las reglas de un fragmento de documento de XML 1.0 correcto.

Este valor acepta datos XML con varios elementos raíz o nodos de texto en el nivel superior. Este nivel de comprobación garantiza que cualquier procesador pueda consumir la secuencia que se está leyendo como una entidad analizada externa de XML 1.0.

NotaNota
La DTD no está permitida en fragmentos.

Automático

El sistema de escritura decide qué nivel de comprobación del cumplimiento va a aplicar basándose en los datos entrantes. Este valor puede ser útil si no sabe si el XML generado va a ser un documento o un fragmento XML correcto.

La comprobación del cumplimiento en documentos se aplica en los siguientes casos:

La comprobación del cumplimiento en fragmentos se aplica si los datos XML contienen algo de lo siguiente:

  • Nodo de texto, CDATA o EntityReference en el nivel raíz.

  • Más de un elemento en el nivel raíz.

  • Ningún elemento en el nivel raíz.

Se inicia una XmlException si hay un conflicto como, por ejemplo, cuando se intenta escribir un nodo de texto y una DTD en el nivel raíz.

Este valor se puede utilizar en situaciones de contención, en las que se utiliza el método Create para agregar características adicionales a un sistema de escritura existente. En este caso, ConformanceLevel.Auto no agrega ninguna comprobación del cumplimiento nueva. La comprobación del cumplimiento se deja al sistema de escritura que se está conteniendo.

Vea también

Otros recursos

Escribir XML con XmlWriter