Pergunta

Os padrões HTML/XHTML "antigos" têm um DTD (definição de tipo de documento) definido para eles:

HTML 4.01 http://www.w3.org/tr/html401/sgml/dtd.html
Xhtml 1.0 http://www.w3.org/tr/xhtml1/dtds.html#a_dtd_xhtml-1.0-strict

Esses DTDs especificam as regras para os elementos de nidificação - "quais tipos de elementos podem aparecer em que tipos de elementos". Eu fiz um diagrama para xhtml 1.0 aqui (desculpe, eu não tenho mais esse recurso)

Gostaria de atualizar esse diagrama com uma nova versão que também inclui os novos elementos HTML5. No entanto, não parece haver um HTML5 DTD. Parece que as regras de nidificação são definidas pelos vários modelos de conteúdo definidos no HTML5.

Portanto, não há DTD, correto?

Questão a seguir: Existe uma razão para que não haja DTD no HTML5? O DTD é um método tão bom de definir as regras de nidificação para todos os diferentes tipos de elementos. Por que eles não incluiriam uma coisa dessas?

Atualizar: Eu achei isto: http://www.w3.org/tr/html5/dom.html#kinds-of-content Eu acho que este é o mais próximo de ter um DTD.

Atualizar: A equipe do Visual Studio fez um esquema XML para XHTML5. Eu acho que isso responde à minha pergunta: http://blogs.msdn.com/b/webdevtools/archive/2009/11/18/html-5-intellisense-and-validation-schema-for-visual-studio-2008 e visual-web-de-desenvolvedor. ASPX

Foi útil?

Solução

Não há html5 dtd. O html5 rc explicitamente diz isso Ao discutir a serialização do XHTML, e isso também se aplica claramente à serialização do HTML.

Os DTDs foram considerados pelos designers do HTML5 como muito limitados em poder expressivo, e validadores HTML5 (basicamente o modo HTML5 do http://validator.nu e sua cópia em http://validator.w3.org/nu/) Use esquemas e verificações ad hoc, não validação baseada em DTD.

Além disso, o HTML5 foi projetado para que escrever um DTD, pois é impossível. Por exemplo, não existe uma maneira SGML de capturar a regra HTML5 de que qualquer nome de atributo que começa com "dados-" e cumpra certas regras gerais é válido. No SGML, os atributos precisam ser listados individualmente; portanto, um DTD precisaria ser infinito.

É possível projetar DTDs que correspondem ao HTML5 com algumas omissões e talvez com algumas regras extras impostas, mas elas não serão realmente HTML5 DTDs. Meu experimentar Com a idéia, não é muito encorajador: muitas limitações, complicadas demais, e o DTD precisaria ser tão permissivo que muitos erros de sintaxe seriam desalpretados.

Outras dicas

Correto. Não há DTD. No entanto, os documentos html5 devem começar com <!DOCTYPE html> Portanto, há um doctype, mas não DTD.

Ver:

Eu criei um HTML5 DTD para uso nos meus projetos PHP XML. Não é bonito, mas funciona com XHTML5 bem formado (ou seja, html5 expresso como XML).

Você pode pegar na minha conta Bitbucket aqui:

https://bitbucket.org/kashbridge/dtd/overview

Apreciar!

Certos marcus de sgmljs.net criados e analisado um Sgml dtd para html 5.1 e começou um Tópico na lista de discussão XML-Dev para revisão e discussão. A discussão gira em torno das definições de entidade até agora.

Acabei de concluir minha análise da recomendação HTML 5.1 do W3C em http://sgmljs.net/docs/html5.html (De uma linguagem de marcação em vez de POV de desenvolvimento da Web), e estou publicando -o aqui para revisão na forma de um DTD SGML inicial para analisar o HTML 5.1, juntamente com um longo texto de análise.

[…]

Estou ciente de que o WhatwG e o W3C se afastaram há muito tempo do SGML (e XML na maioria dos trabalhos de especificação relacionados à Web), tratando-o como uma técnica herdada e com uma atitude um tanto presunçosa no texto da especificação e em outros lugares. Mas, como mostra a análise dos mostra a gramática do HTML5, eles essencialmente abandonaram o uso de qualquer método formal Alltogether (e isso mostra em pelo menos duas falhas discutidas na análise).

Nada oficial ainda, mas talvez essa iniciativa tenha tração ou, pelo menos, encontre seus usuários como um recurso não oficial.

Eu acho que eles acabaram com os DTDs antigos, agora apenas começamos as páginas HTML com: <!DOCTYPE HTML>

Talvez o W3C sai com um eventualmente.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top