Esta traducción se concluyó, el 6 de febrero de
2003.
El documento original de la traducción se encuentra en: http://pedrini.narod.ru/w3c/xmlbase/recxmlbase20010627es.html
Los posibles errores presentes en este documento, debidos a la
traducción, son responsabilidad de los traductores y no
son achacables en modo alguno al W3C. Para
cualquier comentario sobre la traducción dirigirse a
Pedro Silva en <po2@yandex.ru> o a Yesenia
Moreno en <yesenka@mail.ru>.
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.