Przejdź do treści

XHTML

Wymagania stawiane dokumentom XHTML

  1. Dokumenty XHTML muszą spełniać ograniczenia podane w DTD (Document Type Definition - Definicja Typu Dokumentu).
  2. Elementem podstawowym (root) w dokumencie musi być html.
  3. Element podstawowy (html) musi zawierać deklarację xmlns identyfikującą przestrzeń nazw XHTML, która stanowi zbiór nazw używanych w dokumencie jako typy elementów i nazwy atrybutów:
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  4. W dokumencie obowiązkowo musi być wstawiona deklaracja typu dokumentu przed elementem podstawowym (czyli przed html). W języku XHTML 1.0 są trzy możliwe do zastosowania wersje DTD:
    • Strict (ścisła)
      <!DOCTYPE html 
      	PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
      	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    • Transitional (przejściowa)
      <!DOCTYPE html 
      	PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
      	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    • Frameset (ramkowa)
      <!DOCTYPE html 
      	PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
      	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
    Natomiast XHTML 1.1 dopuszcza tylko jedną wersję DTD:
    <!DOCTYPE
    	html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    	"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

Deklaracja XML w postaci (zarówno dla XHTML 1.0 jak i XHTML 1.1):

<?xml version="1.0" encoding="UTF-8"?>

nie jest wymagana, ale mocno zaleca się jej stosowanie. Taka deklaracja jest wymagana, jeśli kodowanie znaków w dokumencie jest inne niż UTF-8 i UTF-16, a jednocześnie kodowanie nie jest określone przez żaden protokół wyższego rzędu, jak np. nagłówek HTTP "Content-Type" wysyłany przez serwer.

Oto przykład typowego dokumentu XHTML (1.0) z dołączoną deklaracją XML:

<?xml version="1.0" encoding="ISO-8859-2"?>
<!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>Tytuł dokumentu</title>
	</head>
	<body>
		<p>Przejdź do <a href="http://example.org/">example.org</a>.</p>
	</body>
</html>

Na serwerach obsługujących skrypty PHP (pliki z rozszerzeniami *.php) po wpisaniu deklaracji XML może wystąpić błąd. Aby go uniknąć, należy zamiast deklaracji XML wpisać:

<?php echo '<'.'?xml version="1.0" encoding="UTF-8"?'.'>'."\n"; ?>

Niektóre przeglądarki mogą nie interpretować deklaracji XML i z tego powodu wyświetlać dokument w sposób nieoczekiwany. Wpisanie deklaracji XML w przeglądarce MSIE 7.0 i starszych powoduje przełączenie w tryb Quirks.

Podanie tej deklaracji nie jest obowiązkowe, jednak wtedy dokument może mieć tylko domyślne kodowanie znaków: UTF-8 lub UTF-16, chyba że serwer prześle odpowiedni nagłówek HTTP "Content-Type". W celu zapewnienia kompatybilności wstecz powinno się dodać w nagłówku dokumentu również tradycyjną deklarację strony kodowej, np.:

<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-2" />

Zobacz także

Komentarze

Zobacz więcej komentarzy