Compartir vía


XmlWriterSettings.ConformanceLevel Propiedad

Definición

Obtiene o establece el nivel de conformidad que el sistema de escritura XML comprueba para la salida XML.

public:
 property System::Xml::ConformanceLevel ConformanceLevel { System::Xml::ConformanceLevel get(); void set(System::Xml::ConformanceLevel value); };
public System.Xml.ConformanceLevel ConformanceLevel { get; set; }
member this.ConformanceLevel : System.Xml.ConformanceLevel with get, set
Public Property ConformanceLevel As ConformanceLevel

Valor de propiedad

Uno de los valores de enumeración que especifica el nivel de conformidad (documento, fragmento o detección automática). De manera predeterminada, es Document.

Ejemplos

En el ejemplo siguiente se escribe un fragmento XML en una secuencia de memoria.

XmlWriterSettings settings = new XmlWriterSettings();
settings.OmitXmlDeclaration = true;
settings.ConformanceLevel = ConformanceLevel.Fragment;
settings.CloseOutput = false;

// Create the XmlWriter object and write some content.
MemoryStream strm = new MemoryStream();
XmlWriter writer = XmlWriter.Create(strm, settings);
writer.WriteElementString("orderID", "1-456-ab");
writer.WriteElementString("orderID", "2-36-00a");
writer.Flush();
writer.Close();

// Do additional processing on the stream.
Dim settings As XmlWriterSettings = New XmlWriterSettings()
settings.OmitXmlDeclaration = true
settings.ConformanceLevel = ConformanceLevel.Fragment
settings.CloseOutput = false

' Create the XmlWriter object and write some content.
Dim strm as MemoryStream = new MemoryStream()
Dim writer As XmlWriter = XmlWriter.Create(strm, settings)
writer.WriteElementString("orderID", "1-456-ab")
writer.WriteElementString("orderID", "2-36-00a")
writer.Flush()
writer.Close()

' Do additional processing on the stream.

Comentarios

La XmlWriterSettings.ConformanceLevel propiedad configura el sistema de escritura XML para comprobar y garantizar que la secuencia que se escribe cumple con un determinado conjunto de reglas. Los datos XML se pueden comprobar para ver que se ajustan a las reglas de un documento XML 1.0 correcto o un fragmento de documento. En la tabla siguiente se describen las tres opciones de configuración. El valor predeterminado es la conformidad de nivel de documento.

Configuración Descripción
Document Garantiza que la salida XML se ajusta a las reglas de un documento XML 1.0 bien formado y se puede procesar mediante cualquier procesador conforme.

Las comprobaciones de conformidad del documento incluyen la mayoría de las comprobaciones de nivel de fragmento y también garantizan lo siguiente:

- El elemento de nivel superior no tiene ningún nodo que no sea declaración XML, DTD, elemento, comentario, espacio en blanco o instrucción de procesamiento.
- Los datos XML tienen uno y solo un nodo de elemento de nivel superior.

El escritor XML no analiza la información de DTD que se escribe. El usuario es responsable de asegurarse de que la DTD tiene un formato correcto.
Fragment Garantiza que la salida XML se ajusta a las reglas de un fragmento de documento XML 1.0 con formato correcto.

Esta configuración acepta datos XML que tienen 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.

No se permite la información de DTD en fragmentos de documento.
Auto Especifica que el escritor XML debe determinar el nivel de comprobación de conformidad en función de los datos entrantes. Esta configuración puede ser útil cuando no sabe si el XML generado será un documento XML bien formado o un fragmento.

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

- Si se llama al WriteStartDocument método .
- Si se escribe información de DTD.

La comprobación de conformidad de fragmentos se aplica si los datos XML contienen uno de estos:

- Nodo Text, 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.

Si va a encapsular otro XmlWriter objeto, el objeto externo no realiza ninguna comprobación de conformidad adicional; esto se deja en el objeto subyacente.

Si el escritor XML detecta cualquier información que infringiera el nivel de conformidad especificado, produce una excepción. En algunos casos, el sistema de escritura XML corrige automáticamente el error de conformidad. Por ejemplo, el escritor cierra un atributo no cerrado sin producir una excepción. En la tabla siguiente se muestra cómo se controlan varias infracciones de conformidad en cada configuración.

Condición Document Fragment Auto
Se encuentra información de DTD. No es una infracción de esta configuración. Sin embargo, el escritor XML no comprueba la DTD; el usuario debe asegurarse de que la DTD tiene un formato correcto. XmlException se produce . Se aplica la comprobación de conformidad del documento.
Se llama a WriteStartDocument. No se considera una infracción para esta configuración. XmlException se produce . Se aplica la comprobación de conformidad del documento.
Se llama a WriteStartDocument varias veces. XmlException se produce . XmlException se produce . XmlException se produce .
Aparece un valor de texto en el nivel superior (no por debajo de un nodo de elemento o atributo). XmlException se produce . No se considera una infracción. Se aplica la comprobación del cumplimiento en fragmentos.
Varios elementos o ningún elemento aparecen en el nivel superior. XmlException se produce . No se considera una infracción. Se aplica la comprobación del cumplimiento en fragmentos.
El elemento de nivel superior es un espacio en blanco. No se considera una infracción. No se considera una infracción. No se considera una infracción.
WriteEndAttribute no se llama a para finalizar un nodo de atributo. Corregido por el escritor XML. Corregido por el escritor XML. Corregido por el escritor XML.
El sistema de escritura XML está en un estado anidado incorrecto (por ejemplo, una WriteStartElement llamada va seguida de ).WriteEndAttribute XmlException se produce . XmlException se produce . XmlException se produce .
El elemento de nivel superior es un atributo. XmlException se produce . XmlException se produce . XmlException se produce .
Se encuentran varios nodos de texto contiguos. No se considera una infracción, pero es responsabilidad del usuario concatenar los nodos de texto. No se considera una infracción, pero es responsabilidad del usuario concatenar los nodos de texto. No se considera una infracción, pero es responsabilidad del usuario concatenar los nodos de texto.
Se declara dos veces el mismo prefijo de espacio de nombres en un elemento. El escritor XML genera un nuevo prefijo para el segundo espacio de nombres. El escritor XML genera un nuevo prefijo para el segundo espacio de nombres. El escritor XML genera un nuevo prefijo para el segundo espacio de nombres.
WriteStartElement especifica un prefijo y un espacio de nombres que no se declara dentro de ese ámbito, o el prefijo está asociado a un espacio de nombres diferente. El escritor XML escribe el nodo de espacio de nombres necesario. El escritor XML escribe el nodo de espacio de nombres necesario. El escritor XML escribe el nodo de espacio de nombres necesario.
WriteStartAttribute especifica un prefijo y un espacio de nombres que no se declara dentro de ese ámbito. El escritor XML escribe el nodo de espacio de nombres necesario. El escritor XML escribe el nodo de espacio de nombres necesario. El escritor XML escribe el nodo de espacio de nombres necesario.
WriteStartAttribute especifica un prefijo y un espacio de nombres, pero el prefijo está asociado a otro espacio de nombres en el ámbito. El escritor XML omite el prefijo especificado y busca el prefijo correcto o genera un nuevo prefijo. El escritor XML omite el prefijo especificado y busca el prefijo correcto o genera un nuevo prefijo. El escritor XML omite el prefijo especificado y busca el prefijo correcto o genera un nuevo prefijo.
WriteQualifiedName se usa para escribir contenido de elementos mediante un espacio de nombres que no existe dentro del ámbito. XmlException se produce . XmlException se produce . XmlException se produce .
WriteQualifiedName se usa para escribir contenido de atributo mediante un espacio de nombres que no existe dentro del ámbito. El escritor XML escribe la declaración de espacio de nombres necesaria. El escritor XML escribe la declaración de espacio de nombres necesaria. El escritor XML escribe la declaración de espacio de nombres necesaria.
El xml:space atributo no contiene un valor válido. XmlException se produce. XmlException se produce. XmlException se produce.
Se ha encontrado un nombre no válido. XmlException se produce. XmlException se produce. XmlException se produce.
El xml prefijo no coincide con un URI. El sistema de escritura XML no comprueba este tipo de infracción. El sistema de escritura XML no comprueba este tipo de infracción. El sistema de escritura XML no comprueba este tipo de infracción.
El xml prefijo no coincide con el http://www.w3.org/XML/1998/namespace URI. XmlException se produce. XmlException se produce. XmlException se produce.
El xmlns prefijo o el nombre local no coinciden con un URI. El sistema de escritura XML no comprueba este tipo de infracción. El sistema de escritura XML no comprueba este tipo de infracción. El sistema de escritura XML no comprueba este tipo de infracción.
El xmlns prefijo o el nombre local no coinciden con el http://www.w3.org/2000/xmlns URI. XmlException se produce. XmlException se produce. XmlException se produce.

Se aplica a