|
||
Conjunto de información XML (Segunda edición) Este documento es una traducción de la Recomendación del W3C sobre Conjunto de información XML (Segunda edición) La versión inglesa de esta especificación es la única con valor normativo y puede encontrarse en: http://www.w3.org/TR/xml-infoset |
Por favor, consulte la sección de erratas de este documento, que puede incluir algunas correcciones normativas.
Vea también las traducciones.
Copyright ©1999-2004 W3C® (MIT, ERCIM, Keio), todos los derechos reservados. Se aplican las reglas de responsabilidad, marca registrada, utilización de documentos y licencias de software del W3C.
La presente especificación ofrece un conjunto de definiciones para usar en otras especificaciones que deban hacer referencia a la información contenida en un documento XML.
Esta sección describe el estado del presente documento al momento de su publicación. El presente documento puede ser reemplazado por otros. Una lista de las publicaciones actuales del W3C y la última revisión del presente informe técnico puede hallarse en el Índice de informes técnicos del W3C en http://www.w3.org/TR/.
Este documento es una Recomendación del W3C. Ha sido revisado por miembros del W3C y otras partes interesadas, y ha sido avalado como Recomendación del W3C por el Director. Es un documento estable y puede ser empleado como material de referencia o citado como referencia normativa en otro documento. El papel del W3C en la creación de la Recomendación es poner atención en la especificación y fomentar su amplia implementación. Esto mejora la funcionalidad y la interoperabilidad de la Web.
El presente documento actualiza el conjunto de información a fin de cubrir XML 1.1 y Namespaces 1.1; aclara las consecuencias de ciertas clases de invalidez; y corrige algunos errores tipográficos. Es un producto de la Actividad del W3C en XML. La versión en inglés de esta especificación es la única con valor normativo. Sin embargo, para ver las traducciones del presente documento, visite http://www.w3.org/2003/03/Translations/byTechnology?technology=xml-infoset.
En la página de divulgación pública de derechos de propiedad intelectual del Grupo de Trabajo es posible hallar documentación sobre propiedad intelectual que puede ser pertinente para esta recomendación.
Si encuentra errores en este documento, por favor informe de ellos a www-xml-infoset-comments@w3.org (se encuentran disponibles archivos públicos). La lista de erratas para esta edición se encuentra disponible en http://www.w3.org/2001/10/02/xml-infoset-errata.html.
La presente especificación define un conjunto de datos abstracto llamado Conjunto de información XML (Infoset). Su objetivo consiste en ofrecer un conjunto coherente de definiciones para usar en otras especificaciones que deban hacer referencia a la información contenida en un documento XML bien formado [XML].
Esta especificación no pretende ser exhaustiva; para decidir la inclusión de un ítem de información o una propiedad, el criterio principal empleado fue la utilidad que pudieran tener para futuras especificaciones. Tampoco constituye un conjunto de información mínima que deba ser devuelta por un procesador de XML.
Un documento XML posee un conjunto de información si el documento está bien formado y satisface las restricciones en materia de espacios de nombres que se describen más adelante. Que el documento XML sea válido no es una condición para que tenga un conjunto de información.
Los conjuntos de información pueden crearse mediante otros métodos distintos al análisis de un documento XML, no descritos en la presente especificación. Véase Conjuntos de información sintéticos, más adelante.
El conjunto de información de un documento XML está compuesto por cierta cantidad de ítems de información; el conjunto de información de todo documento XML bien formado contiene al menos un ítem de información de documento y varios otros. Un ítem de información es una descripción abstracta de cierta parte de un documento XML y cada ítem de información tiene asociado un conjunto de propiedades con nombre. En la presente especificación, los nombres de las propiedades se muestran entre corchetes, [así]. La lista de los tipos de ítems de información se encuentra en la sección 2.
La especificación del conjunto de información XML no exige ni favorece una interfaz o clase de interfaces en particular. Por razones de claridad y sencillez, la presente especificación presenta el conjunto de información en la forma de un árbol modificado, pero no es obligatorio presentar los conjuntos de información XML por medio de estructuras de árbol. Otros tipos de interfaces, entre ellas (sin que esta lista sea exhaustiva) interfaces basadas en eventos e interfaces basadas en consultas, podrán también presentar información compatible con el conjunto de información XML.
Los términos "conjunto de información" e "ítem de información" son de significado similar a los términos genéricos "árbol" y "nodo", según éstos se emplean en informática. Sin embargo, en esta especificación se emplea el primer par de términos para reducir el riesgo de confusión con otros modelos de datos concretos. No existe una correspondencia biunívoca entre los ítems de información y el DOM o el "árbol" y los "nodos" del modelo de datos XPath.
En esta especificación, el significado de las palabras "debe", "debería" y "puede" es el indicado en [RFC2119], con la salvedad de que no aparecen en mayúsculas.
Diferentes versiones de la especificación de XML pueden indicar diferentes reglas para el análisis de los documentos. Por definición, el conjunto de información de un documento XML es el que se obtiene al analizar el documento según las reglas de la especificación cuya versión se corresponde con la del documento. Si un documento no indica su número de versión, se considerará que corresponde a la versión 1.0. Cuando un procesador de XML acepta un documento de una versión que no comprende, puede ocurrir que no sea capaz de producir el conjunto de información correcto.
Los documentos XML que, a pesar de estar técnicamente bien formados, no sean compatibles con lo indicado en [Namespaces], no se considera que tengan un conjunto de información propiamente dicho. Es decir, esta especificación no define un conjunto de información para aquellos documentos que tienen nombres de elementos o atributos donde los dos puntos se emplean en modos distintos a los prescritos en [Namespaces].
Además, esta especificación no define un conjunto de información para aquellos documentos que emplean referencias URI relativas en las declaraciones de espacio de nombres. Esto es así de conformidad con la decisión del Grupo de Interés Plenario de XML del W3C, descrito en [Relative Namespace URI References].
El valor de una propiedad [namespace name] es el valor normalizado del correspondiente atributo de espacio de nombres, sin que el procesador le aplique ulteriores mecanismos de escape de URI.
Un conjunto de información describe el documento XML al que corresponde con las referencias a entidades ya expandidas, es decir, representadas por los ítems de información correspondientes al texto de reemplazo. Sin embargo, en varias circunstancias el procesador no puede realizar esta expansión. Una entidad puede no estar declarada o ser irrecuperable. Un procesador no validador tal vez no lea todas las declaraciones, y aún cuando lo hiciera, puede ocurrir que no expanda todas las entidades externas. En estos casos, para representar la referencia a la entidad se emplea un ítem de información de referencia a entidad no expandida.
Los valores de todas las propiedades en el conjunto de información toman en cuenta la normalización de fin de línea descrita en [XML], 2.11 "Manejo de fin de línea".
Varios ítems de información tienen una propiedad [base URI] o [declaration base URI]. Estas propiedades se calculan de acuerdo a lo descrito en [XML Base]. Obsérvese que la recuperación de un recurso puede suponer una redirección en el nivel del analizador (por ejemplo, en un resolvedor de entidades) o en un nivel inferior, en cuyo caso el URI base es el URI final empleado para recuperar el recurso después de todas las redirecciones.
El valor de estas propiedades no refleja aquellos mecanismos de escape de URI que puedan ser necesarios para la recuperación del recurso, pero puede incluir caracteres con mecanismos de escape si esos caracteres fueron especificados en el documento o devueltos por un servidor en el caso de una redirección.
En algunos casos (por ejemplo, un documento leído desde una cadena o una canalización) las reglas descritas en [XML Base] pueden llevar a que un URI base sea dependiente de la aplicación. En estos casos, la presente especificación no define el valor de la propiedad [base URI] o [declaration base URI].
Al resolver URI relativos, debería priorizarse la propiedad [base URI] por sobre los valores de los atributos xml:base, que pueden ser incoherentes en el caso de conjuntos de información sintéticos.
En ocasiones, algunas propiedades pueden contener el valor desconocido o sin valor, en cuyo caso se dice que el valor de la propiedad es desconocido o que la propiedad no tiene un valor, respectivamente. Estos valores son distintos entre sí y respecto de cualquier otro valor. En particular, son distintos de la cadena vacía, del conjunto vacío y de la lista vacía, cada uno de los cuales sencillamente no contiene miembros. En esta especificación no se utiliza el término nulo, ya que en algunas comunidades tiene connotaciones particulares que no siempre coinciden con las que aquí se pretenden.
Como ya hemos mencionado, un documento XML no necesita ser válido para tener un conjunto de información. Sin embargo, ciertas clases de invalidez afectan los valores asignados a algunas propiedades. Por ejemplo, puede ocurrir que falten declaraciones de entidades, notaciones, elementos y atributos. Las notaciones y los elementos pueden estar declarados varias veces (la presencia de varias declaraciones para entidades y atributos es válida). Un ID puede estar indefinido o definido varias veces. Cuando fuera pertinente, se señalará explícitamente en las definiciones de los ítems de información que se dan más adelante.
La presente especificación describe el conjunto de información que resulta del análisis de un documento XML. Los conjuntos también pueden construirse por otros medios; por ejemplo, mediante el uso de una API como el DOM o por la transformación de un conjunto de información existente.
Un conjunto de información que corresponda a un documento real debe necesariamente ser coherente de diversas maneras; por ejemplo, la propiedad [in-scope namespaces] de un elemento debe ser coherente con las propiedades [namespace attributes] del elemento y sus ancestros. Para conjuntos de información construidos por otros medios esta coherencia puede no ser cierta. En tal caso, no habrá un documento XML que se corresponda con el conjunto de información, y para serializar el conjunto será necesario resolver las incoherencias (por ejemplo, imprimiendo declaraciones de espacios de nombres que se correspondan con los espacios de nombres en ámbito).
Un conjunto de información puede contener hasta once tipos diferentes de ítems de información, que se detallan en las secciones siguientes. Cada ítem de información contiene propiedades. Para facilidad de referencia, a cada propiedad se le asigna un nombre, indicado [así]. Para cada ítem de información se ofrecen enlaces a una definición y/o sintaxis en la Recomendación XML 1.0 [XML].
Definición XML: documento (Sección 2, Documentos)
Sintaxis XML: [1] Documento (Sección 2.1, Documentos XML bien formados)
En cada conjunto de información existe exactamente un ítem de información de documento, a partir de cuyas propiedades se accede a todos los demás ítems, ya sea directamente o indirectamente a través de las propiedades de otros ítems de información.
El ítem de información de documento tiene las siguientes propiedades:
Definición XML: elemento (Sección 3, Estructuras Lógicas)
Sintaxis XML: [39] Elemento (Sección 3, Estructuras Lógicas)
Existe un ítem de información de elemento para cada elemento que aparece en el documento XML. Uno de los ítems de información de elemento es el valor de la propiedad [document element] del ítem de información de documento y se corresponde con la raíz del árbol de elementos, mientras que todos los demás ítems de información de elemento son accesibles recorriendo recursivamente la propiedad [children].
Un ítem de información de elemento tiene las siguientes propiedades:
xmlns
, cuya propiedad [prefix] no tiene un
valor) tienen un URI de espacio de nombres igual a
http://www.w3.org/2000/xmlns/
. Si el elemento no tiene
declaraciones de espacio de nombres, este conjunto no tiene
miembros.xml
, que está implícitamente ligado al espacio de
nombres http://www.w3.org/XML/1998/namespace
. pero no
contiene un ítem con el prefijo xmlns
(que se usa para
declarar espacios de nombres), ya que una aplicación no puede
encontrar nunca un elemento o un atributo con ese prefijo. El
conjunto incluye los ítems de espacio de nombres correspondientes a
todos los miembros de [namespace attributes], salvo los que representen declaraciones de la forma
xmlns="" o xmlns:name="", que no declaran un espacio de nombres
sino que anulan el espacio de nombres y los prefijos
predeterminados. Al resolver los prefijos de nombres
calificados, debería darse prioridad a esta propiedad por sobre la
propiedad [namespace attributes] (pueden ser incoherentes en el
caso de conjuntos de información
sintéticos).Definición XML: atributo (Sección 3.1, Etiquetas de apertura, Etiquetas de cierre y Etiquetas de elemento vacío)
Sintaxis XML: [41] Atributo (Sección 3.1, Etiquetas de apertura, Etiquetas de cierre y Etiquetas de elemento vacío)
Existe un ítem de información de atributo para cada atributo (especificado o tomado por defecto) de cada elemento en el documento, incluidos los que son declaraciones de espacio de nombres. Sin embargo, estos últimos aparecen como miembros de la propiedad [namespace attributes] de un elemento, y no como su propiedad [attributes].
Los atributos declarados en la DTD que no tengan valor predeterminado y que no estén especificados en la etiqueta de apertura del elemento no se representan como ítems de información de atributo.
Un ítem de información de atributo tiene las siguientes propiedades:
Definición XML: instrucción de procesamiento (Sección 2.6, Instrucciones de procesamiento)
Sintaxis XML: [16] IP (Sección 2.6, Instrucciones de procesamiento)
Hay un ítem de información de instrucción de procesamiento para cada instrucción de procesamiento que aparece en el documento XML. No se consideran instrucciones de procesamiento la declaración XML y las declaraciones textuales de las entidades externas analizadas.
Un ítem de información de instrucción de procesamiento tiene las siguientes propiedades:
xml:base
de los elementos.Definición XML: Sección 4.4.3, Incluido en caso de validación
Un ítem de información de referencia a entidad no expandida sirve como marcador de posición mediante el cual un procesador de XML puede señalar el lugar donde no ha expandido una entidad analizada externa. Hay uno de estos ítems de información para cada referencia a una entidad general externa no expandida dentro del contenido de un elemento. Un procesador de XML validador, o no validador que procese un documento válido y lea todas las entidades generales externas, jamás generará ítems de información de referencia a entidad no expandida.
Un ítem de información de referencia a entidad no expandida tiene las siguientes propiedades:
Sintaxis XML: [2] Carácter (Sección 2.2, Caracteres)
Hay un ítem de información de carácter para cada carácter de datos que aparece en el documento, ya sea literalmente, como referencia de carácter o dentro de una sección CDATA.
Cada carácter es un ítem de información lógicamente separado, pero las aplicaciones XML tienen libertad para agrupar los caracteres en secuencias más largas cuando fuera necesario o deseable.
Un ítem de información de carácter tiene las siguientes propiedades:
Definición XML: comentario (Sección 2.5, Comentarios)
Sintaxis XML: [15] Comentario (Sección 2.5, Comentarios)
Hay un ítem de información de comentario para cada comentario XML contenido en el documento original, salvo los que aparecen en la DTD (que no están representados).
Un ítem de información de comentario tiene las siguientes propiedades:
Definición XML: declaración de tipo de documento (sección 2.8, Prólogo y Declaración de tipo de documento)
Sintaxis XML: [28] declaración de tipo de documento (sección 2.8, Prólogo y Declaración de tipo de documento)
Si el documento XML tiene una declaración de tipo de documento, entonces el conjunto de información contiene un único ítem de información de declaración de tipo de documento. Obsérvese que las entidades y las notaciones se incluyen como propiedades del ítem de información de documento, no del ítem de información de declaración de tipo de documento.
El ítem de información de declaración de tipo de documento tiene las siguientes propiedades:
Definición XML: entidad (sección 4, Estructuras físicas)
Sintaxis XML: [71] GEDecl (sección 4.2, Entidades)
Existe un ítem de información de entidad no analizada para cada entidad general no analizada declarada en la DTD.
Un ítem de información de entidad no analizada tiene las siguientes propiedades:
Definición XML: notación (sección 4.7, Notaciones)
Sintaxis XML: [82] Declaración de notación (sección 4.7, Notaciones)
Hay un ítem de información de notación para cada notación declarada en la DTD.
Un ítem de información de notación tiene las siguientes propiedades:
Cada elemento en el documento tiene un ítem de información de espacio de nombres para cada espacio de nombres en cuyo alcance se encuentre dicho elemento.
Un ítem de información de espacio de nombres tiene las siguientes propiedades:
xmlns:
. Si el nombre
de atributo es sencillamente xmlns
, de modo que es la
declaración del espacio de nombres predeterminado, esta propiedad
no tiene un valor.Puesto que el propósito del conjunto de información es brindar un conjunto de definiciones, la conformidad es una propiedad de las especificaciones que usan estas definiciones y no de sus implementaciones.
Las especificaciones referidas a conjuntos de información deben:
Si una especificación permite la construcción de un conjunto de información con incoherencias, según lo descrito precedentemente en Conjuntos de información sintéticos puede describir el modo de resolver dichas incoherencias, y debería hacerlo si especifica modos de serializar el conjunto de información.
http://www.w3.org/TR/REC-xml-names
.http://www.w3.org/TR/xml-names11
.http://www.ietf.org/rfc/rfc2119.txt
.http://www.w3.org/TR/REC-xml
.http://www.w3.org/TR/xml11
.http://www.w3.org/TR/xmlbase
.http://www.w3.org/TR/REC-DOM-Level-1
.http://www.w3.org/TR/NOTE-xptr-infoset-liaison
.http://www.w3.org/2000/09/xppa
.http://www.w3.org/TR/xml-infoset-rdfs
.Aunque la Recomendación XML [XML] se ocupa ante todo de la sintaxis de XML, también incluye algunos requisitos concretos de provisión de información para los procesadores de XML.
Estos requerimientos incluyen notificar de los errores, que están fuera del alcance de esta especificación, y suministrar información sobre el documento. Todos los requerimientos de XML para la provisión de información del documento se han integrado en esta especificación; los números entre paréntesis remiten a las secciones de la Recomendación XML:
En el siguiente documento XML de ejemplo:
<?xml version="1.0"?> <msg:message doc:date="19990421" xmlns:doc="http://doc.example.org/namespaces/doc" xmlns:msg="http://message.example.org/" >Phone home!</msg:message>
El conjunto de información de este documento XML contiene los siguientes ítems de información:
http://message.example.org/
", su parte local es
"message
" y su prefijo es "msg
".http://doc.example.org/namespaces/doc
", su
parte local es "date
", su prefijo es
"doc
" y su valor normalizado es
"19990421
".http://www.w3.org/XML/1998/namespace
,
http://doc.example.org/namespaces/doc
y
http://message.example.org/
.La siguiente información no está representada en la versión actual del conjunto de información XML (esta lista no pretende ser exhaustiva):
<foo<//>
y
<foo></foo>
.Véase en Esquema RDF para el conjunto de información XML una caracterización formal del conjunto de información.