Przejdź do głównej treści

Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Zawód: Technik informatyk, Technik programista

Kategorie: Tworzenie stron WWW Systemy CMS i narzędzia webowe

Słowa kluczowe: Deklaracja DOCTYPE w HTML HTML5

Deklaracja

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
wskazuje, że dokument zapisano w języku
A. HTML 5
B. XHTML 1.1
C. HTML 4.01
D. XHTML 1.0
Deklaracja wskazuje na XHTML 1.0, dokładniej na odmianę XHTML 1.0 Strict. Kluczowy fragment to identyfikator publiczny -//W3C//DTD XHTML 1.0 Strict//EN oraz odwołanie do pliku DTD xhtml1-strict.dtd. DTD, czyli Document Type Definition, opisuje reguły poprawnej składni dokumentu: jakie elementy można stosować, w jakiej kolejności i z jakimi atrybutami. W praktyce taki zapis mówi przeglądarce i walidatorowi, że dokument powinien być sprawdzany według zasad XHTML 1.0, a nie HTML5 czy HTML 4.01. XHTML jest bardziej rygorystyczny, bo bazuje na XML, więc np. znaczniki muszą być poprawnie domykane, nazwy elementów zwykle zapisuje się małymi literami, a wartości atrybutów podaje się w cudzysłowach. Moim zdaniem to dobry przykład, że sama deklaracja DOCTYPE potrafi dużo powiedzieć o technologii użytej w dokumencie. W pracy webdevelopera przydaje się to przy walidacji starszych stron, migracji do HTML5 albo poprawianiu kodu po kimś, kto mieszał składnię HTML i XHTML trochę bez kontroli.
Ta deklaracja nie oznacza HTML 4.01, mimo że składniowo wygląda podobnie do starszych deklaracji DOCTYPE z identyfikatorem PUBLIC i adresem do DTD. W HTML 4.01 w identyfikatorze pojawiłby się zapis odnoszący się bezpośrednio do HTML 4.01, na przykład HTML 4.01 Strict, a ścieżka do definicji dokumentu prowadziłaby do plików związanych z HTML 4, nie do xhtml1-strict.dtd. Częsty błąd polega tutaj na patrzeniu tylko na słowo Strict. Ono określa wariant standardu, ale nie nazwę języka dokumentu. Strict występowało zarówno przy HTML 4.01, jak i przy XHTML 1.0, więc trzeba czytać cały identyfikator, a nie tylko jego końcówkę.

Nie jest to też HTML5. W HTML5 deklaracja typu dokumentu została mocno uproszczona i ma postać <!DOCTYPE html>. Nie zawiera ani identyfikatora PUBLIC, ani adresu do DTD, ponieważ HTML5 nie opiera się na DTD w takim samym sensie jak starsze standardy. Jeżeli ktoś wybiera HTML5, to zwykle sugeruje się samym początkiem <!DOCTYPE html, ale w tym pytaniu reszta deklaracji jest najważniejsza. Z mojego doświadczenia to właśnie ten pośpiech najczęściej prowadzi do pomyłki.

XHTML 1.1 również nie pasuje, chociaż nazwa jest bliska. Dla XHTML 1.1 używany byłby inny identyfikator oraz inny plik definicji, związany z wersją xhtml11.dtd. Tutaj wyraźnie podano XHTML 1.0 Strict, więc dokument zapisano w XHTML 1.0. W praktyce warto umieć to rozpoznać, bo przy utrzymaniu starszych serwisów sposób walidacji, wymagania składniowe i kompatybilność z przeglądarkami mogą zależeć właśnie od tej jednej linijki na początku pliku.

Wymagane logowanie

Ocenianie trudności pytań jest dostępne tylko dla zalogowanych użytkowników. Zaloguj się, aby skorzystać z pełni możliwości platformy.

Twoja ocena pomoże innym uczniom w przygotowaniu do egzaminu, a Tobie pozwoli na dostęp do spersonalizowanych statystyk.

Zgłoś błąd w pytaniu

Rozwiń sekcję i zmień pole, którego dotyczy błąd. Wysłane zostaną tylko zmienione sekcje.

Błędna kwalifikacja
Błąd w treści pytania
Błąd w treści odpowiedzi
Błąd w obrazie
Dane kontaktowe (opcjonalnie)
Podaj email, jeśli chcesz otrzymać informację o rozpatrzeniu zgłoszenia.