1.A versão oficial e original, em inglês, deste documento, encontra-se em: http://www.w3.org/TR/2002/REC-xhtml1-20020801 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 28 de novembro de 2003 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
Ver a listagem de erros deste documento, na qual podem ter sido incluidas algumas correções normativas. Ver também traduções.
Este documento está disponível nos seguintes formatos não normativos: arquivo XHTML multi-partes, Versão PostScript , Versão PDF, arquivo ZIP, e arquivo Gzip'd TAR.
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.
Esta especificação define a segunda edição do XHTML 1.0, uma reformulação do HTML 4 como aplicação XML 1.0, e as três DTDs (Definição do Tipo de Documento) correspondentes àquelas definidas em HTML 4. A interpretação semântica dos elementos e de seus atributos estão definidas nas Recomendações W3C para HTML 4 e fornecem as bases para futuras expansões do XHTML. A compatibilidade com as aplicações de usuários já existentes no HTML é possível desde que sejam observadas uma pequena série de diretrizes.
Esta seção descreve o status deste documento à época da sua publicação. Outros documentos complementares futuros, sobrescreverão este documento atual. A última versão da série destes documentos encontra-se no sítio do W3C.
Este documento é a segunda edição da especificação XHTML 1.0 e incorpora as modificações constantes da errata de 1 de agosto de 2002. As alterações constantes desta versão comparada com a versão anterior, estão ressaltadas em uma versão onde foram destacadas as modificações.
Esta segunda edição não é uma nova versão de XHTML 1.0 (originalmente publicada em 26 de janeiro de 2000). As modificações neste documento refletem as correções nele introduzidas, em decorrência de comentários vindos da comunidade envolvida, bem assim como resultado de conclusões do Grupo de Trabalho do HTML. Não há mudanças de cunho significativo neste documento - somente uma adaptação aos erros detectados.
Uma listagem de erros já detectados neste documento pode ser encontrada em: http://www.w3.org/2002/08/REC-xhtml1-20020801-errata.
Por favor, detectando qualquer erro neste documento, pede-se informar a www-html-editor@w3.org (archive). Discusões abertas, sôbre as características do HTML estão disponíveis em listas de discussão em www-html@w3.org (archive).
Este documento foi produzido como parte das Atividades HTML do W3C. As metas do Grupo de Trabalho do HTML (acessíveis a membros somente) são discutidas no estatuto do Grupo de Trabalho do HTML.
À época da publicação deste documento, o grupo de trabalho acreditava não haver qualquer pendência a resolver. Uma lista de pendências a estas especificações pode ser encontrada em: página de pendências.
Uma lista das Recomendações do W3C em vigor e outros documentos técnicos está disponível em: http://www.w3.org/TR.
Esta seção é informativa.
XHTML é uma família de módulos e documentos atuais e futuros que reproduzem, englobam e ampliam o HTML 4 [HTML4]. Os documentos da família XHTML são baseados em XML e modernamente têm sido projetados para trabalhar em conjunto com aplicações XML de usuários. Detalhes acerca desta família e da sua evolução são discutidos em: [XHTMLMOD].
XHTML 1.0 (a presente especificação) é o primeiro tipo de documento da família XHTML. É uma reformulação dos três tipos de documentos HTML 4 como aplicações de XML 1.0 [XML]. Foi concebida para ser uma linguagem de conteúdos em conformidade com XML e seguindo algumas diretrizes simples ser também compatível com aplicações de usuários em HTML 4. Desenvolvedores que migrarem seus conteúdos para XHTML 1.0 perceberão os seguintes benefícios:
A família XHTML é o próximo degrau na evolução da Internet. Migrando para XHTML os desenvolvedores de conteúdo estarão entrando no mundo XML com todos seus benefícios assegurando para seus conteúdos a compatibilidade com aplicações passadas e futuras
HTML 4 [HTML4] é uma aplicação SGML (Standard Generalized Markup Language) em conformidade com a International Standard ISO 8879, e está mundialmente reconhecida como a linguagem padrão para publicação World Wide Web.
SGML é uma linguagem para descrever linguagem de marcação, particularmente aquela linguagem utilizada para troca, gerenciamento e publicação eletrônica de documentos. HTML é um exemplo de linguagem definida em SGML.
SGML tem sido usada, desde os meados dos anos 80 e tem permanecido uma linguagem estável. Está estabilidade deve-se ao fato de SGML ser ao mesmo tempo diversificada e flexível. Contudo esta flexibilidade tem seu prêço, e o preço está no alto nível de complexidade da linguagem, o que tem inibido sua adoção em diversos ambientes, incluindo aí a World Wide Web.
HTML, foi concebida originariamente para ser uma linguagem destinada ao tráfego de documentos de caráter científico e técnico, adaptada para ser usada por não especialistas naqueles tipos de documentos. HTML contorna o problema da complexidade do SGML especificando um pequeno conjunto de tags com características estruturais e semânticas adaptadas para gerenciar documentos relativamente simples. Além de simplicar a estrutura dos documentos HTML adicionou suporte para HiperTexto. As facilidades de multi-mídia foram acrescidas posteriormente.
Em um espaço de tempo muito pequeno HTML tornou-se mundialmente popular e rapidamente ultrapassou seus propósitos iniciais. Desde os primórdios do HTML, tem sido inventados novos elementos tanto para uso com o HTML (como padrão) quanto para adaptações HTML, para atender a um mercado vertical altamente especializado. Esta proliferação de novos elementos trouxe consigo problemas de interoperabilidade dos documentos web com as diversas plataformas.
XML™ é uma abreviação para Extensible Markup Language [XML].
XML foi concebida como uma maneira de resgatar a potencialidade e flexibilidade do SGML sem a sua complexidade. Embora sendo uma forma restrita de SGML, XML ainda assim, conserva todo o poder e riqueza das características do SGML.
XML conserva as características do SGML ao mesmo tempo que descarta aquelas mais complexas que tornavam a criação e projeto de programas adaptados, mais difícil e dispendiosa.
Os benefícios da migração para XHTML 1.0 foram acima descritos. Alguns benefícios gerais a mais são:
Esta seção é normativa.
Os termos a seguir são usados nesta especificação. estes termos estendem as definições em [RFC2119] baseados em definições similares conforme as ISO/IEC 9945-1:1990 [POSIX.1]:
Esta seção é normativa.
Esta versão da XHTML define as conformidades de documentos em modo XHTML 1.0 "strict", os quais estão restritos a elementos e atributos XML e XHTML 1.0 namespaces. Ver Seção 3.1.2 para informações sobre o uso de XHTML com outros modos de declaração, como seja, para incluir metadata expressadas nas RDF dos documentos XHTML.
Um documento "strict" conforme com XHTML é um documento XML que atende somente as facilidades descritas como mandatórias nesta especificação. Documentos nestas condições devem satisfazer os seguintes critérios:
Estar conforme com as declarações contidas em uma das três DTDs encontradas em DTDs e no Apendice B.
O elemento raiz do documento deve ser html
.
O elemento raiz do documento deve conter uma declaração xmlns
para o namespace em XHTML [XMLNS]. O namespace em XHTML é definido como: http://www.w3.org/1999/xhtml
. Abaixo, um exemplo de elemento raiz:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
Deve haver no documento, uma declaração DOCTYPE que precede o elemento raiz do documento. A declaração de identificador público contida no DOCTYPE deve referenciar-se a uma das três DTDs encontradas em DTDs através do uso do respectivo Formal Public Identifier (Identificador Público Formal). O sistema identificador adaptar-se-a às características do sistema local.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
Uma declaração XML não é requerida em todo documento XML, contudo recomenda-se que os autores de documentos XHTML usem a declaração XML nos seus documentos. Tal declaração é requerida quando a codificação de caracteres do documento for outra que não a a codificação default UTF-8 ou UTF-16 e nenhuma codoficação for determinada por um protocolo de nível superior. A seguir um exemplo para um documento XHTML. Neste exemplo, a declaração XML foi incluida.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>Virtual Library</title> </head> <body> <p>Moved to <a href="http://example.org/">example.org</a>.</p> </body> </html>
O namespace em XHTML pode ser usado com outro namespace XML de acordo com [XMLNS], embora tais documentos não sejam XHTML 1.0 "strict" conformes como definido acima. W3C está procurando caminhos para especificar conformidades para documentos com múltiplos namespaces. Para um exemplo, ver [XHTML+MathML].
O exemplo a seguir mostra a maneira pela qual XHTML 1.0 pode ser usado em conjunto com a recomendação MathML :
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>A Math Example</title> </head> <body> <p>The following is MathML markup:</p> <math xmlns="http://www.w3.org/1998/Math/MathML"> <apply> <log/> <logbase> <cn> 3 </cn> </logbase> <ci> x </ci> </apply> </math> </body> </html>
O exemplo a seguir mostra a maneira pela qual a marcação XHTML 1.0 pode ser incorporada a namespace em XML :
<?xml version="1.0" encoding="UTF-8"?> <!-- initially, the default namespace is "books" --> <book xmlns='urn:loc.gov:books' xmlns:isbn='urn:ISBN:0-395-36341-6' xml:lang="en" lang="en"> <title>Cheaper by the Dozen</title> <isbn:number>1568491379</isbn:number> <notes> <!-- make HTML the default namespace for a hypertext commentary --> <p xmlns='http://www.w3.org/1999/xhtml'> This is also available <a href="http://www.w3.org/">online</a>. </p> </notes> </book>
Abaixo uma relação de critérios de conformidade a serem observados por uma aplicação de usuário.
ID
(isto é o atributo id
da maioria dos
elementos HTML) como identificadores de fragmentos.O processador XML normaliza os diferentes sistemas de códigos de em único caracter de LINE FEED (avanço de linha), que é passado à aplicação.
As aplicações de usuário devem extrair das CSS as informações para processamento de caracteres de espaços em branco [CSS2]. Notar que a recomendação CSS2 não explicita caracteres de espaços em branco fora do conjunto de caracteres do tipo Latin. Esta explicitação será feita em uma futura versão de CSS e nesta ocasião então será feita também a atualização na presente referência.
Notar que para produzir um documento XHTML Canônico (Canonical XHTML) as regras acima devem ser seguidas bem assim como as regras constantes de [XMLC14N] .
Esta seção é informativa.
Dado ao fato de que XHTML é uma aplicação XML, certas práticas que são legais em HTML 4 baseado em SGML [HTML4] devem ser modificadas.
Bem formado é um conceito novo introduzido por [XML]. Em essência, isto significa que todos os elementos devem ter suas tags de fechamento ou serem escritos com uma sintaxe especial ( descrita adiante) e ainda, que todos os elementos devem estar convenientemente aninhados.
Embora "overlapping" seja ilegal em SGML, é amplamente tolerado pelos navegadores em uso.
CORRETO: elementos aninhados.
<p>aqui, um parágrafo em <em>negrito</em>.</p>
INCORRETO: elementos em "overlapping"
<p>aqui, um parágrafo em<em>negrito.</p></em>
Documentos XHTML devem usar minúsculas para todos os elementos do HTML, bem como para nomes de atributos. Esta diferença é necessária porque XML é case-sensível (sensível ao tamanho da letra). Por exemplo, . <li> and <LI> são tags diferentes.
Em SGML - HTML 4 é permitido para determinados elementos, omitir-se a tag de fechamento. XML não permite omissão de qualquer tag de fechamento. Todos os elementos excetuados aqueles vazios declarados nas DTD, tem que ter tag de fechamento. Os elementos vazios declarados nas DTD podem ter tag de fechamento ou usar uma abreviação para elemento vazio (ver Elementos vazios).
CORRETO: elementos com fechamento
<p>este é um parágrafo.</p><p>este é outro parágrafo.</p>
INCORRETO: elementos sem fechamento
<p>este é um parágrafo.<p>ste é outro parágrafo.
Todos os valores de atributo devem ser declarados entre aspas, mesmo aqueles valores com caracteres númericos.
CORRETO: valores de atributo entre aspas
<td rowspan="3">
INCORRETO: valores de atributos sem uso de aspas
<td rowspan=3>
XML não suporta abreviações na sintaxe para atributos. Valores de atributos devem ser escritos por completo. Nomes de atributos tais como compact
e checked
não podem ocorrer em elementos sem que seus respectivos valores sejam declarados.
CORRETO: atributos por extenso
<dl compact="compact">
INCORRETO: atributos abreviadamente
<dl compact>
Elementos vazios devem ter uma tag de fechamento ou a tag de abertura deve terminar com />
. Como exemplo, <br/>
ou <hr></hr>
. Ver Diretrizes de Compatibilidade HTML para informações a respeito de compatibilidade com as aplicações de usuário no HTML 4.
CORRETO: Elementos vazios com terminação
<br/><hr/>
INCORRETO: Elementos vazios sem terminação
<br><hr>
As aplicações de usuário processam os atributos de acordo com a Seção 3.3.3 do [XML]:
Os elementos script e style em XHTML, são declarados como elementos com conteúdo #PCDATA.
Como resultado, <
e &
será tratado como uma marcação de início e entidades tais como <
e &
serão reconhecidas pelos processadores XML como referências a entidades. Englobando o conteúdo dos elementos script ou style dentro de uma seção CDATA
evita o processamento destas entidades.
<script type="text/javascript"> <![CDATA[ ... unescaped script content ... ]]> </script>
As seções CDATA
são reconhecidas pelos processadores XML e aparecem como nós no DOM, ver Secão 1.3 das Recomendações Nível 1 para DOM [DOM].
Como alternativa podem ser usados documentos externos de scripts e de estilo.
SGML proporciona ao escritor de uma DTD a possibilidade de impedir que elementos especificos sejam aninhados dentro de outros elementos. Estes impedimentos (chamados "exclusões") não são possíveis em XML.
Por exemplo, uma declaração HTML 4 Strict DTD proibe que um elemento 'a
' seja aninhado dentro de outro elemento 'a
' em qualquer nível de profundidade de aninhamento. Não é possível estabelecer tal proibição em XML. Ainda que este tipo de proibição não possa ser definido em uma DTD, determinados elementos não devem ser aninhados. Um sumário arrolando estes tipos de elementos bem como aqueles que não devem ser aninhados neles mesmos, pode ser consultado em: Elementos Incompatíveis.
O HTML 4 definia o atributo name
para os elementos a
, applet
, form
, frame
, iframe
, img
, e
map
. HTML 4 também introduziu o atribute id
. Ambos estes atributos foram projetados para serem usados como identificadores.
Em XML, os identificadores são do tipo ID
, e poderá existir somente um atributo do tipo ID
por elemento. Assim, em XHTML 1.0 o atributo id
é definido como do tipo ID
. Com o objetivo de certificar-se que os documentos XHTML 1.0 são documentos XML bem estruturados, DEVEM usar o atributo id
ao definir identificadores para os elementos listados acima. Ver as Diretrizes de Compatibilidade HTML para informações de como assegurar-se de que tais âncoras sejam compatíveis quando se servirem de documentos
XHTML cujo tipo de mídia seja text/html
.
Notar que em XHTML 1.0, o atributo name
destes elementos está formalmente em desuso e será excluido nas versões futuras de XHTML.
HTML 4 e XHTML ambos têm certos atributos com um conjunto pré-definido e limitado de valores (por exemplo, o atributo type
do elemento input
). Em SGML e XML, eles são chamados de (enumerated attributes) atributos enumerados. Emr HTML 4, estes valores são case-insensitive, (insensíveis ao tamanho de letra) desta forma, por exemplo, o valor f TEXT
é equivalente ao valor text
.
Em XML, estes valores são case-sensitive (sensíveis ao tamanho de letra), e em XHTML 1 todos os valores são definidos com letras minúsculas.
Tanto SGML quanto XML permitem que se faça referência a caracteres pelo uso de valores hexadecimais. Em SGML estas referências podem ser feitas usando-se tanto &#Xnn; quanto &#xnn;.Em documentos XML você deve usar letras minúsculas (i.e. &#xnn;)
Esta seção é normativa.
Embora não haja qualquer exigência para que documentos XHTML 1.0 sejam compatíveis com aplicações de usuário, na prática isto é fácil de se conseguir. Diretrizes para criação de documentos compatíveis podem ser encontadas no Apendice C.
Documentos XHTML que seguem as diretrizes arroladas no Apendice C, "Diretrizes de Compatibilidade HTML" podem ser indexados como tipo de mídia para Internet "text/html" [RFC2854], ja que são compatíveis com a maioria dos navegadores HTML. Aqueles documentos e qualquer outro documento que esteja em conformidade com esta especificação pode também ser indexado como tipo de mídia para Internet "application/xhtml+xml" como definido em [RFC3236]. Para mais informações a respeito do uso dos tipos mídia, ver a nota informativa [XHTMLMIME].
Este Apendice é normativo.
Estas DTDs e o rol das entidades caracteres, constituem uma parte normativa desta especificação. Um Catálogo contendo o conjunto completo dos arquivos de DTD com declaração XML e SGML esta disponível em um arquivo zip e um arquivo gzip'd tar Usuários que desejam uma cópia DTD específica para sua locaizaçãol, deveriam fazer o donwload e usar suas cópias específicas ao invés de se utilizar das cópias constantes do Catálogo acima mencionado.
Estas DTDs assemelhan-se às DTDs do HTML 4. W3C recomenda que você use a versão oficial destas DTDs e seus SISTEMAS de identificadores quando validar conteúdos. Se você nescessitar usar estas DTDs localmente você deverá fazer o download de um dos arquivos desta versão. Para complementação as versões normativas das DTDs foram aqui incluidas:
O arquivo DTD/xhtml1-strict.dtd é uma parte normativa desta especificação. As anotações de conteúdo deste arquivo estão disponíveis em uma seção separada para complementação.
O arquivo DTD/xhtml1-transitional.dtd é parte normativa desta especificação. As anotações de conteúdo deste arquivo estão disponíveis em uma seção separada para complementação.
O arquivo DTD/xhtml1-frameset.dtd é parte normativa desta especificação. As anotações de conteúdo deste arquivo estão disponíveis em uma seção separada para complementação.
Rol das entidades caracteres, XHTML e o mesmo do HTML 4, com modificações para poderem ser validados como declarações de entidades XML 1.0. Notar que a entidade símbolo para a moeda Euro (€
ou
€
ou €
) está definida no conjunto dos caracteres especiais.
O arquivo DTD/xhtml-lat1.ent é parte normativa desta especificação. As anotações de conteúdo deste arquivo estão disponíveis em uma seção separada para complementação.
O arquivo DTD/xhtml-special.ent é parte normativa desta especificação. As anotações de conteúdo deste arquivo estão disponíveis em uma seção separada para complementação.
O arquivo DTD/xhtml-symbol.ent é parte normativa desta especificação. As anotações complementares ao conteúdo deste arquivo pode ser lido em uma seção separada.
Este apêndice é normativo.
A seguir os elementos que estão proibidos de conter outros elementos (ver Exclusões SGML). Esta proibição aplica-se a qualquer nível de aninhamento, isto é, vale para qualquer grau descendente.
a
a
pre
img
, object
,
big
, small
, sub
, ou sup
button
input
, select
,
textarea
, label
, button
, form
,
fieldset
, iframe
ou o elemento isindex
label
label
form
form
Este apêndice é informativo.
Este apêndice é um sumário das diretrizes de projeto, para autores que desejarem que seus documentos XHTML renderizem corretamente em aplicações HTML de usuários. Notar que esta recomendação não define a maneira pela qual as aplicações conforme HTML de usuário devem processar os documentos HTML. Muito menos define o significado dos tipos de mídia para Internet text/html
. Para estas definições, ver [HTML4] e [RFC2854] respectivamente.
Esteja consciente de que as instruções de processamento são executadas em algumas aplicações de usuário. Também que algumas aplicações de usuário interpretam declarações XML de uma maneira que o documento não seja reconhecido como XML preferencialmente que HTML, e assim não "renderizam" o documento da forma como era esperado. Buscando a compatibilidade com estes tipos de navegadores, você pode querer evitar o uso de instruções de processamento XML ou mesmo declarações XML. Lembre-se no entanto que quando uma declaração XML não for incluída em um documento, ele somente poderá usar a codificação default de caracteres UTF-8 or UTF-16.
Inclua um espaço antes de /
>
(barra-sinal de maior) nos elementos vazios. Por exemplo, <br />
, <hr />
e <img src="karen.jpg" alt="Karen" />
. Use a sintaxe de tag simplificada para elementos vazios. Por exemplo <br />
, ao invés de <br></br>
permitido em XML mas que traz resultados inesperados em certas aplicações de usuário..
Ocorrendo uma instância vazia dentro de um elemento cujo modelo de conteúdo for (não vazio) EMPTY
(por exemplo, um título ou parágrafo) não use a sintaxe abreviada (por exemplo, use
<p> </p>
e não <p />
).
Use folhas de estilo externas se elas contém os caracteres <
ou &
ou ]]>
ou --
. Use arquivos externos de scripts, se eles contém os caracteres <
ou &
ou ]]>
ou--
. Notar que os analizadores de XML suprimem os conteúdos de comentários. No entretanto a prática histórica de se "esconder" scripts e folhas de estilos dos navegadores mais antigos com o uso de marcas de comentário e com a finalidade de compatibilizar os documentos com aqueles navegadores, parece não funcionar como esperado em aplicações XML.
Evite quebras de linha bem como múltiplos espaços em branco dentro dos valores de atributos. Eles são processados de maneira inconsistente pelas aplicações de usuário.
Não inclua mais que um elemento isindex
dentro da tag head
do documento. O elemento isindex
está em desuso a favor do elemento input
.
Use ambos os atributos lang e xml:lang para especificar o idioma de um documento. O valor do atributo xml:lang
tem a precedência.
Em XML, URI [RFC2396] que terminam com identificadores de fragmento da forma
"#foo"
não se referem a elementos com o atributo name="foo"
; ao contrário eles se referem a elementos com atributo do tipo ID
. Por exemplo, o atributo id
do HTML 4. Muitos clientes HTML atuais não suportam o uso de atributo do tipo ID
desta maneira, assim deve-se atribuir valores idênticos a ambos os atributos para assegurar total compatibilidade com o passado e com o futuro (por exemplo, <a id="foo" name="foo">...</a>
).
Ainda mais. Como o conjunto de valores legais para atributos do tipo ID
é muito menor do que o conjunto para os do tipo CDATA
, o tipo do atributo name
foi mudado para NMTOKEN
. Este atributo está limitado de uma tal maneira que só pode assumir os mesmos valores que os para os do tipo ID
, ou do tipo Name
produzidos em XML 1.0 Section 2.3,
produção 5. Lamentavelmente esta limitação não pode ser expressa nas DTDs dos XHTML 1.0. Devido a esta limitação é preciso cuidado quanto corverter-se documentos HTML existentes para XHTML 1.0. Os valores destes atributos devem ser únicos no documento, válidos e sem qualquer referência a estes identificadores de fragmento (tanto interna quanto externa) devem atualizar-se durante a conversão.
Notar que a coletânea de valores legais em XML 1.0 Seção 2.3, produção 5 é muito maior do que aquelas de uso permitido em tipos de ID
e de NAME
definidos no HTML 4.
Quando definir-se identificadores de fragmento para serem compatíveis com aplicações passadas, usar somente cadeias de caracteres pertencentes aos conjuntos[A-Za-z][A-Za-z0-9:_.-]*
. Ver Seção 6.2 do [HTML4] para maiores informações.
Finalmente notar que XHTML 1.0 tende a colocar em desuso o atributo name
dos elementos a
, applet
, form
, frame
, iframe
,
img
, e map
e ele (atributo name) será excluido das futuras versões da XHTML.
Historicamente a codificação de caracteres dos documentos HTML é tanto especificada por um servidor web através do parâmetro identificador de caracter em Content-Type no cabeçalho do HTTP como via um meta
elemento dentro do próprio documento. Em um documento XML, a codificação de caracteres do documento é especificada na declaração XML (por exemplo, <?xml version="1.0" encoding="EUC-JP"?>
).
Com fins de portabilidade para a apresentação de documentos com codificação de caracteres específica, o melhor caminho é o de assegurar-se de que o servidor web fornece suporte com cabeçalhos corretos. Se isto não for possível o documento que pretenda uma maneira explícita de codificar seus caracteres deve incluir tanto declarações XML quanto declarações de codificação e mais uma meta
http-equiv statement (por exemplo, <meta
http-equiv="Content-type" content="text/html; charset=EUC-JP" />
).Nas aplicações de usuários em conformidade com XHTML o valor de declaração codificada do XML tem precedência.
Nota: Certifique-se de que se um documento deve incluir uma declaração de codificação de caracteres na meta http-equiv statement, tal documento deve ser interpretado por servidores HTTP e/ou aplicações de usuários, como sendo para tipos de mídia para Internet conforme ali definido. Se um documento é para ser usado por váriados tipos de mídia, a interpretação da codificação do documento deve ser via servidor HTTP.
Algumas aplicações de usuário não são capazes de interpretar atributos booleanos, quando estes são apresentados em sua forma extendida (não abreviada) como requerido por XML 1.0. Notar que este problema não afeta aplicações de usuário compatíveis com HTML 4. Os seguintes atributos enquadram-se neste caso:compact
, nowrap
, ismap
, declare
, noshade
, checked
,
disabled
, readonly
, multiple
, selected
, noresize
, defer
.
A Recomendação para o Modelo Objeto de Documento Nível 1 [DOM] define a interface do Modelo Objeto de Documento para XML e HTML 4. Em HTML 4 o Modelo Objeto de Documento especifica que elementos e nomes de atributos retornem em letras maiúsculas. Em XML o Modelo Objeto de Documento especifica que elementos e nomes de atributos retornem da mesma maneira que foram especificados. In XHTML 1.0, o Modelo Objeto de Documento especifica que elementos e nomes de atributos retornem em letras minúsculas. Esta aparente diferença pode ser vista de dois modos:
text/html
via DOM
podem usar o HTML DOM, e confiar em elementos e nomes de atributos sendo retornados
em maiúsculas naquelas interfaces.text/xml
, application/xml
,
or application/xhtml+xml
podem tambem usar o XML DOM. Elementos e
atributos retornarão em minúsculas. Também alguns elementos
XHTML podem ou não aparecer no objeto (tree) árvore porque eles
são opcionais do modelo de conteúdo.(por exemplo, o elemento tbody
dentro de table
). Isto ocorre porque em HTML 4 é permitida
a forma abreviada para alguns elementos tal como suas tag's inicial e final (uma
característica SGML). Isto não é possível em XML.
Melhor do que requerer aos autores de documentosa inserção de elementos
estranhos, XHTML tornou esses elementos opcionais. As aplicações
de usuários precisam se adaptar a isso. Para maiores informações
sôbre este topico, ver [
DOM2
]Em ambos SGML e XML, o caracter "ampersand" ( e-comercial) ("&") declara o início de uma referência a entidade (por exemplo, ® para marca registrada, cujo símbolo é: "®"). Lamentavelmente muitas aplicações de usuário em HTML, ignoram o uso incorreto deste caracter em documentos HTML - tratando o "&" que não lhes parecem uma referência a entidade, literalmente como se fossem um e-comercial (&). Aplicações de usuário XML não toleram o uso incorreto deste caracter e em consequência, documentos com tal tipo de incorreção não são válidos e consequentemente não conformes com esta especificação. Com o fim de certificar-se que os documentos são compatíveis com aplicações de usuário históricas do HTML e também com aquelas do XML o e-comercial (&) deve ser ele mesmo referenciado como uma entidade caracter (por exemplo,"&
"). Por exemplo, quando o artributo href
do elemento a
se refere a um script CGI que colhe parâmetros, ele deve ser expresso como:http://my.site.dom/cgi-bin/myscript.pl?class=guest&name=user
ao invés de http://my.site.dom/cgi-bin/myscript.pl?class=guest&name=user
.
As recomendações para Folhas de Estilo em Cascata Nível 2 [CSS2] definem as propriedades de estilo que são aplicáveis a árvore de análises do documento HTML ou XML. Diferenças no modo de análise produzirão resultados visuais ou auditívos distintos dependendo do seletor utilizado. As seguintes dicas reduzirão estes efeitos em documentos os quais são apresentados sem modificação em ambos tipos de mídia:
Em HTML 4 e XHTML, o elemento style
pode ser usado para definir regras de estilo, internamente no documento.. Em XML, uma declaração de folha de estilo XML é usada para definir regras de estilo. Com o propósito de ser compatível com esta convenção, o elemento style
deve ter seu identificador de fragmento escrito, com o uso do atributo id
e uma declaração de folha de estilo XML deve referenciar-se a este fragmento. Por exemplo:
<?xml-stylesheet href="http://www.w3.org/StyleSheets/TR/W3C-REC.css" type="text/css"?> <?xml-stylesheet href="#internalStyle" type="text/css"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>An internal stylesheet example</title> <style type="text/css" id="internalStyle"> code { color: green; font-family: monospace; font-weight: bold; } </style> </head> <body> <p> This is text that uses our <code>internal stylesheet</code>. </p> </body> </html>
Alguns caracteres que são legais em documentos HTML, são ilegais em documentos XML. Por exemplo, em HTML, o caracter "Formfeed" (U+000C) é tratado como espaço em branco em XHTML, dado ao fato de que em XMLesta definição de caracter é ilegal.
O caracter de referência '
(o apóstrofe, U+0027) foi introduzido em XML 1.0 mas não consta do HTML. Deve-se contudo usar '
ao invès de '
para funcionar corretamente nas aplicaações de usuário do HTML 4.
Este apêndice é informativo.
Esta especificação foi escrita com a participação dos membros do Grupo de Trabalho da W3C HTML.
À época da publicação desta segunda edição os membros eram:
À época da publicação da primeira edição os membros eram:
Este apêndice é informativo.