2010-10-29 11 views
59

"Stare" standardy HTML/XHTML posiada DTD (Document definicja typu) zdefiniowanej dla nichGdzie jest definicja typu dokumentu 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

This DTD określa zasady elementów gniazdowania - „który rodzaje elementów mogą pojawiać się w jakich typach elementów ". Zrobiłem diagram dla XHTML 1.0 tutaj (przepraszam, nie mam już tego zasobu)

Chciałbym zaktualizować ten schemat za pomocą nowej wersji, która zawiera również nowe elementy HTML5. Wydaje się jednak, że nie ma DTD HTML5. Wygląda na to, że reguły zagnieżdżania są zdefiniowane przez różne modele zawartości zdefiniowane w HTML5.

Więc nie ma DTD, prawda?

kolejne pytanie: Czy istnieje powód, dlaczego nie ma DTD w HTML5? DTD jest tak dobrą metodą definiowania reguł zagnieżdżania dla wszystkich różnych typów elementów. Dlaczego nie włączyliby czegoś takiego?

Aktualizacja: Znalazłem to: http://www.w3.org/TR/html5/dom.html#kinds-of-content Chyba jest to najbliżej o DTD.

Aktualizacja: Visual Studio Team zanotował schematu XML dla XHTML5. Myślę, że to odpowiada na moje pytanie: 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

Link 'http: //vidasp.net ...' przekierował mnie [tutaj] (http://www.scanerrors.com/dutch.php?t202id=515953&t202kw=Javascript) – RubenGeert

+0

@ pythonforspss.org Tak. Nie mam już tej domeny. Usunąłem ten link. Dziękuję za poinformowanie mnie. –

+0

To samo dla XSD: http://stackoverflow.com/questions/5638366/is-there-an-xhtml-xsd-equivalent-available-for-html5 –

Odpowiedz

53

Brak DTD HTML5. Kod HTML5 RC jawnie says this podczas omawiania serializacji XHTML, co oczywiście odnosi się również do serializacji HTML.

DTD zostały uznane przez projektantów HTML5 jako zbyt ograniczone w ekspresyjnej władzy, a walidatorami HTML5 (w zasadzie trybie HTML5 http://validator.nu a jego kopia w http://validator.w3.org) stosowanie schematów i kontrole doraźne, nie walidacji DTD oparte.

Co więcej, HTML5 został zaprojektowany w taki sposób, że napisanie DTD nie jest możliwe. Na przykład nie ma sposobu SGML do przechwytywania reguły HTML5, że jakakolwiek nazwa atrybutu rozpoczynająca się od "data-" i zgodna z pewnymi ogólnymi regułami jest poprawna. W SGML atrybuty muszą być wymienione indywidualnie, więc DTD musiałby być nieskończony.

Możliwe jest projektowanie DTD, które odpowiadają HTML5 z pewnymi pominięciami i być może z nałożonymi dodatkowymi regułami, ale tak naprawdę nie będą to DTD HTML5. Moje experiment z tym pomysłem nie jest zbyt zachęcające: zbyt wiele ograniczeń, zbyt trudnych, a DTD musiałoby być tak liberalne, że wiele błędów składniowych byłoby nieuchwytnych.

+0

Więc DTD jest rzeczą SGML? –

+2

DTD to rzecz SGML i XML. DTD XML jest jeszcze bardziej ograniczony w ekspresji niż DTD SGML; XML to także uproszczenie SGML w tym obszarze. –

+0

@ JukkaK.Korpela - nie jestem pewien, czy nadal się o to troszczę, ale wpis w twoim faux HTML5 DTD wydaje się zdecydowanie niepoprawny. Jedynym dozwolonym dzieckiem jest , a to nie wydaje się być zawarte, podczas gdy nieprawidłowe dzieci są wymienione za pomocą% frazy; – pgoetz

21

Prawidłowo. Nie ma DTD. Jednak dokumenty HTML5 powinny zaczynać się od <!DOCTYPE html> Tak więc istnieje DOCTYPE, ale bez DTD.

Patrz:

+0

@Adam DOCTPYE oczywiście nie ma odniesienia do DTD. Byłoby jednak miło, gdyby nie było "nieoficjalnego" DTD tylko po to, by mieć dobry przegląd zasad zagnieżdżania ... –

+5

@ Šime Vidas DTD pochodzi z HTML-owych korzeni SGML. HTML5 nie jest już oparty na SGML, więc nie ma DTD. – Adam

+0

+1 zwięzła odpowiedź. Warto też wspomnieć, że HTML5 jest obecnie roboczą wersją roboczą, z kilkoma zmianami w ostatnich miesiącach. DTD ma sens po osiągnięciu stabilnego statusu, co obecnie nie ma miejsca. Mimo to można bezpiecznie założyć i używać pewnych elementów i API, które są stabilne, ale cała specyfikacja nie jest. – Dave

0

myślę, że usunął ze starymi DTD, teraz po prostu zacząć stron HTML z: <!DOCTYPE HTML>

Może W3C w końcu wyjdź z jednym.

7

Stworzyłem DTD HTML5 do wykorzystania w moich projektach PHP XML. Nie jest piękny, ale działa z dobrze sformułowanym XHTML5 (czyli HTML5 wyrażonym jako XML).

Można pobrać go z mojego konta bitbucket tutaj:

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

Enjoy!

+1

Jest jeszcze jeden, tam: https://www.cs.tut.fi/~jkorpela/html5-dtd.html – Hibou57

+0

DTD autorstwa Jukka K. Korpela zostało już wspomniane przez samego w przyjętej odpowiedzi, @ Hibou57. – Palec

1

Niektóre Marcus z sgmljs.net utworzono i analyzed an SGML DTD for HTML 5.1 i rozpoczęto thread in the XML-DEV mailing list do przejrzenia i dyskusji. Dyskusja dotyczy jak dotąd definicji jednostek.

Właśnie ukończyłem analizę HTML 5.1 zalecenia W3C na http://sgmljs.net/docs/html5.html (z języka znaczników zamiast internetowej POV rozwoju), a ja opublikowanie go tutaj do wglądu w formie początkowej SGML DTD do parsowania HTML 5.1, wraz z długim tekstem analizy .

[...]

Jestem świadomy, że WHATWG i W3C są od dawna odsunięte od SGML (i XML w większości internetowych związanych z specyfikacją pracy), traktując je jako techniką starszego i nieco zarozumiałość w tekście specyfikacji i gdzie indziej. Ale jak pokazuje analiza gramatyki HTML5 , w zasadzie zrezygnowali oni z użycia wszystkich formalnych metod (i pokazuje co najmniej dwie wady omówione w analizie ).

Nic oficjalnego, ale może ta inicjatywa zyska przyczepność lub przynajmniej znajdzie jej użytkowników jako nieoficjalny zasób.

+0

Znalazłem informacje o inicjatywie interesujące i ta odpowiedź z pewnością przyniosła coś więcej niż tylko link, @cpburnz (i innych recenzentów). [Inna odpowiedź] (https://stackoverflow.com/a/28543847/2157640) w tym pytaniu i odpowiedzi ma bardzo podobną zawartość - tylko link i krótki opis innego nieoficjalnego HTML5 DTD. Otrzymał 6 przegranych i żadnych zniżek. Zawarłem odpowiednie informacje z listy xml-dev i nie widzę lepszego sposobu na udzielenie odpowiedzi na to pytanie. – Palec

Powiązane problemy