XHTML vs HTML
Devido ao fato de que XHTML é um aplicativo XML, certas práticas que eram perfeitamente legais em HTML 4 baseado em SGML devem ser alteradas. Você já viu a sintaxe XHTML no capítulo anterior, então as diferenças entre XHTML e HTML são muito óbvias. A seguir está a comparação entre XHTML e HTML.
Documentos XHTML devem ser bem formados
Boa formação é um novo conceito introduzido pelo XML. Essencialmente, isso significa que todos os elementos devem ter tags de fechamento e você deve aninhá-los corretamente.
CORRECT: Nested Elements
<p>Here is an emphasized <em>paragraph</em>.</p>
INCORRECT: Overlapping Elements
<p>Here is an emphasized <em>paragraph.</p></em>
Elementos e atributos devem estar em letras minúsculas
Os documentos XHTML devem usar letras minúsculas para todos os elementos HTML e nomes de atributos. Essa diferença é necessária porque o documento XHTML é considerado um documento XML e o XML diferencia maiúsculas de minúsculas. Por exemplo, <li> e <LI> são tags diferentes.
Tags finais são obrigatórias para todos os elementos
Em HTML, certos elementos podem omitir a tag final. Mas o XML não permite que as tags finais sejam omitidas.
CORRECT: Terminated Elements
<p>Here is a paragraph.</p><p>here is another paragraph.</p>
<br><hr/>
INCORRECT: Unterminated Elements
<p>Here is a paragraph.<p>here is another paragraph.
<br><hr>
Os valores de atributo devem sempre ser citados
Todos os valores de atributos, incluindo valores numéricos, devem estar entre aspas.
CORRECT: Quoted Attribute Values
<td rowspan="3">
INCORRECT: Unquoted Attribute Values
<td rowspan=3>
Minimização de Atributo
XML não suporta minimização de atributos. Os pares de atributo-valor devem ser escritos por extenso. Nomes de atributos como compact e checks não podem ocorrer em elementos sem que seu valor seja especificado.
CORRECT: Non Minimized Attributes
<dl compact="compact">
INCORRECT: Minimized Attributes
<dl compact>
Tratamento de espaços em branco em valores de atributo
Quando um navegador processa atributos, ele faz o seguinte -
Tira espaços em branco à esquerda e à direita.
Mapeia sequências de um ou mais caracteres de espaço em branco (incluindo quebras de linha) para um único espaço entre palavras.
Elementos de script e estilo
Em XHTML, o script e os elementos de estilo não devem ter caracteres “<” e “&” diretamente, se existirem; então, eles são tratados como o início da marcação. As entidades como “<” e “&” são reconhecidas como referências de entidade pelo processador XML para exibir os caracteres “<” e “&” respectivamente.
Encapsular o conteúdo do script ou elemento de estilo em uma seção marcada com CDATA evita a expansão dessas entidades.
<script type="text/JavaScript">
<![CDATA[
... unescaped VB or Java Script here... ...
]]>
</script>
Uma alternativa é usar scripts externos e documentos de estilo.
Os elementos com atributos id e name
XHTML recomenda a substituição do atributo name pelo atributo id . Observe que no XHTML 1.0, o atributo name desses elementos está formalmente obsoleto e será removido em versões subsequentes do XHTML.
Atributos com conjuntos de valores predefinidos
HTML e XHTML têm alguns atributos que possuem conjuntos de valores predefinidos e limitados. Por exemplo,type atributo do inputelemento. Em HTML e XML, são chamadosenumerated attributes. No HTML 4, a interpretação desses valores não fazia distinção entre maiúsculas e minúsculas, então um valor deTEXT era equivalente a um valor de text.
No XHTML, a interpretação desses valores diferencia maiúsculas de minúsculas, portanto, todos esses valores são definidos em minúsculas.
Referências de entidade como valores hexadecimais
HTML e XML permitem referências a caracteres usando valor hexadecimal. Em HTML, essas referências podem ser feitas usando&#Xnn; ou &#xnn; e eles são válidos, mas em documentos XHTML, você deve usar a versão em minúsculas apenas, como &#xnn;.
O elemento <html> é obrigatório
Todos os elementos XHTML devem ser aninhados no elemento raiz <html>. Todos os outros elementos podem ter subelementos que devem estar em pares e aninhados corretamente em seu elemento pai. A estrutura básica do documento é -
<!DOCTYPE html....>
<html>
<head> ... </head>
<body> ... </body>
</html>