A | A | A

SPECYFIKACJA JĘZYKA XHTML

XHTML jest bardzo podobny do HTML i XML. Specyfikacja XHTML nie zawiera opisu znaczników i atrybutów, ponieważ jest to zawarte w specyfikacji HTML 4.01, uproszczonej wersji metajęzyka SGML. Specyfikacja XHTML zawiera reguły, które są związane z XML. Inaczej mówiąc XHTML jest odmianą języka HTML przeformatowanego do metajęzyka XML. XHTML jest więc zgodny z XML, który w przyszłości stanie się standardem przechowywania informacji nie tylko stron internetowych.

Definicje Typy Dokumentu – DTD

Schematy określające definicję typu dokumentu w przypadku XHTML są zwykle wyrażone w DTD. Aby walidator wiedział wobec jakiej wersji i odmiany języka ma sprawdzać poprawność, konieczne jest umieszczenie w dokumencie deklaracji typu dokumentu (DOCTYPE). Deklaracja ta powinna być umieszczona po deklaracji XML (jeśli jest obecna); obie te deklaracje tworzą razem prolog XML. W XHTML 1.0 istnieją 3 różne DTD, każda z nich definiuje osobną odmianę tej wersji języka. wersje DTD języka XHTML 1.0 to: 'transitional', 'strict' oraz 'frameset'. Wersje te pozwalają na poprawną walidację tzw. sprawdzenie poprawności dokumentu XHTML. W XHTML 1.1 jest już tylko jedna DTD, ale dzięki modularyzacji XHTML można łatwo na jej bazie tworzyć własne DTD.

XHTML 1.0 Transitional

Jest odmiana przejściową pomiędzy HTML a XHTML, obok elementów odmiany ścisłej zawiera wiele elementów prezentacyjnych. Zezwala na korzystanie ze znaczników i atrybutów w statusie 'deprecated' (takich jak <applet>, <font>, <s>, align, width i innych). W tej wersji nie można stosować ramek. Przykład prologu:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

XHTML 1.0 Frameset

Zawiera wszystkie elementy wersji przejściowej, a dodatkowo także elementy przeznaczone do wyświetlania ramek. Przykład prologu:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

XHTML 1.0 Strict

Odmiana ścisła, zalecana przez W3C, przeznaczona do tworzenia dokumentów z oddzieloną warstwą semantyki od prezentacji. Nie zawiera prawie żadnych elementów prezentacyjnych. Nie można w niej korzystać z ramek oraz elementów 'deprecated'. Przykład prologu:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

XHTML 1.1

Najnowszą rekomendacją XHTML jest opublikowana 31 maja 2001 r. specyfikacja XHTML 1.1. W3C zaleca jej używanie do wszystkich nowo powstających stron WWW, jednak ze względu na niemożliwość obsłużenia typu application/xhtml+xml w Internet Explorerze (wciąż najbardziej popularnej przeglądarki), standard ten nie jest jak dotąd powszechnie stosowany. XHTML 1.1 został opracowany zgodnie z regułami modularyzacji XHTML. Zawiera elementy i atrybuty takie, jak XHTML 1.0 Strict, usunięto tylko atrybut name dla elementu a (link) oraz atrybut lang. Natomiast nowością w tej wersji XHTML są elementy i atrybuty służące do wyświetlania znaków ruby, używanych w typografii języków Dalekiego Wschodu.

XHTML 2 (w fazie projektowania)

Obecnie przygotowywana jest specyfikacja XHTML 2.0, która ma wprowadzić wiele znaczących zmian do języka. Pierwsze projekty zakładały poważne ograniczenie kompatybilności w stosunku do poprzednich wersji XHTML, jednak z czasem zdecydowano o pozostawieniu w XHTML 2.0 takich elementów, jak img (obraz), czy h1 - h6 (nagłówki stopnia 1 – 6). Prawdopodobnie zamiast nowej przestrzeni nazw będzie też można stosować dotychczasową. Najważniejsze zmiany wprowadzone w projekcie specyfikacji:

  • Prawie każdy element będzie mógł stanowić hiperłącze, np. będzie można pisać: <li href="index.xhtml">Strona główna</li>; element a (link) zostanie jednak zachowany
  • Element obrazka img zostanie uznany za przestarzały na rzecz elementu object, ale atrybut src będzie można stosować dla prawie każdego elementu, a zawartość tego elementu będzie wyświetlana tylko przy braku możliwości renderowania obrazka (lub innego medium, np. dźwięku): <p src="logo" type="image/png; image/gif; q=0.2">Tekst zamiast obrazka.</p>
  • Stare, odziedziczone po HTML-u formularze zostaną zastąpione przez XForms, które zapewniają większą elastyczność i ograniczają konieczność stosowania skryptów
  • Ograniczony zbiór atrybutów obsługujących zdarzenia zostanie zastąpiony przez XML Events – możliwe będzie odwoływanie się do zdarzeń DOM 2, a nawet definiowanie własnych zdarzeń; jednocześnie obsługujący zdarzenia element script zostanie przemianowany na handler
  • Elementy nagłówków h1 - h6 zostaną uznane za przestarzałe i zastąpione przez jeden element h, zaś stopień nagłówka będzie można ustalać poprzez ich odpowiednie zagnieżdżenie w elementach <section> oznaczających rozdziały dokumentu
  • Pozioma linia <hr> zostanie zastąpiona przez element <separator>, który nie będzie musiał mieć ani kształtu linii, ani układu poziomego
  • Pusty element końca linii <br>, do którego nie można było się odwoływać w arkuszach stylów zostanie zastąpiony przez element 'l' obejmujący pojedynczy wiersz
  • Element <p> oznaczający akapit będzie mógł oprócz tekstu zawierać także m.in. wykazy i tabele
  • Usunięte będą ostatnie elementy prezentacyjne dozwolone w XHTML 1.1, takie jak <b>, czy <i>. Jako wyjątek pozostawione zostaną elementy indeksu górnego i dolnego: <sup> i <sub>
  • Inne nowe elementy:
    • <nl> – lista nawigacyjna
    • <di> – skojarzanie terminu i definicji w liście definicyjnej
    • <quote> – cytat, zastąpi element q
    • <blockcode> – blok kodu komputerowego
    • <summary> – długi opis tabeli, zastąpi atrybut o tej samej nazwie
    • <access> – skrót (np. klawiaturowy) do innego elementu, zastąpi atrybut accesskey
    • <standy> – informacja wyświetlana podczas ładowania obiektu

Typy zawartości XHTML

XHTML 1.0 (i ewentualnie 1.1) spełniający zasady kompatybilności z HTML powinno się wysyłać jako text/html tylko dla starszych przeglądarek. W tym typie zawartości dokument jest traktowany jak dokument HTML (aplikacja SGML-a) z błędami składniowymi, a więc m.in. nie jest sprawdzana poprawność składniowa, dokument jest traktowany jako tzw. "zupa znaczników", a dokument nie ma żadnych zalet poprawnego XHTML-a (w szczególności osadzania innych języków).

Typ application/xhtml+xml został stworzony specjalnie dla XHTML. Przeglądarki obsługujące ten typ automatycznie sprawdzają zgodność dokumentu z zasadami XML. W application/xhtml+xml nie ma już kilku nietypowych cech charakterystycznych dla HTML, np. element body nie zachowuje się już tak, jak gdyby był elementem głównym (bo jest nim html), a przede wszystkim można osadzać inne aplikacje XML bezpośrednio w kodzie XHTML. Odpowiednikiem wysłania pliku z tym typem na dysku lokalnym jest zmiana rozszerzenia pliku z .html (lub .htm) na .xhtml (lub .xht).

Typy application/xml i text/xml – są to natywne typy zawartości XML, a jako że XHTML jest aplikacją XML-a, można ich używać równoważnie z application/xhtml+xml. Przykładowy dokument XHTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">

<head>
<title>Przykład dokumentu zgodnego z XHTML 1.0 Strict</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" type="text/css" href="style.css" />
</head>

<body>
<p>To jest przykład.</p> </body>
</html>


Skocz do góry strony ↑