English to Spanish Translation by Trusted Translations, Inc.

Otras Traducciones de W3 en Spanish Translator Services

xml:id Versión 1.0
Este documento es una traducción de la Recomendación del W3C sobre xml:id Versión 1.0
La versión inglesa de esta especificación es la única con valor normativo y puede encontrarse en: http://www.w3.org/TR/2005/REC-xml-id-20050909/

W3C

xml:id Versión 1.0

Recomendación del W3C - 9 de septiembre de 2005

Esta versión:
http://www.w3.org/TR/2005/REC-xml-id-20050909/
Última versión:
http://www.w3.org/TR/xml-id/
Versión anterior:
http://www.w3.org/TR/2005/PR-xml-id-20050712/
Editores:
Jonathan Marsh, Microsoft <jmarsh@microsoft.com>
Daniel Veillard, experto invitado <daniel@veillard.com>
Norman Walsh, Sun Microsystems <Norman.Walsh@Sun.COM>

Por favor, consulte la sección de erratas de este documento, que puede incluir algunas correcciones normativas.

Vea también las traducciones.

Este documento también está disponible en los siguientes formatos, que no son normativos: XML.


Resumen

Este documento define el significado del atributo xml:id como un identificador en documentos XML y define el modo de procesar este atributo para reconocer los identificadores ante la falta de validación, sin acceder a recursos externos y sin depender de un subconjunto interno.

Estado del presente documento

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. Este documento ha sido elaborado por el W3C XML Core Working Group como parte de la Actividad en XML. Ha sido revisado por miembros del W3C y otras partes interesadas, y ha sido avalado 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.

La versión en inglés de esta especificación es la única con valor normativo. Pueden haber disponibles traducciones de este documento.

Si tiene algún comentario sobre este documento, envíelo a public-xml-id@w3.org, una lista de correo con un archivo público. Se encuentra disponible una lista de erratas para esta edición.

Este documento define el significado del atributo xml:id como identificador en documentos XML y define el modo de procesar este atributo para reconocer los identificadores sin validación, sin acceder a recursos externos y sin depender de un subconjunto interno de la DTD.

Este documento se basa en la Propuesta de recomendación de xml:id Versión 1.0 del 12 de julio de 2005. Los comentarios recibidos durante la revisión dieron lugar a correcciones menores de editorial. En el Informe de implementación se documentan pruebas de la interoperación entre al menos dos implementaciones de esta especificación. También hay disponible una suite de evaluación.

Este documento ha sido elaborado de acuerdo a la Política de patentes del W3C del 5 de febrero de 2004. El Grupo de Trabajo mantiene una lista pública de publicaciones de patentes pertinentes a este documento; en la página también se incluyen instrucciones para la publicación (y exclusión) de patentes. Toda persona que tenga conocimiento de una patente que, en su opinión, contenga Reivindicaciones Esenciales respecto de la presente especificación, deberá revelar la información de conformidad con la sección 6 de la Política de Patentes del W3C.

Índice

1 Introducción
2 Terminología
3 Sintaxis
4 Procesamiento de los atributos xml:id
5 Provisión de información a la aplicación
6 Errores
7 Conformidad
    7.1 Conformidad con xml:id
    7.2 Conformidad con el conjunto de información XML
8 Extensibilidad

Apéndices

A Referencias
B Referencias (no normativas)
C Efecto sobre la canonicalización (no normativo)
D Tecnologías de validación (no normativo)
    D.1 Con validación mediante DTD
    D.2 Con validación mediante esquema XML
    D.3 Con validación RELAX NG
E Normalización de valores de atributo en identificadores (no normativo)


1 Introducción

[XML 1.0] y [XML 1.1] ofrecen un mecanismo para marcar elementos con identificadores únicos, que consiste en declarar el tipo de un atributo como "ID", tras lo cual el analizador validará

La declaración de tipo ID para un atributo puede ocurrir en declaraciones incluidas ya sea en el subconjunto interno o en el externo de la DTD de un documento XML. Sin embargo, los procesadores conformes a XML no están obligados a procesar el subconjunto externo de la DTD; y algunas especificaciones, entre las que cabe destacar [SOAP], prohíben por completo el uso de DTDs, con lo que es imposible asegurar que todos los consumidores del documento XML puedan reconocer correctamente los identificadores.

Los identificadores también se pueden declarar mediante mecanismos externos. De especial interés son los [XML Schemas], que ofrecen un tipo "xs:ID" con las mismas restricciones de unicidad y validez que XML. Sin embargo, no existen garantías de que los consumidores tendrán a su disposición el esquema "correcto" o que, en caso de tenerlo, lo procesarán.

Para garantizar la robustez de XML en materia de enlace a subrecursos, es deseable algún mecanismo que permita a cualquier procesador de XML conforme (sea validador o no) reconocer los identificadores únicos de elementos. Esta especificación permite a los autores marcar los elementos con identificadores que cualquier procesador podrá reconocer, independientemente de la disponibilidad, o no, de declaraciones externas o internas, y del modo en que estén disponibles.

Otro problema es que los identificadores basados en DTD y en esquemas XML se exponen mediante mecanismos conceptuales diferentes: la propiedad del conjunto de información attribute type y la familia de propiedades type definition, respectivamente. Es deseable contar con un mecanismo uniforme para el reconocimiento de identificadores.

Esta especificación ofrece dicho mecanismo, al describir la semántica de los atributos xml:id. Esta especificación ha sido pensada como una capa de procesamiento separada, compatible con las tecnologías de validación existentes. Se recomienda a los implementadores ofrecer el procesamiento de xml:id y configurar como comportamiento predeterminado de sus procesadores la asignación de tipo ID.

El principio rector que ha guiado la elaboración de esta especificación es que el resultado de procesar un atributo xml:id debe ser el mismo que se obtendría si el procesador hubiera leído y empleado una declaración adecuada.

2 Terminología

["debe", "puede", etc.: Las palabras clave debe, no debe, requerido, deberá, no deberá, debería, no debería, recomendado, puede y opcional en esta especificación se interpretarán según lo descrito en [IETF RFC 2119].]

["Procesador de xml:id": Un procesador de xml:id es un módulo de software que opera en conjunto con un procesador de XML para brindar acceso a los identificadores presentes en un documento XML.]

["error de xml:id": Un error de xml:id es un error no grave que ocurre cuando un procesador de xml:id descubre que un documento ha infringido las restricciones impuestas por esta especificación.]

La validación es el proceso de comparar un documento XML (o parte de él) con una gramática o con un conjunto de reglas, para determinar si la estructura del documento cumple con las restricciones impuestas por la gramática o las reglas. Algunas tecnologías de validación también realizan asignación de tipos y, además de determinar si el documento satisface las restricciones indicadas, también determinan, por ejemplo, cuáles de los (elementos y/o) atributos son de tipo "ID".

Aunque a menudo se realicen juntas, la validación y la asignación de tipos no son un mismo proceso. Por ejemplo, un procesador de XML 1.0 no validador puede realizar la asignación de tipos usando las declaraciones del subconjunto interno solamente, sin tener en ningún momento información sobre la validez estructural del documento.

["asignación de tipo ID": El proceso de asignación de tipo ID hace que el valor de un atributo xml:id sea un identificador.] Esto a menudo se obtiene asignando al atributo el tipo "ID" en el conjunto de información o en un conjunto de información posterior a la validación de esquema (Post-schema-validation infoset, PSVI), pero no es el único mecanismo posible.

Observación:

El procesamiento de los identificadores en el nivel de la aplicación (incluida la determinación efectiva de los elementos a los que puede accederse a través de cada valor de identificador), excede el alcance de esta especificación.

3 Sintaxis

De acuerdo a [Namespaces in XML] (y [Namespaces in XML 1.1]), los prefijos que comienzan con "xml" están reservados para el uso de XML y sus especificaciones relacionadas. Esta especificación otorga licencia para el uso del atributo "xml:id" como una construcción sintáctica genérica para identificadores en XML, con la semántica que se especifica en el presente documento.

Se recomienda a los autores de documentos XML nombrar a sus atributos de identificación "xml:id", para así aumentar la interoperabilidad de estos identificadores en la Web.

En los procesadores de XML que tienen en cuenta los espacios de nombres, el prefijo "xml" está ligado al nombre del espacio de nombres http://www.w3.org/XML/1998/namespace, según se describe en Espacios de nombres en XML [Namespaces in XML] (y en [Namespaces in XML 1.1]). Obsérvese que los procesadores de XML que no tienen en cuenta los espacios de nombres pueden usar el atributo xml:id.

4 Procesamiento de atributos xml:id

Cada atributo xml:id se procesa de la siguiente manera:

  1. El valor del atributo se normaliza según las reglas para la normalización de valores de atributos en atributos de tipo ID. Consultar el apéndice E Normalización de valores de atributo en identificadores para más detalles.

    La propiedad normalized value del conjunto de información se actualiza con el valor normalizado.

  2. La asignación de tipo ID se lleva a cabo con el valor normalizado.

Un procesador de atributo xml:id debe verificar que todos los atributos xml:id respeten las siguientes restricciones:

Un procesador de xml:id debería verificar que se respeten las siguientes restricciones:

Se producirá un error de xml:id para cada atributo xml:id que no cumpla con las restricciones.

El procesador de xml:id asigna el tipo ID a todos los atributos xml:id, incluidos los que no cumplen con las restricciones.

Un procesador de xml:id debería actualizar la propiedad references del conjunto de información, según se describe en la Sección 2.3 de [XML Information Set] y actualizar todas las estructuras específicas de la implementación usadas para referencias cruzadas, de modo tal que quede reflejada la asignación de tipo ID.

Aunque muchas tecnologías de validación imponen la restricción de que un elemento XML puede tener como máximo un atributo de tipo ID, el procesamiento de xml:id no impone esa restricción.

Esta especificación define el procesamiento de xml:id, pero es la aplicación la que decide cuándo tendrá lugar dicho procesamiento. Los usuarios de aplicaciones que permiten modificar documentos XML pueden tener expectativas razonables de que se efectúe el procesamiento de xml:id cada vez que se modifique el valor de un identificador.

5 Provisión de información a la aplicación

Cuando se produce la asignación de tipo ID, el procesador de xml:id debe informar a la aplicación de los atributos xml:id asignados a la aplicación, pero el modo de hacerlo dependerá de cada implementación.

El requisito fundamental es que la aplicación sea informada de los resultados de la asignación de tipo ID.

6 Errores

Toda infracción de las restricciones contenidas en esta especificación da lugar a un error de xml:id. Estos errores no son graves, pero el procesador de xml:id debería informar de ellos. Por razones de interoperabilidad, se recomienda decididamente que los errores de xml:id no pasen inadvertidos para la aplicación.

7 Conformidad

7.1 Conformidad con xml:id

La conformidad con xml:id para las aplicaciones que dependen de procesadores de XML que usan tecnologías de validación consiste en el uso de la construcción xml:id según lo explicado en Procesamiento de los atributos xml:id y de conformidad con las restricciones de esta especificación y las reglas de la tecnología de validación.

La conformidad con xml:id para aplicaciones que dependen de procesadores de XML no validadores se define por el reconocimiento de los atributos xml:id según lo explicado en Procesamiento de los atributos xml:id y por la conformidad con las restricciones de esta especificación.

La conformidad con restricciones que “debe” verificarse es obligatoria. Se recomienda que las aplicaciones también verifiquen el cumplimiento de las otras restricciones. Esta especificación no define restricciones que sean simplemente opcionales.

Un documento se ajusta a esta especificación si no genera errores de xml:id.

7.2 Conformidad con el conjunto de información XML

Esta especificación es conforme a lo descrito en [XML Information Set]. Los siguientes ítems de información deben estar presentes en los conjuntos de información de entrada para permitir un correcto procesamiento:

  • Ítems de información de elemento con la propiedad attributes.

  • Ítems de información de atributo con propiedades namespace name, local name y normalized value.

Además, en el conjunto de información de salida pueden estar presentes las siguientes propiedades:

  • Propiedades attribute type para Ítems de información de atributo.

8 Extensibilidad

Esta especificación no es extensible. No está previsto que los diseñadores de aplicaciones puedan modificar el nombre del atributo xml:id, el conjunto de valores de atributos considerados identificadores o los lugares en donde pueden aparecer, ni que realicen otras extensiones.

A Referencias

IETF RFC 2119
RFC 2119: Key words for use in RFCs to Indicate Requirement Levels. Internet Engineering Task Force, 1997. (Véase http://www.ietf.org/rfc/rfc2119.txt.)
XML 1.0
Tim Bray, Jean Paoli, C.M. Sperberg-McQueen, y otros, editores. Extensible Markup Language (XML) 1.0 (Tercera Edición). World Wide Web Consortium, 2004. (Véase http://www.w3.org/TR/REC-xml/.)
XML 1.1
Tim Bray, Jean Paoli, C.M. Sperberg-McQueen, y otros, editores. Extensible Markup Language (XML) 1.1. World Wide Web Consortium, 2004. (Véase http://www.w3.org/TR/xml11/.)
Conjunto de información XML
John Cowan y Richard Tobin, editores. Conjunto de información XML (Segunda Edición). World Wide Web Consortium, 2004. (Véase http://www.w3.org/TR/xml-infoset/.)
Espacios de nombres en XML
Tim Bray, Dave Hollander y Andrew Layman, editores. Espacios de nombres en XML. World Wide Web Consortium, 1999. (Véase http://www.w3.org/TR/REC-xml-names/.)
Espacios de nombres en XML 1.1
Tim Bray, Dave Hollander, Andrew Layman y Richard Tobin, editores. Espacios de nombres XML 1.1. World Wide Web Consortium, 2004. (Véase http://www.w3.org/TR/xml-names11/.)

B Referencias (no normativas)

Esquemas XML
Henry S. Thompson, David Beech, Murray Maloney, Noah Mendelsohn, editores. Esquema XML, Parte 1: Estructuras. World Wide Web Consortium, 2001. (Véase http://www.w3.org/TR/xmlschema-1/.)
SOAP
Martin Gudgin, Marc Hadley, Noah Mendelsohn, y otros, editores. SOAP Versión 1.2, Parte 1: Messaging Framework. World Wide Web Consortium, 2003. (Véase http://www.w3.org/TR/soap12-part1/.)

C Efecto sobre la canonicalización (no normativo)

En la especificación Canonical XML Version 1.0 se describe un proceso para la herencia de los atributos del espacio de nombres xml: en un documento canonicalizado. Aunque el resultado de este proceso es razonable en el caso de atributos xml:lang o xml:space, procesar los atributos xml:id de este modo probablemente producirá documentos que contengan errores de xml:id, concretamente, valores de atributo xml:id que no sean únicos.

Esto aparentemente es un defecto en el diseño del XML Canónico. La especificación Exclusive XML Canonicalization Version 1.0 no incluye esta característica y tal vez sea más adecuada para documentos que contengan identificadores.

D Tecnologías de validación (no normativo)

Este apéndice describe el modo de interacción entre el procesamiento de xml:id y algunas tecnologías de validación.

D.1 Con validación mediante DTD

Se recomienda a los autores de declaraciones de tipo de documento usar el atributo xml:id al suministrar identificadores para elementos declarados en sus DTDs.

El siguiente fragmento de DTD es un ejemplo de declaración del atributo xml:id:

<!ATTLIST someElement
	xml:id     ID          #IMPLIED
>

Se recomienda a los autores de DTD declarar el tipo ID para los atributos cuyo nombre es xml:id. Un documento que use atributos xml:id cuyo tipo declarado no sea ID siempre generará errores de xml:id.

Los consumidores de documentos validados que usen atributos xml:id correctamente declarados pueden reconocer los identificadores por medio de la propiedad attribute type.

D.2 Con validación mediante esquema XML

Se recomienda a los autores de esquemas XML usar el atributo xml:id cuando suministren identificadores para elementos declarados en sus esquemas. Obsérvese que el modo más fácil de hacerlo es importar el esquema del XML namespace y usar la declaración de atributo allí contenida.

El siguiente fragmento de esquema XML para el espacio de nombres XML es un ejemplo de declaración del atributo xml:id:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
		   targetNamespace="http://www.w3.org/XML/1998/namespace">

	<xs:attribute name="id" type="xs:ID"/>

</xs:schema>

Se recomienda a los autores de esquemas XML declarar el tipo xs:ID para los atributos cuyo nombre es xml:id. Un documento que use atributos xml:id cuyo tipo declarado no sea xs:ID siempre generará errores de xml:id.

Los consumidores de documentos que validen los atributos xml:id mediante un esquema adecuado para el espacio de nombres XML pueden reconocer los identificadores por medio de la familia de propiedades type definition del PVSI.

Las aplicaciones pueden reconocer los atributos xml:id como identificadores usando conceptualmente un Procesador de esquema de conformidad mínima y el esquema indicado anteriormente.

Obsérvese que los efectos de procesar el esquema anterior mediante un Procesador de esquema de conformidad mínima puede imitarse buscando los atributos de nombre xml:id, y asegurando que el valor de esos atributos tenga la forma léxica correcta (NCName) y que el valor sea único dentro del documento.

D.3 Con validación RELAX NG

Se recomienda a los autores de gramáticas RELAX NG usar los atributos xml:id cuando suministren identificadores para elementos declarados en sus esquemas.

El siguiente fragmento de RELAX NG es un ejemplo de declaración del atributo xml:id:

<optional xmlns="http://relaxng.org/ns/structure/1.0"
			  datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  <attribute name="xml:id">
	<data type="ID"/>
  </attribute>
</optional>

Se recomienda a los autores de gramáticas RELAX NG declarar el tipo xs:ID para los atributos cuyo nombre es xml:id. Un documento que use atributos xml:id cuyo tipo declarado no sea xs:ID siempre generará errores de xml:id.

E Normalización de valores de atributo en identificadores (no normativo)

[XML 1.0] requiere que los analizadores normalicen todos los valores de atributo. La normalización expande las referencias a caracteres y entidades, y quita los caracteres de fin de línea. Los atributos de tipo ID están sujetos además a otras reglas de normalización, a saber: la eliminación de caracteres de espacio iniciales y finales, y la sustitución de secuencias de espacios con un único espacio.

El procesador de xml:id tiene que asegurar que se realicen ambos pasos de normalización sobre todos los atributos cuyo nombre sea xml:id. En particular, es posible que el analizador no haya realizado los pasos de normalización adicionales requeridos para los atributos de tipo ID, porque el atributo no estaba declarado o estaba declarado como ID.

Considérese el siguiente documento:

<!DOCTYPE doc [
<!ATTLIST doc xml:id ID #IMPLIED>
]>
<doc xml:id="  uno
">
<para xml:id="  dos
"></para>
</doc>

El valor inicial de xml:id en doc será "uno", porque el analizador sabía que era un ID. Pero el valor inicial en para será " dos ". Dado que el analizador no sabe que es un ID, no realizará los pasos adicionales de normalización requeridos.

Después del procesamiento de xml:id, el valor de los atributos xml:id en doc y para será "uno" y "dos", respectivamente. Estos valores correctamente normalizados se almacenarán en la propiedad normalized value del conjunto de información. Es decir que el procesamiento de xml:id modifica el conjunto de información si existen atributos xml:id parcialmente normalizados.

Observación:

Por razones de interoperabilidad, los creadores de documentos deberían usar en los atributos xml:id valores totalmente normalizados que sean NCNames válidos.