2010-10-29 7 views
59

I "vecchi" standard HTML/XHTML hanno un DTD (Document Type Definition) definito per loro:Dov'è la definizione del tipo di documento HTML5?

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

Questo DTD specificano le regole per elementi di raggruppamento - ", che tipi di elementi possono apparire in quali tipi di elementi ". Ho creato uno schema per XHTML 1.0 qui (mi dispiace, non ho più quella risorsa)

Vorrei aggiornare lo schema con una nuova versione che include anche i nuovi elementi HTML5. Tuttavia, non sembra esserci un DTD HTML5. Sembra che le regole di nidificazione siano definite dai vari modelli di contenuto definiti in HTML5.

Quindi non c'è DTD, corretto?

Follow-up domanda: C'è un motivo per cui non v'è alcun DTD in HTML5? Il DTD è un metodo molto utile per definire le regole di nidificazione per tutti i diversi tipi di elementi. Perché non dovrebbero includere una cosa del genere?

Aggiornamento: ho trovato questo: http://www.w3.org/TR/html5/dom.html#kinds-of-content credo, questo è il più vicino ad avere un DTD.

Aggiornamento: Lo Studio Team visivo fatto uno schema XML per XHTML5. Immagino che risponda alla mia domanda: http://blogs.msdn.com/b/webdevtools/archive/2009/11/18/html-5-intellisense-and-validation-schema-for-visual-studio-2008-and-visual-web-developer.aspx

+0

Il collegamento 'http: //vidasp.net ...' reindirizzato [qui] (http://www.scanerrors.com/dutch.php?t202id=515953&t202kw=Javascript) – RubenGeert

+0

@ pythonforspss.org Sì. Non ho più quel dominio. Ho rimosso quel collegamento. Grazie per avermi informato. –

+0

Lo stesso per XSD: http://stackoverflow.com/questions/5638366/is-there-an-xhtml-xsd-equivalent-available-for-html5 –

risposta

53

Non c'è DTD HTML5. L'HTML5 RC esplicitamente says this quando si parla della serializzazione XHTML, e questo si applica chiaramente anche alla serializzazione HTML.

DTD sono stati considerati dai progettisti di HTML5 come troppo limitate in potenza espressiva, e validatori HTML5 (fondamentalmente la modalità HTML5 di http://validator.nu e la sua copia presso http://validator.w3.org) usa schemi e controlli ad hoc, non DTD a base di convalida.

Inoltre, HTML5 è stato progettato in modo che la scrittura di un DTD per esso sia impossibile. Ad esempio, non esiste un modo SGML per acquisire la regola HTML5 che qualsiasi nome di attributo che inizia con "data-" e che rispetti determinate regole generali sia valido. In SGML, gli attributi devono essere elencati individualmente, quindi una DTD dovrebbe essere infinita.

È possibile progettare DTD che corrispondono a HTML5 con alcune omissioni e forse con alcune regole aggiuntive imposte, ma in realtà non saranno DTD HTML5. Il mio experiment con l'idea non è molto incoraggiante: troppe limitazioni, troppo ingannevoli, e il DTD dovrebbe essere così permissivo che molti errori di sintassi andrebbero ignorati.

+0

Quindi DTD è una cosa SGML? –

+2

DTD è una cosa SGML e XML. Una DTD XML è ancora più limitata in termini di potenza espressiva rispetto a una DTD SGML; Anche l'XML è una semplificazione di SGML in quest'area. –

+0

@ JukkaK.Korpela - non sono sicuro che ci tenga ancora questo, ma la voce nel tuo DTD HTML5 faux sembra essere decisamente scorretta. L'unico figlio consentito è e questo non sembra essere incluso, mentre i bambini non validi sono elencati tramite% frase; – pgoetz

21

Corretto. Non c'è DTD. Tuttavia, i documenti HTML5 dovrebbero iniziare con <!DOCTYPE html> Quindi c'è un DOCTYPE, ma nessun DTD.

See:

+0

@Adam Il DOCTPYE non ha alcun riferimento a un DTD, ovviamente. Tuttavia, sarebbe bello se ci fosse un DTD "non ufficiale" solo per avere una buona panoramica delle regole di nidificazione ... –

+5

@ Šime Vidas Il DTD proviene da radici SGML dell'HTML. HTML5 non è più basato su SGML quindi non esiste DTD. – Adam

+0

+1 risposta concisa. Inoltre, vale la pena menzionare che HTML5 è attualmente un progetto di lavoro, con una serie di cambiamenti negli ultimi mesi. Un DTD ha senso dopo aver raggiunto uno stato stabile, che non è il caso in questo momento. Nonostante sia sicuro assumere e utilizzare alcuni elementi e API che sono stabili, ma l'intera specifica non lo è. – Dave

0

Penso che abbiano fatto via con le vecchie DTD, ora cominciamo appena pagine HTML con: <!DOCTYPE HTML>

Forse il W3C ne esci con uno alla fine

7

Ho creato un DTD HTML5 da utilizzare nei miei progetti XML PHP. Non è bello, ma funziona con XHTML5 ben formato (ovvero HTML5 espresso come XML).

Si può afferrare dal mio conto bitbucket qui:

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

Enjoy!

+1

C'è un altro, qui: https://www.cs.tut.fi/~jkorpela/html5-dtd.html – Hibou57

+0

Il DTD di Jukka K. Korpela è già stato menzionato da solo nella risposta accettata, @ Hibou57. – Palec

1

Alcuni Marcus da sgmljs.net creato e analyzed un SGML DTD for HTML 5.1 e avviato un thread in the XML-DEV mailing list per la revisione e la discussione. La discussione ruota attorno alle definizioni di entità finora.

Ho appena completato la mia analisi di HTML 5.1 raccomandazione del W3C presso http://sgmljs.net/docs/html5.html (da un linguaggio di markup piuttosto che sviluppo web PoV), e sto pubblicando qui per la revisione in sotto forma di un primo DTD SGML per l'analisi di HTML 5.1 e un lungo testo di analisi .

[...]

Sono consapevole che WHATWG e W3C sono da tempo allontanati dal SGML (e XML nella maggior parte dei web-lavoro correlato specifica), trattandolo come una tecnica legacy e con un po ' atteggiamento presuntuoso nel testo delle specifiche e altrove. Tuttavia, come mostra l'analisi della grammatica di HTML5, hanno sostanzialmente abbandonato l'uso di tutti i metodi formali alltogether (e mostra almeno due difetti discussi nell'analisi ).

Ancora niente di ufficiale, ma forse questa iniziativa otterrà trazione, o almeno troverà i suoi utenti come una risorsa non ufficiale.

+0

Ho trovato interessanti le informazioni sull'iniziativa e questa risposta ha sicuramente portato più di un semplice link, @cpburnz (e altri revisori). [Un'altra risposta] (https://stackoverflow.com/a/28543847/2157640) in questo Q & A ha un contenuto molto simile - solo un link e una breve descrizione di un'altra DTD HTML 5 non ufficiale. Ha ottenuto 6 upvotes e nessun downvotes. Ho incluso informazioni rilevanti dalla lista xml-dev e non vedo un modo migliore per rispondere a questa domanda ora. – Palec

Problemi correlati