From Htmlpedia
Contents |
OpenSP: Caráter não permitido no prólogo
Causa:
O prólogo do documento contém caracteres não permitidos.
Exemplo:
![]() |
Este texto provoca um erro para cada caráter <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
![]() |
<!-- Comentários e brancos são OK. --> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
![]() |
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
Solução:
Remova os caracteres ilegais.
O prólogo do documento é tudo que vem antes da declaração DOCTYPE no início de um documento HTML ou XML. Usualmente, não se deve colocar nada no prólogo.
Há algumas exceções.
- É permitido colocar caracteres em brancos (espaço, retorno de carro, avanço de linha e tabulação) no prólogo.
- Comentários de HTML também são OK.
- Uma declaração XML (chamada de prólogo XML) como a do terceiro exemplo é valida.
Contudo, é melhor evitar até mesmo estas, por causa de desconformidades no Microsoft Internet Explorer.
- Se existir um caráter, seja ele qual for, num documento HTML, o Internet Explorer vai renderizar o documento em modo de exceção ao invés do modo-padrão, o que afetará a aparência da página.
- Num defeito correlato, se o servidor web enviar "Content-Type: application/xhtml+xml" para o internet Explorer, ele não renderiza nada. (O IE não suporta XHTML.)
Ocasionalmente pode ocorrer uma situação na qual o validador reclama de caracteres no prólogo que não aparecem no seu editor de textos preferido. Esses caracteres, que aparecem como  ao visualizar o código-fonte do documento, são a marca de ordem de bytes (BOM - Byte Order Mark). Em documentos codificados no formato UTF-16, a BOM especifica qual byte em cada palavra é o mais significativo. Quando impropriamente aplicado em documentos codificados em UTF-8, porém, a BOM provoca um erro de validação que o traz a esta página. Vários editores de texto, incluindo o Notepad, sorrateiramente adicionam uma BOM a documentos codificados em UTF-8. Para remover a BOM, você talvez precise usar um editor hexadecimal.
Referências:
- Eslaide do W3C sobre declarações XML (em inglês): http://www.w3.org/International/tutorials/tutorial-char-enc/en/slides/Slide0210.html
- Roger Johansson sobre negociação de conteúdo (em inglês): http://www.456bereastreet.com/archive/200408/content_negotiation/
- Wikipedia sobre a marca de ordem dos bytes BOM (em inglês): http://en.wikipedia.org/wiki/Byte_Order_Mark
- Wikipedia sobre editores hexadecimais (em inglês): http://en.wikipedia.org/wiki/Hex_editor
- Validador W3C (em inglês): http://validator.w3.org/


