Versin en espaol: Traductores : Versión original: |
Copyright © 2001 W3C (MIT, INRIA, Keio), Todos los Derechos Reservados. W3C responsabilidad, marca registrada, uso del documento, y licencia de uso de software son aplicables.
Este documento propone un mecanismo, similar al HTML BASE para definir los URIs base para partes de documentos XML.
Este documento ha sido revisado por los miembros de W3C y otras partes interesadas y ha sido aprobado por el Director como una recomendación de W3C. Este es un documento estable y puede ser usado como material de referencia o ser citado como una normativa referencial desde otro documento. El rol de W3C dentro de la realización de la Recomendación es atraer la atención sobre esta especificación y promover su amplio despliegue. Con el fin de aumentar la riqueza funcional de la Web y su interoperabilidad.
Este documento ha sido creado por el Grupo de Trabajo W3C XML Linking como parte de la Actividad XML en el Dominio de Arquitectura W3C. Para profundizar la información sobre este trabajo, por favor revisar el Informe de Actividades XML.
Por favor reportar posibles errores en este documento a la lista pública de correo electrónico www-xml-linking-comments@w3.org (archivos disponibles en http://lists.w3.org/Archives/Public/www-xml-linking-comments/). Cualquier error confirmado será documentado en una lista de erratas disponible en http://www.w3.org/2001/06/xmlbase-errata.
La versión en inglés de esta especificación es la única versión normativa. Información sobre las traducciones de este documento son disponibles en http://www.w3.org/2001/06/xmlbase-translations.
Una lista de las Recomendacioes actuales W3C y otros documentos técnicos puede ser encontrada en http://www.w3.org/TR/.
1 Introducción
2
Terminología
3
Atributo xml:base
3.1 Codificación y Escape del URI Referencia
4 Resolviendo URIs Relativos
4.1 Relación con RFC 2396
4.2 Granularidad de información del URI base
4.3 Correspondencia entre los URIs con URIs base
5 Conformidad
A Referencias
B
Referencias (No-Normativo)
C Impactos sobre Otros Standards (No-Normativo)
El lenguaje XML Linking [XLink] define al Lenguaje de Marcado Extensible (XML) 1.0 [XML] elaborado para describir enlaces entre recursos. Uno de los requerimientos de base sobre XLink es el soportar HTML [HTML 4.01] enlazando conceptos de una forma genérica. El elemento HTML BASE es uno de los conceptos que ha sido tomado en cuenta por el Grupo de Trabajo XLink. BASE permite a los autores especificar claramente el URI base de un documento con el fin de permitir la resolución de URIs relativos en conecciones a imágenes externas, applets, programas de tratamiento de formularios, hojas de estilo, y otros.
Este documento describe un mecanismo para proveer servicio de URI base a XLink, más como una especificación modular, con el fin de que sea igualmente posible de ser usada dentro de otras aplicaciones XML beneficiándose así sobre el control adicional sobre URIs relativos sin tener que implementar completamente XLink y que puede hacer uso del mismo. La sintaxis consiste en un único atributo XML denominado
xml:base
.
El despligue de XML Base está realizado dentro de las referencias reglamentadas por las nuevas especificaciones, por ejemplo XLink y el XML Infoset. Las aplicaciones y las especificaciones constuidas subre estas nuevas tecnologías deberian nativamente soportar XML Base. El comportamiento del atributo xml:base
dentro de las aplicaciones basadas sobre las especificaciones que no tienen referencias normativas directas o indirectas dentro de XML Base no está definido.
[ Definición: Las palabras clave "DEBE" ( Must, Shall ), "NO DEBE" ( Must not, Shall not), "DEBERÍA" ( Should), "NO DEBERIA" (Should not), "RECOMENDADO" (Recommended), "REQUERIDO" ( Required), "PODRÍA" (May), y "OPCIONAL" ( Optional) en esta especificación deberán ser interpretados como está descrito en [IETF RFC 2119] .]
Los términos URI Base y URI Relativo son usados en esta especificación en la forma en que han sido definidos en [IETF RFC 2396].
Atributo
xml:baseEl atributo xml:base
puede ser insertado en documentos XML para especificar un URI base de otro URI base del documento o de la entidad externa. El valor de este atributo es interpretado como un URI Referencia como está definido en RFC 2396 [IETF RFC 2396], despues de ser procesado de acuerdo a la Sección 3.1.
Dentro de procesadores XML capaces de interpretar los Espacios de Nombres (namespace), el prefijo "xml" está dedicado al Espacio del Nombre (namespace) http://www.w3.org/XML/1998/namespace
tal como se ha descrito en el documento de Espacio de Nombres (namespace) en XML [XML Names]. Note que xml:base
pueden ser todavía usados por los procesadores XML, que no comprenden los Espacios de Nombres (namespace).
Un ejemplo de xml:base
en un documento simple conteniendo XLinks seguidos. XLink normativamente hace referencia a XML Base para interpretación de URI relativos referenciados en xlink:href
atributos.
<?xml version="1.0"?> <doc xml:base="http://example.org/today/" xmlns:xlink="http://www.w3.org/1999/xlink"> <head> <title>Virtual Library</title> </head> <body> <paragraph>See <link xlink:type="simple" xlink:href="new.xml">what's new</link>!</paragraph> <paragraph>Check out the hot picks of the day!</paragraph> <olist xml:base="/hotpicks/"> <item> <link xlink:type="simple" xlink:href="pick1.xml">Hot Pick #1</link> </item> <item> <link xlink:type="simple" xlink:href="pick2.xml">Hot Pick #2</link> </item> <item> <link xlink:type="simple" xlink:href="pick3.xml">Hot Pick #3</link> </item> </olist> </body> </doc> |
Los URIs en este ejemplo son transformados en URIs completos como se indica:
"what's new" lleva al URI "http://example.org/today/new.xml"
"Hot Pick #1" lleva al URI "http://example.org/hotpicks/pick1.xml"
"Hot Pick #2" lleva al URI "http://example.org/hotpicks/pick2.xml"
"Hot Pick #3" lleva al URI "http://example.org/hotpicks/pick3.xml"
El juego de carácteres autorizados en los atributos xml:base
es el mismo que por XML, denominado [Unicode]. Sin embargo, algunos carácteres Unicode no son permitidos entre las referencias del URI , y de esta manera los procesadores deben codificar y evitar estos carácteres para tener una referencia URI válida a partir del valor del atributo.
Los carácteres no permitidos incluyen todos los carácteres no-ASCII, más los carácteres excuidos enlistados en la Sección 2.4 de [IETF RFC 2396], a excepción de el símbolo de número (#) y el símbolo porcentaje (%) y los carácteres de paréntesis cuadrados permitidos en [IETF RFC 2732]. Los carácteres no permitidos deben ser evitados de la siguiente manera:
Cada carácter no permitido es convertido a UTF-8 [IETF RFC 2279] como uno o más bytes.
Todos los bytes correspondientes a carácteres no autorizados son evitados con el mecanismo de escape de URI (lo que quiere decir, convertir en %HH, donde HH es la notación hexadecimal del valor del byte).
El carácter original es reemplazado por la secuencia de carácteres obtenida.
RFC 2396 [IETF RFC 2396] provee la manera de incluir URI base al interior de un documento. Las reglas para determinar el URI base puede ser recapitulados como se indica (en orden de más alta prioridad a la menor factible):
El URI base está incluido el el contenido del documento.
El URI base es el de entidad envolvente (mensaje, documento, o ninguno).
El URI base es el URI usado para recuperar la entidad.
El URI base es definido por el contexto de la aplicación.
Nota:
El término "entidad" en los puntos #2 y #3 precedentes utilizan la definición del término explicada en RFC 2396. En otras partes de este documento el término "entidad" es usado en el contexto XML.
Este documento especifica los detalles de la regla #1 con el fin de incorporar la información del URI base dentro del caso particular de los documentos XML.
Los URIs relativos presentados en un documento XML son siempre resueltos tanto como para un elemento, una entidad documento, o una entidad externa. No hay manera de definir una granularidad más fina, que aquella una información sobre la base de un nivel atributo, carácter, o entidad. Ninguna entidad interna, que sea declarada en el subarreglo interno o en un DTD externo, ni en el texto de posición libre (el texto no incluido en dentro de un elemento) en una entidad externa, son considerados a definir un URI base separado del URI base tomando en cuenta la entidad referencial.
El URI base de una entidad documento o en una entidad externa está determinado por las reglas del RFC 2396, lo que quiere decir, que el URI base es el URI usado para extraer la entidad documento o la entidad externa.
El URI base de un elemento es:
el URI base está definido para un atributo xml:base
sobre el elemento, si aquel existe, sino
el URI base de los elemento paterno al interior del documento o entidad externa, si existen, sino
el URI base de la entidad documento document entity o entidad externa que contienen al elemento.
El URI base correspondiente a un URI relativo dado en un documento XML es determinado como sigue:
El URI base para un URI referencia que aparece dentro del contenido del texto es el URI base de el elmento contenido en el texto.
El URI base para un URI referencia que aparece en un atributo xml:base
es el URI base del elemento paterno del elemento que soporta al atributo xml:base
, si aquel existe al interior de la entidad documento o de la entidad externa, sino es el URI base de la entidad documento o entidad externa el que contiene el elemento.
El URI base de un URI referencia aparece dentro de cualquier otro atributo valor, incluyendo los valores de atributos por defecto, es el URI base del elemento que soporta al atributo.
El URI base para un URI referencia que aparece dentro del contenido de una instrucción de proceso es el URI base de el elemento paterno de la instrucción de proceso, si este existe dentro de la entidad documento o entidad externa,, sino el URI base de la entidad documento o entidad externa que contiene la instrucción de proceso.
Nota:
La presencia de atributos xml:base
podría dar lugar a resultados inesperados en el caso donde el valor del atributo está prvisto , no directamente dentro de la entidad del documento XML, sino a travéz de un atributo de defecto declarado en una entidad externa. Tales declaraciones pueden no ser leidas por software que está basado en un procesador XML no validado. Muchas aplicaciones XML fallan al no exigir ninguna validción de los procesadores XML. Para un funcionamiento correcto con aquellas aplicaciones, los valores de xml:base
deberan ser provistos directamente o por atributos por defecto declarados en el subarreglo interno de DTD.
XML Base define un mecanismo para incluir la información de URI base al interior de un documento XML. El mismo que no define un mecanismo para reconocer su contenido o los atributos de valor que pueden contener URIs. Esto es unicamente definido por las especificaciones o aplicaciones que asignan semántica al vocabulario.
Una de las intenciones de XML Base es que las futuras especificaciones y revisiones de vocabularios XML identifiquen aquellas partes del documento XML que son consideradas como URIs, y proveer referencia normativa a esta especificación con el fin de asegurar que URIs relativos sean tratados de una manera consistente a lo largo de documentos XML .
El impacto de XML Base sobre otros standards (a la fecha de publicación de este documento) son descritas a continuación.
XML 1.0 [XML] usa URI referencia en el sistema de identificadores para las entidades externas. Desde que estas declaraciones aparecen al exterior del elemento documento (en un subset interno o un DTD externo), las reglas de alcance de xml:base
impiden estos estos URIs ser afectados por el valor de xml:base
.
El Infoset XML [XML Infoset] define la propiedad del URI base de los elementos de información. La última especificación Infoset soporta XML Base con fin de determinar el valor de esta propiedad. Interfaces, aplicaciones y especificaciones referenciando asi la propiedad de este infoset soportaran XML Base nativamente.
Los espacios de nombre en XML [XML Names] usan los URI referencia, los cuales estan actualmente definidos no deberian ser resueltos relativamente al URI base definido por xml:base
con el fin de identificar los espacios de nombre. Los proceso de alto nivel que derencian espacios de nombre URIs no son cubiertos por las especificaciones de Espacio de Nombre y podrían a su opción especificar que xml:base
debe servir con las necesidades de extracción de recursos de aquellos URIs.
El modelo de datos de XPath [XPath] no conserva ni la información del URI base ni las límites de entidades externas y de este modo es insuficiente para permitir la resolución de referencias a URI relativos dentro de estas entidades a ser resueltas correctamente. Esto incluye las referencias de URI relativo dentro de los atributos xml:base
.
Las extensiones XSLT [XSLT] al modelo de datos XPath provee que la información del URI base es conservada, pero define esta información en una forma que hace imposible el soporte para XML Base. Futuras versiones de XSLT podrïan requerir soporte para XML Base.
XML Schema Parte 2: Tipos de datos [XML Datatypes] define un tipo de datos primitivos uriReference
. La especificación sobre los tipos de datos XML puede exigir que las aplicaciones que reconocen este tipo de datos y resuelven de ellos URIs deben tomar en cuenta a XML Base.
La especificación XLink [XLink] requiere soporte para XML Base.
XHTML [XHTML] usa los URI referencia adelantandose a aquellos expresables en XLink. Esta URI referencia puede ser resueltos por una aplicación relativa al URI Base definido por XML Base. La especificación XHTML podría querer describir su nivel de soporte de XML Base.