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:

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

W3C

XML Base

Recomendação W3C de 27 de Junho de 2001

Esta versão:
http://www.w3.org/TR/2001/REC-xmlbase-20010627/ (em inglês, disponível em HTML, XML)
Última versão:
http://www.w3.org/TR/xmlbase/
Versão anterior:
http://www.w3.org/TR/2000/PR-xmlbase-20001220/
Editor:
Jonathan Marsh, Microsoft <jmarsh@microsoft.com>

Sumário

Este documento propõe um mecanismo semelhante ao do elemento BASE do HTML, para definir URIs base em documentos XML.

Status deste documento

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 www-xml-linking-comments@w3.org (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/.

Tabela de Conteúdos

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

Apendices

A Referências
B Referências (não normativas)
C Impacto sobre outras standards (não normativas)


1 Introdução

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.

2 Terminologia

[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].

3 Atributos 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:

3.1 Codificação e escape em URI de referência

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:

  1. Converter a caracter para UTF-8 [IETF RFC 2279] de um mais bytes.

  2. 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).

  3. Substituir o caracter original pela sequência escapada resultante.

4 Convertendo URIs relativas

4.1 Referências às RFC 2396

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):

  1. A URI base é aquela incorporada no conteúdo do documento.

  2. A URI base é aquela contida na entidade incorporada (mensagem, documento ou nemhuma).

  3. A URI base é a URI usada para recuperar a entidade.

  4. 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.

4.2 Granularidade das informações sobre a URI base

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 é:

  1. A URI base especificada por um atributo xml:base no elemento, se existir, se não,

  2. a URI base do elemento pai no interior do da entidade documento ou da entidade externa se existir, se não,

  3. 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.

4.3 Correspondência de URIs com as URIs base

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.

5 Conformidade

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

A Referências

IETF RFC 2119
RFC 2119: Key words for use in RFCs to Indicate Requirement Levels. Internet Engineering Task Force, 1997. (See http://www.ietf.org/rfc/rfc2119.txt.)
IETF RFC 2279
RFC 2279: UTF-8, a transformation format of ISO 10646. Internet Engineering Task Force, 1998. (See http://www.ietf.org/rfc/rfc2279.txt.)
IETF RFC 2396
RFC 2396: Uniform Resource Identifiers. Internet Engineering Task Force, 1995. (See http://www.ietf.org/rfc/rfc2396.txt.)
IETF RFC 2732
RFC 2732: Format for Literal IPv6 Addresses in URL's. Internet Engineering Task Force, 1999. (See http://www.ietf.org/rfc/rfc2732.txt.)
Unicode
The Unicode Standard. The Unicode Consortium. (See http://www.unicode.org/unicode/standard/standard.html.)
XML
Tim Bray, Jean Paoli, C.M. Sperberg-McQueen, and Eve Maler, editors. Extensible Markup Language (XML) 1.0 (Second Edition). World Wide Web Consortium, 2000. (See http://www.w3.org/TR/2000/REC-xml-20001006.)
XML Names
Tim Bray, Dave Hollander, and Andrew Layman, editors. Namespaces in XML. Textuality, Hewlett-Packard, and Microsoft. World Wide Web Consortium, 1999. (See http://www.w3.org/TR/1999/REC-xml-names-19990114/.)

B Referências (não normativas)

HTML 4.01
Dave Raggett, Arnaud Le Hors, Ian Jacobs, editors. HTML 4.01 Specification. World Wide Web Consortium, 1999. (See http://www.w3.org/TR/1999/REC-html401-19991224/.)
XLink
Steve DeRose, Eve Maler, David Orchard, and Ben Trafford, editors. XML Linking Language (XLink). World Wide Web Consortium, 2000. (See http://www.w3.org/TR/2001/REC-xlink-20010627/.)
XML Datatypes
Paul V. Biron, Ashok Malhotra, editors. XML Schema Part 2: Datatypes. World Wide Web Consortium Working Draft. (See http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/.)
XHTML
Steven Pemberton, et al. XHTML(TM) 1.0: The Extensible HyperText Markup Language. World Wide Web Consortium, 2000. (See http://www.w3.org/TR/2000/REC-xhtml1-20000126/.)
XML Infoset
John Cowan and Richard Tobin, editors. XML Information Set. World Wide Web Consortium, 1999. (See http://www.w3.org/TR/2001/CR-xml-infoset-20010514/.)
XPath
James Clark and Steven DeRose, editors. XML Path Language World Wide Web Consortium, 1999. (See http://www.w3.org/TR/1999/REC-xpath-19991116.)
XSLT
James Clark, editor. XSL Transformations. World Wide Web Consortium, 1999. (See http://www.w3.org/TR/1999/REC-xslt-19991116.)

C Impacto sobre outras standards (não normativas)

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.