From Htmlpedia
Contents |
OpenSP: O tipo do documento não permite o elemento %1 aqui
Causa:
O elemento mencionado acima foi encontrado num contexto onde não é permitido pela declaração de tipo do documento (DOCTYPE Declaration).
Em geral isso significa que há um elemento legítimo num lugar onde ele não deveria estar, como por exemplo um elemento <style> na seção <body> ao invés do cabeçalho (<head>).
Uma causa comum deste erro é o uso de sintaxe XHTML em documentos HTML. Em virtude das regras implícitas de fechamento de elementos de HTML, este erro pode causar um efeito cascata. Por exemplo, usar a forma abreviada de marcadores vazios (<x/>) do XHTML para os elementos <meta/> e <link/> na seção <head/> dum documento HTML pode levar o parser a inferir o fim da seção <head/> e o início da seção <body/> (onde <meta/> e <link/> não são permitidos, daí o erro).
Ao usar JavaScript para inserir HTML num documento do lado do cliente, deve-se esconder do validador os elementos HTML dentro do código JavaScript. Isto é particularmente importante ao trabalhar-se com XHTML.
Exemplos
Elemento STYLE mal posicionado:
![]() | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head> <title>Estiloso</title> </head> <body> <style type="text/css"> </style> </body> </html> |
![]() | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head> <title>Estiloso</title> <style type="text/css"> </style> </head> <body> </body> </html> |
Sintaxe XHTML num documento HTML:
![]() | <link ... /> |
![]() | <link ... > |
JavaScript não escapado num documento XHTML:
![]() | <script type="text/javascript"> var output = "<html><body><p>Oi!<\/p><\/body><\/html>"; </script> |
![]() | <script type="text/javascript"> //<![CDATA[ var output = "<html><body><p>Oi!<\/p><\/body><\/html>"; //]]> </script> |
Solução:
- Se o problema é causado por um elemento mal posicionado, remova-o.
- Se o problema é causado pelo uso de sintaxe XHTML num documento HTML, remova as barras de fechamento.
- Se o problema é causado pelo HTML dentro de código JavaScript embarcado, envolva o código JavaScript numa seção CDATA.
Referências:
- Validador W3C: http://validator.w3.org/
- Tornando JavaScript compatível com XHTML: http://www.codehouse.com/javascript/tips/xhtml/


