Copyright ©2002 W3C® (MIT, INRIA, Keio), Todos os direitos reservados. São aplicáveis as disposições do W3C relativas a responsabilidades, marcas, uso de documentos e licensa de software.
Este documento é um sumário das boas práticas em uso, para servir as famílias de documentos XHTML usando os diferentes tipos de mídia disponíveis na Internet. Resumindo, 'application/xhtml+xml' "MUST" - DEVE ser usado para servir documentos da família XHTML, e o uso de 'text/html' "MUST" - DEVE ficar limitado aos documentos XHTML 1.0 compatíveis com HTML. 'application/xml' e 'text/xml' "MAY" - PODEM também ser usados, mas sempre que for apropriado, 'application/xhtml+xml' "MUST" - DEVE ser usado em lugar de tipos de mídia genéricos para XML.
Esta seção descreve o status deste documento à época da sua publicação. Outros documentos complementares futuros, sobrescreverão este documento. A última versão da série destes documentos encontra-se no sítio do W3C.
Este documento é uma Nota disponibilizada pelo World Wide Web Consortium (W3C) para efeitos informativos. A publicação desta Nota pelo W3C não implica no seu endosso pelo W3C ou pelo W3C Team, ou por qualquer Membro do W3C.
Este documento resultou de um consenso entre os membros do W3C HTML Working Group sobre o uso de tipos de mídia na Internet para as diferentes famílias de documentos XHTML. Contudo este documento não pretende ser um especificação normativa. Ao contrário, trata-se de recomendações com a finalidade de maximizar a interoperacionalidade dos documentos XHTML no que diz respeito aos tipos de mídia. Este documento não entra em detalhes a respeito de itens específicos de tipos de mídia ou namespaces, assunto este que está fora do escopo do HTML Working Group charter e é de competência do Technical Architecture Group (TAG).
Comentários sobre este documento devem ser encaminhados para www-html-editor@w3.org (archive). Discussão pública sobre este documento pode ser encontrada na lista de discussão www-html@w3.org (archive).
Este documento foi produzido pelo W3C HTML Activity. Os objetivos do HTML Working Group são discutidos no HTML Working Group charter. Uma list of current W3C Recommendations e outros documentos técnicos podem ser encontrados em http://www.w3.org/TR.
XHTML 1.0 [XHTML1] reformulou o HTML 4 [HTML4] para uma aplicação XML e a Modularização do XHTML [XHTMLM12N] permite definir uma marcação baseada em XHTML usando módulos XHTML conhecidos como "Família XHTML". Contudo por razões históricas, não está muito bem documentada e esclarecida a questão de tipos de mídia na Internet para servir documentos XHTML.
"5.1 Os tipos de mídia para Internet" constantes da primeira edição [XHTML1] preconizam vagamente o seguinte:
À época da publicação desta Recomendação, ainda não há uma decisão sobre o rótulo MIME a ser empregado para aplicações XML.
Contudo, documentos XHTML que seguem as diretrizes previstas no Appendix C, "Diretrizes de Compatibilidade com o HTML" podem ser rotulados com o tipo de mídia para Internet "text/html", já que são compatíveis com a maioria dos navegadores HTML. Este documento não faz qualquer recomendação para a rotulação MIME para os demais documentos XHTML.
Ainda assim, após a publicação do [XHTML1], uma norma RFC a respeito de tipos de mídia para XML foi revista e publicada sob o título RFC 3023 [RFC3023], que introduziu o sufixo '+xml' para aplicações baseadas em tipos de mídia XML. A 'application/xhtml+xml' para tipos de mídia [RFC3236] foi registrada segundo aquela convenção. Atualmente existem quatro tipos de mídia para rotular a família de documentos XHTML que são - 'text/html', 'application/xhtml+xml', e os tipos genéricos de mídia XML 'application/xml' e 'text/xml'.
A seção a seguir apresenta um resumo das boas práticas em uso, para servir as famílias de documentos XHTML usando os diferentes tipos de mídia disponíveis na Internet.
As palavras chave "MUST" - "DEVE", "MUST NOT" - "NÃO DEVE", "REQUIRED" - "REQUERIDO", "SHALL" - "DEVERÃO", "SHALL NOT" - "NÃO DEVERÃO", "SHOULD" - "DEVERIA", "SHOULD NOT" - "NÃO DEVERIA", "RECOMMENDED" - "RECOMENDADO", "MAY" - "PODE" , e "OPTIONAL" - "OPCIONAL" usadas neste documento devem ser interpretadas como descrito em RFC 2119 [RFC2119].
http://www.w3.org/1999/xhtml
.xml:lang
), mas um documento da família XHTML PODE também incluir elementos e atributos de outros namespaces, tal como da MathML
[MathML2].A seção a seguir apresenta um resumo de quais tipos de mídia para Internet "SHOULD" - "DEVERIAM" ser usados para cada família XHTML e com que propósito.
O tipo de mídia 'text/html' [RFC2854] é usado a princípio para HTML e não para XHTML. Em geral este tipo de mídia NÃO É apropriado para XHTML.
Contudo, conforme prescrito nas [RFC2854], [XHTML1] define um perfil para uso de XHTML que seja compatível com HTML 4.01 e que também pode ser rotulado como 'text/html'
.
O Apêndice C do [XHTML1], "HTML Compatibility Guidelines" resume as diretrizes a serem seguidas pelos autores que desejam servir XHTML para serem renderizados pelos agentes HTML atuais. O uso de 'text/html' para XHTML "SHOULD" - "DEVERIA" ficar limitado aos propósitos de renderização pelos agentes de usuário HTML atuais e "SHOULD" - "DEVERIA" limitar-se também aos documentos [XHTML1] que seguem as diretrizes de compatibilidade com o HTML. Em particular, 'text/html' NÃO É recomendado para a família de documentos XHTML que permitem uso de elementos e atributos oriundos de namespaces exteriores, tal como XHTML+MathML [XHTML+MathML].
Documentos XHTML servidos como 'text/html' não serão processados como XML [XML10], p.ex.: erros de má formação não serão detectados pelos agentes de usuário. Esteja ciente ainda de que as regras do HTML serão aplicadas ao DOM e as folhas de estilo (ver C.11 e C13 do [XHTML1] respectivamente).
Autores deverão também, tomar cuidados com a codificação de caracteres. É errônea a interpretação de que um documento XHTML sendo um documento XML sua codificação de caracteres é tratada como UTF-8 ou UTF-16 na ausência de uma informação explicita sobre a codificação. Isto NÃO É verdade quando um documento XHTML é servido como 'text/html'. A diretriz "6. Charset default rules" do [RFC2854] diz o seguinte:
O uso de uma codificação explícita de carateres é altamente recomendado. Enquanto [MIME] especifica que "O conjunto padrão de caracteres a ser considerado quando da ausência de um parâmetro que o defina é o US-ASCII." A seção 3.7.1 do [HTTP] define que: "os subtipos de mídia para o tipo 'text' admitem como conjunto padrão de caracteres a 'ISO-8859-1'". A seção 19.3 do [HTTP] acresenta uma diretriz. Usar uma definição explicita de caracteres, evita confusão.
Usar uma definição explicita de caracteres também leva em conta que a forte tendência da maioria dos navegadores é o uso de codificação padrão nem sempre para 'ISO-8859-1'; ao contrário, a codificação padrão ou usa um conjunto proprietário de caracteres ou um conjunto de caracteres empregado em uma determinada comunidade regional ou nacionalidade. Para considerações mais detalhadas consulte a seção 5.2 do [HTML40].
A seção "5.2.2 Specifying the character encoding" do HTML 4 na especificação
[HTML4] define que o navegador não deverá assumir um valor padrão para o parâmetro charset
.
Assim sendo, os autores "SHOULD NOT" - "NÃO DEVERIAM" assumir qualquer valor padrão para documentos XHTML servidos como 'text/html', conforme mencionado nas
[RFC2854], o uso de explícito de uma codificação é FORTEMENTE RECOMENDADO.
Quando houver dificuldades de declarar explicitamente uma codificação de caracteres para um protocolo de alto nível os autores "SHOULD" - " DEVERIAM" incluir a declaração XML(p.ex.:<?xml version="1.0" encoding="EUC-JP"?>) e uma tag meta com declaração http-equiv (p.ex.: <meta http-equiv="Content-Type"
content="text/html; charset=EUC-JP" />). Ver
"C.9. Character Encoding" of [XHTML1]
para detalhes.
O tipo de mídia 'application/xhtml+xml' [RFC3236] é o tipo de mídia para os documentos da família XHTML e em particular é adequado para documentos do tipo XHTML Host Language. Documentos do tipo família XHTML adequados a este tipo de mídia incluem [XHTML1], [XHTMLBasic], [XHTML11] e [XHTML+MathML]. Um documento do tipo XHTML Host Language que adiciona elementos e atributos de namespaces exteriores PODEM identificar-se com o parâmetro opcional 'de perfil' ou de outras maneiras, como "Content-features" no cabeçalho MIME descritas nas RFC 2912 [RFC2912]. Cada namespace "SHOULD" - " DEVERIA" estar identificado explicitamente na declaração namespace [XMLNS]. Este documento não sobrescreve os registros de tipos de mídia especificadas para documentos do tipo XHTML Host Language.
Em geral este tipo de mídia NÃO É não é adequado para tipos de documento XHTML Integration Set. Este documento não define qual tipo de mídia deverá ser usado para documentos do tipo XHTML Integration Set.
'application/xhtml+xml' "SHOULD" - " DEVERIA" ser usado para servir documentos XHTML para agentes de usuário XHTML. Autores que desejam oferecer suporte tanto para agentes de usuário XHTML como HTML "MAY" - "PODEM" utilizar negociação de conteúdos para servir documentos HTML como 'text/html' e documentos XHTML como 'application/xhtml+xml'. Notar ainda que documentos XHTML servidos como 'application/xhtml+xml' não necessitam estar em acordo com as diretrizes de compatibilidade com o HTML.
Quando o autor servir um documento XHTML com este tipo de mídia "SHOULD" - " DEVERIA" incluir a instrução XML para processamento e associação das folhas de estilo [XMLstyle].
Para efeitos de codificação de caracteres como mencionado no capítulo "6. Charset default rules" of [RFC3236], 'application/xhtml+xml' leva em conta as mesmas considerações que 'application/xml'. Ver section 3.3 para detalhes.
O tipo de mídia 'application/xml' [RFC3023] é um tipo genérico para documentos XML e a definição de 'application/xml' é adequada para servir documentos XHTML com este tipo de mídia. Qualquer documento da família XHTML "MAY" - "PODE" ser servido como 'application/xml'.
Contudo, os autores devem estar atentos para o fato de que um documento assim servido nem sempre será processado como XHTML (p.ex.: hyperlinks podem não ser reconhecidos), dependendo do agente de usuário. Processadores XML genéricos podem reconhecer tais documentos como um documento XML que incluiu elementos e atributos do namespace XHTML (e de outros) e assim não saber como tratar o documento ao contrário do correto tratamento que dão a documentos XML genéricos.
Autores "SHOULD" - " DEVERIAM" identificar explicitamente o namespace XHTML via declaração de namespace quando servir um documento da família XHTML como 'application/xml' com a finalidade de facilitar o processamento. A XML stylesheet PI "SHOULD" - " DEVERIA" ser usada para associar folhas de estilo.
Sempre que for apropriado, 'application/xhtml+xml' "SHOULD" - " DEVERIA" ser usada em lugar de 'application/xml'.
Assim como para a codificação de caracteres as "3.2 Application/xml Registration" das
[RFC3023] dizem que o uso do parâmetro charset é FORTEMENTE RECOMENDADO
, e ainda define regras para tratar uma entidade recebida por uma aplicação application/xml
quando o parâmetro charset foi omitido, e nenhuma informação via MIME Content-Type header
tiver sido fornecida.
Isto significa que processadores conformes com XML "MUST" - "DEVEM" seguir o que está prescrito na seção 4.3.3 do
[XML10].
Por outro lado enquanto é FORTEMENTE RECOMENDADO
a especificação explicita de um parâmetro charset para um protocolo de alto nível os autores "SHOULD" - " DEVERIAM" incluir a declaração XML
(p.ex.:<?xml version="1.0" encoding="EUC-JP"?>).
Notar que uma declaração meta http-equiv não é reconhecida por processadores XML e assim os autores "SHOULD NOT " - " NÃO DEVERIAM" incluir tal declaração em documentos XHTML servidos como 'application/xml' (e também
'application/xhtml+xml').
O tipo de mídia 'text/xml' [RFC3023] é outro tipo de mídia genérico para documentos XML e a definição 'text/xml' não supõe servir documentos XHTML como tal tipo. Qualquer documento da família XHTML "MAY" - "PODE" ser servido como 'text/xml'. As considerações para 'application/xml' aplicam-se a 'text/xml'. Sempre que for apropriado, 'application/xhtml+xml' "SHOULD" - " DEVERIA" ser usado em lugar de 'text/xml'.
Os autores devem estar atentos para a diferença entre 'application/xml' (bem como entre 'application/xhtml+xml'l)
e 'text/xml' com relação ao tratamento dado à codificação de caracteres. De acordo com a seção "3.1 Text/xml Registration" do
[RFC3023],
uma entidade recebida por uma aplicação text/xml onde o parâmetro charset foi omitido os processadores MIME e processadores XML "MUST" - "DEVEM" usar o valor padrão "us-ascii"[ASCII]
.
Este valor padrão tem prioridade sobre o valor especificado na declaração XML , ou seja os valores padrão de codificação XML,
UTF-8 e UTF-16 quando não for fornecidade a declaração de codificação, assim, omitir a declaração do conjunto de caracteres em 'text/xml' pode acarretar resultados inesperados.
Como mencionado nas [RFC3023], o uso do parâmetro charset é
FORTEMENTE RECOMENDADO.
A tabela a seguir resume as recomendações destinadas aos autores de conteúdos, para rotular seus documentos XHTML. Lista também o HTML 4 para fins de comparação.
Tipo de mídia | HTML 4 | XHTML 1.0 (HTML compatível) | XHTML 1.0 (outro) | XHTML Basic / 1.1 | XHTML+MathML |
---|---|---|---|---|---|
text/html | SHOULD | MAY | SHOULD NOT | SHOULD NOT | SHOULD NOT |
application/xhtml+xml | MUST NOT | SHOULD | SHOULD | SHOULD | SHOULD |
application/xml | MUST NOT | MAY | MAY | MAY | MAY |
text/xml | MUST NOT | MAY | MAY | MAY | MAY |
"HTML 4.01 Specification", W3C Recommendation, D. Raggett, A. Le Hors, I. Jacobs, eds., 24 December 1999. Available at: http://www.w3.org/TR/1999/REC-html401-19991224
The latest version of HTML 4.01 is available at: http://www.w3.org/TR/html401
The latest version of HTML 4 is available at: http://www.w3.org/TR/html4
"Mathematical Markup Language (MathML) Version 2.0", W3C Recommendation, D. Carlisle, P. Ion, R. Miner, N. Poppelier, eds., 21 February 2001. Available at: http://www.w3.org/TR/2001/REC-MathML2-20010221
The latest version is available at: http://www.w3.org/TR/MathML2
"XHTML™ 1.0 The Extensible HyperText Markup Language (Second Edition): A Reformulation of HTML 4 in XML 1.0", W3C Recommendation, S. Pemberton et al., August 2002. Available at: http://www.w3.org/TR/2002/REC-xhtml1-20020801
The first edition is available at: http://www.w3.org/TR/2000/REC-xhtml1-20000126
The latest version is available at: http://www.w3.org/TR/xhtml1
"XHTML™ 1.1 - Module-based XHTML", W3C Recommendation, M. Altheim, S. McCarron, eds., 31 May 2001. Available at: http://www.w3.org/TR/2001/REC-xhtml11-20010531
The latest version is available at: http://www.w3.org/TR/xhtml11
"XHTML™ Basic", W3C Recemmendation, M. Baker, M. Ishikawa, S. Matsui, P. Stark, T. Wugofski, T. Yamakami, eds., 19 December 2000. Available at: http://www.w3.org/TR/2000/REC-xhtml-basic-20001219
The latest version is available at: http://www.w3.org/TR/xhtml-basic
"Modularization of XHTML™", W3C Recommendation, M. Altheim, F. Boumphrey, S. Dooley, S. McCarron, S. Schnitzenbaumer, T. Wugofski, eds., 10 April 2001. Available at: http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410
The latest version is at: http://www.w3.org/TR/xhtml-modularization
"Extensible Markup Language (XML) 1.0 Specification (Second Edition)", T. Bray, J. Paoli, C. M. Sperberg-McQueen, E. Maler, eds., 6 October 2000. Available at: http://www.w3.org/TR/2000/REC-xml-20001006
The latest version is available at: http://www.w3.org/TR/REC-xml
"Namespaces in XML", T. Bray, D. Hollander, A. Layman, eds., 14 January 1999. Available at: http://www.w3.org/TR/1999/REC-xml-names-19990114
The latest version is available at: http://www.w3.org/TR/REC-xml-names
"Associating Style Sheets with XML documents Version 1.0", W3C Recommendation, J. Clark, ed., 29 June 1999. Available at: http://www.w3.org/1999/06/REC-xml-stylesheet-19990629
The latest version is available at: http://www.w3.org/TR/xml-stylesheet
Em 3.5. Sumário, alterado 'text/html' para HTML 4 para SHOULD em lugar de MAY.
Atualizado reference to XHTML 1.0 para fazer referência à segunda edição.