2009-05-08 17 views
16

He intentado leer http://www.w3.org/TR/xml-infoset/ y wikipedia entry. Pero, francamente, todavía no estoy seguro de cuál es la diferencia.¿Qué es un infoset XML y de qué forma es diferente a un documento XML?

La cita:

Un documento XML tiene un conjunto de información si está bien formado y satisface las restricciones de espacio de nombres . No hay ningún requisito para que un documento XML sea válido para tener un conjunto de información .

Desde la entrada de la wikipedia parece no tener sentido. ¿Cómo puede un documento no válido tener semántica, y por lo tanto, cómo puede ser un conjunto de 'información'?

¿Qué es este 'conjunto de información' que

bien formado y satisface el espacio de nombres constreñidos

XML tiene? Y de qué manera es útil en sí mismo. En otras palabras, ¿por qué, semánticamente hablando, es necesario definir el infoset XML? ¿Hay alguna información que no se pueda representar en XML? Si es así, puedo ver el conjunto limitador del XML Infoset, pero si no es seguro, el XML Infoset es tan insignificante como el término "información".

Gracias por las respuestas interesantes: todavía no puedo comprender por qué el conjunto de información XML tiene ningún propósito en comparación con el término conjunto de información. Pero ustedes me han dado la respuesta directa a la pregunta.

+1

Una vieja pregunta, pero publiqué una nueva respuesta porque creo que es útil. – RichardOD

Respuesta

6

Una forma útil de pensar en la distinción entre el texto XML y el infoset XML es considerar el Fast Infoset. Esta es una representación binaria del infoset XML.

Tiene el resumen "infoset", que es un modelo conceptual que representa datos XML (nodos, elementos, atributos, etc.). Esto se puede representar físicamente como un documento XML de texto, o como una secuencia Fast Infoset. Ambos representan los mismos datos, pero de maneras radicalmente diferentes.

+0

Gracias, pero todavía tengo el problema de comprender qué hace que la información XML sea diferente del caso general de un conjunto de información. Echaré un vistazo a esa mirada ans. –

+0

Lo intentaré y ser más claro. ¿Es el caso de que XML => elementos y atributos? En ese caso, tiene sentido, sin embargo, originalmente percibí el concepto de XML como una especialización del caso general del infoset (es decir, descripción de la información). Ahora parece ser que el XML es la generalización de ese concepto, en cuyo caso el infoset XML es THE infoset. De ahí mi incapacidad para comprender la semántica. –

+0

Gracias. finalmente se hundió. –

2

Un documento XML válido cumple los requisitos de una DTD o XSD (u otras normas). Si está bien formado, aún puede ser 'inválido', si viola las reglas en el DTD o XSD dados.

Editar: Soy nuevo en esta área de XML, pero parece que el infoset es la descripción del 'nivel abstracto' de las partes de un documento XML, independientemente de la implementación técnica real, que podría ser, por ejemplo, una implementación del Modelo de Objetos de Documento.

+0

pero ¿qué lo hace un infoset en comparación con un documento vainilla xml? –

17

XML no es texto. XML "es" el infoset XML. Esto puede ser serializado en texto en un documento XML, pero es el infoset XML la realidad.

El infoset puede existir en la memoria como un árbol DOM, por ejemplo. Existe en la memoria como la implementación de un modelo de objeto abstracto.

¿Qué pasa si lo serialé como UTF-8 y luego como UTF-16. Lo más probable es que los resultados sean dos conjuntos diferentes de bits, pero el mismo infoset.

Considere también que con el texto tiene sentido hacer cosas como la concatenación de cadenas. No desea concatenar un "<" en el medio de un elemento XML. Tienes que codificarlo primero. ¿Por qué tendrías que hacer esto si fuera solo texto? Si usó el DOM, por ejemplo, diría simplemente element.InnerText = "<"; Cuando se serializa, el "<" se codificará en "& lt;". Sin embargo, es el mismo infoset.

+0

No puedo visualizar este paradigma, de qué manera XML no es texto.No estoy siendo facético, pero ¿cómo 'xml' existe sin ser representado con corchetes angulares? –

+0

gracias. Aprecio el ejemplo. Originalmente vi el aspecto de codificación y el aspecto de "misma información", pero ¿esto es todo un infoset? ¿Qué hace que el XML Infoset sea distinto de cualquier definición de información? –

+0

+1 para examinar el modelo independientemente de sus bits. Ver también http://en.wikipedia.org/wiki/Theory_of_Forms –

2

Un infoset XML es un conjunto abstracto de conceptos tales como atributos y entidades que se pueden utilizar para describir un documento XML válido. Según la especificación, "el conjunto de información de un documento XML consiste en una serie de elementos de información: la información establecida para cualquier documento XML bien formado contendrá al menos un elemento de información del documento y varios otros".

El hecho de que un documento XML sea un infoset no significa que se ajusta a un XSD y es un documento XML válido.

+0

Gracias. Entonces, ¿qué estás diciendo es que al describir algo con atributos y entidades, es decir, cosas y cosas sobre cosas lo convierten en un infoset xml? Te remito a las preguntas originales, ¿por qué te molestas en definir una cosa así? ¿Qué lo necesita? –

+1

Permite que los otros estándares XML se describan en términos de este modelo abstracto en lugar de en términos de su efecto en alguna implementación concreta. Considere el hecho de que puede haber muchas implementaciones concretas, y el beneficio se vuelve mucho más claro. Tendría que describir XSLT varias veces para tener en cuenta las implementaciones por separado en lugar de describirlo una vez, en términos del infoset. –

0

Un buen ejemplo que acabo de encontrar es David Chappell's WCF PDF. Así es como funciona cuando se utiliza TCP, por ejemplo:

Para permitir un rendimiento óptimo cuando ambos partes en una comunicación se construyen en WCF, la codificación de alambre utilizado en este caso es una versión binaria optimizada de de SOAP . Los mensajes siguen se ajustan a la estructura de datos de un mensaje SOAP, se refiere como su conjunto de información, pero su codificación utiliza una representación binaria de ese conjunto de información en lugar de la estándar ángulo entre paréntesis y en texto formato de XML. Al usar esta opción, tiene sentido para comunicarse con la aplicación de cliente del centro de llamadas , ya que también se basa en WCF, y el rendimiento es una preocupación primordial.

+0

Cheers Rich, este es realmente el lugar donde se originó mi pregunta. No puedo ver qué distingue a XML Imfoset del caso general de Infoset en el caso de una cosa con atributos. En realidad, me siento estúpido porque soy la única persona que no puede ver por qué importa el XMK en el infoset XML. –

0

XML es un lenguaje, por lo tanto, tiene sintaxis, y XML Infoset tiene una especificación del modelo de datos, esto se debe a que las aplicaciones tienen necesidades basadas en el modelo de datos en lugar de la sintaxis; XML viene antes de XML Infoset; Referencia: consideraciones de protocolo para Acceso a base de enlaces web

+0

¿Puedes eludir esta respuesta por favor? ¿Cuál es básicamente el modelo de datos y cómo difiere del término infoset? –

0

XML Infoset es un requisito sobre cómo debe estructurar un documento XML serializado.

XML serializado puede tener diferentes formas, como algún formato binario (Fast Infoset) o texto (forma más popular).

Básicamente para el formato de documento XML (texto), cada elemento y atributo debe definirse en XSD a través del espacio de nombre correspondiente.

Here encontrará un ejemplo.

Cuestiones relacionadas