zbanan [ Centurion ]
Czy każdy poprawny dokument X(HTML) musi mieć deklarację DTD?
Zadano mi takie pytanie, znalazłem takie odpowiedzi:
"HTML 4.01 specifies three DTDs, so authors MUST INCLUDE one of the following document type declarations in their documents."
w3.org
"The DOCTYPE declaration IS ALWAYS the first line in an XHTML document!"
w3schools.com
"There MUST BE a DOCTYPE declaration in the document prior to the root element."
w3.org
Niby wszystko jasne, ale ktoś zarzuca mi, że jednak nie mam racji. O co chodzi? Czy mi się zdaje, czy wg W3C każdy HTML/XHTML musi mieć zadeklarowane DTD, bo inaczej nie jest to POPRAWNY dokument (może się wyświetli, ale walidacja i ogólnie założenie W3C się nie zgadza).
Webmasterzy, pomocy :P
Cremek [ Konsul ]
Musi - koniec.
zbanan [ Centurion ]
Moja znajoma studiuje na UW i wykładowca się z nią kłóci, że NIE i koniec.
WTF? :P
pecet007 [ - ]
Musi mieć.
Wywal deklarację DTD i zobacz jak przeglądarka interpretuje stronę (w firefoksie prawym i informacje o stronie)
Jeśli jest DTD i poprawny XHTML to ładnie pokazuje: tryb standardów, bez DTD tryb wtecznej kompatybilności.
Samo DTD definiuje zachowanie poszczególnych elementów XMLa więc skąś przeglądarka musi wiedzieć jakiego szablonu używać.
zbanan [ Centurion ]
W zasadzie cytaty z [1] pościku wyczerpują temat. Cholera, myślałem, że skoro wykładowca się o to sprzecza, to wie co mówi. Nie ma żadnych odstępstw od tej reguły?
W sumie, co za różnica, nawet jeśli są, to wytyczne W3C są jednoznaczne.
Widzący [ Legend ]
Prawdopodobnie chodzi o logikę, dokument bez DTD może nie wyświetlić się poprawnie ale jednak się wyświetli, przynajmniej w niektórych przypadkach, w innych przypadkach wyświetli sie poprawnie lub też nie spowoduje błędu interpretacji. Z tego punktu widzenia DTD nie jest "niezbędny", dokument XHTML nawet nie musi niczego wyświetlać żeby być poprawny.
zbanan [ Centurion ]
Pytanie brzmiało dokładnie tak:
Każdy poprawny dokument (X)HTML musi zawierać DTD.
Kumpela stwierdziła, że to prawda. Profesor utrzymuje, że nie.
wysiak [ Legend ]
Imho musi, jesli ma przejsc walidacje. Jak Widzacy pisze, bez deklaracji typu jest (spora) szansa, ze dokument sie wyswietli poprawnie, bo programy staraja sie byc user-friendly i idiotoodporne, i probuja doctype zgadywac. Jednak kazdy validator w takim przypadku wyrzuci blad, wiec imho nie mozna powiedziec, ze dokument bez DTD jest dokumentem poprawnym.
Widzący [ Legend ]
Chodzi prawdopododnie o XHTML z XML Schema (zamiast DTD), W3C opublikowało definicję XHTML 1.0 w XML Schema.