XmlWriterSettings.ConformanceLevel Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Obtiene o establece el nivel de conformidad para el que el escritor XML comprueba 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). El valor predeterminado 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 ajusta a las reglas de un documento XML 1.0 bien formado 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 con formato correcto 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 escrita. El usuario es responsable de asegurarse de que el 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 lee como una entidad analizada externa 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 de conformidad del documento se aplica en los casos siguientes: - 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. - No hay ningún elemento en el nivel raíz. XmlException Se produce una excepción si hay un conflicto, como cuando se intenta escribir un nodo de texto y un 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 escritor XML corrige automáticamente el error de conformidad. Por ejemplo, el escritor cierra un atributo no cerrado sin iniciar 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 sistema de escritura XML no comprueba el DTD; El usuario debe asegurarse de que el DTD tiene el 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. |
| WriteStartDocument se llama varias veces. | XmlException se produce. | XmlException se produce. | XmlException se produce. |
| Aparece un valor de texto en el nivel superior (no debajo de un nodo de elemento o atributo). | XmlException se produce. | No se considera una infracción. | Se aplica la comprobación de conformidad de 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 de conformidad de fragmentos. |
| El elemento de nivel superior es 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 sistema de escritura XML. | Corregido por el sistema de escritura XML. | Corregido por el sistema de escritura 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. |
| El mismo prefijo de espacio de nombres se declara dos veces 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 elemento 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 encuentra un nombre no válido. | XmlException se produce. | XmlException se produce. | XmlException se produce. |
El xml prefijo no coincide con un URI. |
El escritor XML no comprueba si hay este tipo de infracción. | El escritor XML no comprueba si hay este tipo de infracción. | El escritor XML no comprueba si hay 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 escritor XML no comprueba si hay este tipo de infracción. | El escritor XML no comprueba si hay este tipo de infracción. | El escritor XML no comprueba si hay 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. |