1.A versão oficial e original, em inglês, deste documento, encontra-se em: http://www.w3.org/TR/xmlbase/ e os seus direitos são conforme:
Copyright ©2002 W3C® (MIT, INRIA, Keio), Todos os direitos reservados. São aplicáveis as disposições do W3C relativas a responsabilidade, marcas, uso de documentos e licença de software
2. A única versão normativa deste documento é a versão em língua inglesa que se encontra no sítio do W3C.
3. O presente documento traduzido para a língua portuguesa do Brasil, pode conter erros de tradução.
Este documento foi traduzido em 20 de setembro de 2005 por: Maurício Samy Silva e encontra-se hospedado no seu sítio "CSS para WebDesign" em http://www.maujor.com/
A traduçao para a língua portuguesa do Brasil, foi para este documento. Vale dizer, as páginas remetidas pelos links aqui indicados, estão em sua versão original em língua inglesa.
Por favor, relate erros encontrados neste documento para
Maurício Samy Silva
Copyright © 2001 W3C® (MIT, INRIA, Keio), Todos os direitos reservados. São aplicáveis as disposições do W3C relativas a responsabilidade, marcas, uso de documentos e licença de software.
Este documento propõe um mecanismo semelhante ao do elemento BASE do HTML, para definir URIs base em documentos XML.
Este documento foi revisado pelos membros do W3C e por outras partes interessadas e endossado pelo Diretor como uma Recomendação do W3C. É um documento estável e pode ser usado como fonte e citado como referência normativa por outros documentos. A função do W3C ao produzir uma Recomendação é a de torná-la amplamente conhecida e de promover sua completa implementação. Isto incrementa a funcionalidade e a interoperabilidade da Web.
Este documento foi produzido pelo Grupo de Trabalho para XML Linking do W3C como parte das atividades XML do W3C Architecture Domain. Para outras informações relacionadas a este trabalho consulte XML Activity Statement.
Por favor, informe possíveis erros encontrados neste documento para uma lista pública de email [email protected] (arquivos em http://lists.w3.org/Archives/Public/www-xml-linking-comments/). Qualquer erro comprovado será lançado em uma errata disponível para consulta em http://www.w3.org/2001/06/xmlbase-errata.
A única versão normativa desta especificação é a versão inglesa. Para verificar a existência de traduções disponíveis para este documento, ver http://www.w3.org/2001/06/xmlbase-translations.
Uma listagem das Recomendações W3C e de outros documentos técnicos pode ser encontrada em http://www.w3.org/TR/.
1 Introdução
2 Terminologia
3 Atributo xml:base
3.1 Codificação e escape em URI de referência
4 Convertendo URIs relativas
4.1 Referências às RFC 2396
4.2 Granularidade das informações sobre a URI base
4.3 Correspondência de URIs com as URIs base
5 Conformidade
A Referências
B Referências (não normativas)
C Impacto sobre outras standards (não normativas)
A linguagem XML Linking [XLink] definida pelos critérios da Extensible Markup Language (XML) 1.0 [XML] permite descrever links entre documentos relacionados. Um dos requisitos de XLink é o de dar suporte para links escritos genericamente conformes com o HTML [HTML 4.01] . O suporte ao elemento BASE do HTML foi considerado pelo Grupo de Trabalho de XLink. O elemento BASE possibilita aos autores definir uma URI base para links declarados de forma relativa para imagens externas, applets, programas de processamento de formulários, folhas de estilos, etc.
Este documento, em forma de especificação modular descreve um mecanismo para fornecer as facilidades de uma URI base para XLink, e assim permitir que outras aplicações XML, ainda que construidas sem fazer uso de XLink, possam se beneficiar dela. A sintaxe consiste de uma simples atributo XML, assim escrito: xml:base
.
O desenvolvimento de XML Base é direcionado para uma referência normativa por novas especificações, por exemplo: XLink e XML Infoset. Aplicações e especificações construidas segundo estas novas tecnologias devem oferer suporte nativo para XML Base. O comportamento de atributos xml:base
para aplicações baseadas em especificações construidas sem base direta ou indireta em referências normativas a XML Base é indefinido.
[Definição: As palavras chaves must, must not, required, shall, shall not, should, should not, recommended, may, e optional, constantes desta especificação, devem ser interpretadas como descrito em [IETF RFC 2119].]
(NT: Estas palavras chaves, por seu estrito carater normativo serão traduzidas e adicionalmente permanecerão intactas, dentro do texto onde aparecem nestas especificações)
Os termos URI base e URI relativa são usados nesta especificação com o significado como são definidos em [IETF RFC 2396].
xml:base
O atributo xml:base
pode may ser inserido em documentos XML para definir uma URI diferente da URI base do documento ou como uma entidade externa. O valor deste atributo, após processamento de acordo com a Seção 3.1 será interpretado como uma URI de referência conforme definido nas RFC 2396 [IETF RFC 2396].
Em processadores XML que tratam namespaces, o prefixo "xml" está restrito aos nomes de namespace http://www.w3.org/XML/1998/namespace
como descrito em Namespaces no XML
[XML Names]. Notar que xml:base
pode ainda ser usado por processadores XML que não tomam ciência de namespace.
A seguir um exemplo de uso de xml:base
em um documento simples contendo
XLinks. XLink conforme as normas se reporta a XML Base para a interpretação de URI de referência através do atributo xlink:href
.
<?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> |
As URIs relativas neste exemplo são convertidas em URIs completas como mostrado a seguir:
"what's new" convertida para a URI "http://example.org/today/new.xml"
"Hot Pick #1" convertida para a URI "http://example.org/hotpicks/pick1.xml"
"Hot Pick #2" convertida para a URI "http://example.org/hotpicks/pick2.xml"
"Hot Pick #3" convertida para a URI "http://example.org/hotpicks/pick3.xml"
O conjunto de caracteres permitidos para os atributos xml:base
é o mesmo das XML, nomeados em [Unicode]. Contudo alguns caracteres Unicode não são permitidos para URI de referência e assim os processadores devem must codificar e escapar tais caracteres para obter do valor do atributo uma URI de referência válida.
Os caracteres não permitidos são todos os não ASCII mais aqueles listados na Seção 2.4 das [IETF RFC 2396], exceto os caracteres de sinal para números (#) e para percentagens (%) bem como o sinal de colchetes ([ ]) que foi readmitido [IETF RFC 2732]. Caracteres não permitidos devem must ser escapados como mostrado a seguir:
Converter a caracter para UTF-8 [IETF RFC 2279] de um mais bytes.
Escapar cada byte com o formato de escape para URI (isto é, converter para %HH, onde HH for a notação hexadecimal do valor do byte).
Substituir o caracter original pela sequência escapada resultante.
As RFC 2396 [IETF RFC 2396] fornece informações de como incorporar URI base em um documento. As regras para definir uma URI base podem ser resumidas como mostrado a seguir (listadas da mais alta para a mais baixa prioridade):
A URI base é aquela incorporada no conteúdo do documento.
A URI base é aquela contida na entidade incorporada (mensagem, documento ou nemhuma).
A URI base é a URI usada para recuperar a entidade.
A URI base é definida pelo contexto da aplicação.
Nota:
O termo "entidade" mencionado nos números 2 e 3 acima tem o significado conforme as RFC 2396. Neste documento especificamente, o termo "entidade" é usado no seu sentido XML.
Este documento especifica os detalhes da regra número 1 acima, para informações sobre URI base incorporadas em documentos XML.
Em documentos XML, URIs relativas são sempre convertidas em relação a um elemento, a um documento entidade ou a uma entidade externa. Não existe previsão para refinamento da granularidade, tal como informações sobre a base definidas por atributo, por caracter ou por entidade. Entidades internas, quando declaradas em um subconjunto interno ou em DTD externa, bem como textos em uma entidade externa não inclusos em um elemento, são considerados como definindo uma URI base separadamente da URI base de contexto para a entidade de referência.
A URI base de uma entidade documento ou de uma entidade externa é determinada pelas regras das RFC 2396 ou seja, a URI base é aquela usada para recuperar uma entidade documento ou uma entidade externa.
NT: O item 2 a seguir consta da errata e foi alterado em 2002-10-21
A URI base de um elemento é:
A URI base especificada por um atributo xml:base
no elemento, se existir, se não,
a URI base do elemento pai no interior do da entidade documento ou da entidade externa se existir, se não,
a URI base da entidade documento ou da entidade externa que contenha o elemento.
NT: O parágrafo a seguir consta da errata e foi acresentado em 2004-03-02
Uma URI base definida em um atributo xml:base
e que seja inválida terá sua transformação dependente da aplicação.
A correspondência de uma URI relativa com a URI base em um documento XML é feita como mostrado a seguir:
Uma referência a URI dentro do conteúdo de um texto tem como URI base aquela do elemento que contém o texto.
Uma referência a URI dentro de um atributo xml:base
tem como URI base aquela do elemento pai do elemento que contém o atributo xml:base
se este elemento pai existir, quer no documento quer em uma entidade externa, se não existir o elemento pai a URI base será aquela da entidade documento ou da entidade externa que contenha o elemento.
Uma referência a URI dentro de um outro valor de atributo qualquer, incluindo valores default de atributos tem como URI base aquela do elemento que carrega o atributo.
Uma referência a URI dentro do conteúdo de uma instrução de processamento tem como URI base aquela do elemento pai da instrução de processamento se este elemento pai existir, quer no documento quer em uma entidade externa, se não existir o elemento pai a URI base será aquela da entidade documento ou da entidade externa que contenha a instrução de processamento.
Nota:
Podem ser obtidos resultados inesperados quando o valor de atributos xml:base
não for fornecido diretamente na entidade documento XML, mas via valor default declarado em entidade externa. Tais declarações podem não ser lidas por softwares baseados em processadores que não validam. Muitas aplicações XML não usam processadores validadores. Para um correto processamento nestes casos os valores, xml:base
deveriam ser should
fornecidos tanto diretamente como via valor default de atributo declarado em subconjunto interno de DTD.
NT: A Nota a seguir consta da errata e foi acresentada em 2003-01-23 para substituir a Nota acima
Nota:
Podem ser obtidos resultados inesperados quando o valor de atributos xml:base
não for fornecido diretamente na entidade documento XML, mas via valor default declarado em entidade externa. Tais declarações podem não ser lidas por softwares baseados em processadores que não validam. Atributos default em mecanismos externos tais como em XML Schema podem também conduzir a resultados inesperados; mesmo se um processador válido for usado pela aplicação a adição de valores default para atributos seguidos da criação de infoset, podem levar os atributos xml:base
para fora de sincronia com a [URI de base] na propriedade infoset. Por esta razão, os valores de xml:base
deveriam ser should fornecidos tanto diretamente no documento XML como declarados default em um subconjunto interno de DTD.
Uma aplicação está em conformidade com a XML Base se faz as conversões de URI de acordo com o que estabelece estas especificações.2
XML Base define um mecanismo para incorporar informações sobre uma URI base dentro de um documento XML. Não define mecanismos de reconhecimento de quais conteúdos ou valores de atributos devem conter URIs. Isto é estabelecido somente por especificações ou aplicações que definem semântica do vocabulário.
É intenção de XML Base que as futuras especificações e revisões do vocabulário XML identifiquem quais partes de uma documento XML são consideradas URIs, e forneçam um referência normativa para esta especificação de modo a assegurar que URIs relativas sejam tratadas de modo consistente nos documentos XML.
Os impactos da XML Base sobre as demais standards (na época da publicação deste documento) são os descritos a seguir.
XML 1.0 [XML] usa referências a URI nos identificadores de sistema para entidades externas. Como tais declarações são feitas fora do elemento do documento (em um subconjunto interno ou em uma DTD externa) as regras definidas para
xml:base
evitam que estas URIs sejam afetadas pelo valor xml:base.
O conjunto de informações XML Infoset [XML Infoset] define as propriedades da URI base para os elementos de informação. As especificações atuais para Infoset oferecem suporte à determinação dos valores de propriedades em XML Base. As interfaces, aplicações, e especificações referentes a estas propriedades Infoset suportarão XML Base nativamente.
Namespaces em XML [XML Names] usam URI de referência, as quais conforme atualmente definidas não deverão ser transformadas pela URI de base definida pela xml:base
no que diz respeito aà identificação de namespaces. Procedimentos em nível mais elevado que consideram as URIs para namespace não são cobertos pelas especificações para namespaces e devem especificar que xml:base
é neste caso suportada para fins de busca de recursos naquelas URIs.
O modelo de dados de XPath [XPath] não preserva nem informação direta de URI base nem as em entidades externas e isto é insuficiente para dar suporte a transformação correta de referências a URI dentro destas entidades. Isto inclui referências a URIs relativas nos atributos xml:base.
As extensões XSLT [XSLT] do modelo de dados de XPath preveem que as informações de URI de base sejam preservadas, mas definem esta informação em uma maneira que torna impossível o suporte para XML Base. Versões futuras de XSLT poderão querer oferecer o suporte para XML Base.
XML Schema Part 2: Datatypes [XML Datatypes] definem um tipo de dado primitivo uriReference
. As especificações para XML Datatypes poderão querer oferecer suporte para que as aplicações reconheçam estes tipos de dados e transformem as URIs de base de acordo com XML Base.
As especificações para XLink [XLink] são compatíveis com XML Base.
XHTML [XHTML] usa URI de referência além do que está previsto em XLink. Estas referências a URIs podem ser transformadas por uma aplicação relativa a URI de base definida em XML Base. A especificação para XHTML poderão querer descrever seu nível de suporte para XML Base.