Ebooks, Audobooks and Classical Music from Liber Liber
a b c d e f g h i j k l m n o p q r s t u v w x y z





Web - Amazon

We provide Linux to the World


We support WINRAR [What is this] - [Download .exe file(s) for Windows]

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
SITEMAP
Audiobooks by Valerio Di Stefano: Single Download - Complete Download [TAR] [WIM] [ZIP] [RAR] - Alphabetical Download  [TAR] [WIM] [ZIP] [RAR] - Download Instructions

Make a donation: IBAN: IT36M0708677020000000008016 - BIC/SWIFT:  ICRAITRRU60 - VALERIO DI STEFANO or
Privacy Policy Cookie Policy Terms and Conditions
XHTML - Wikipedia, wolna encyklopedia

XHTML

Z Wikipedii

World Wide Web

Języki opisu treści

Inne technologie

Pojęcia

XHTML (ang. Extensible HyperText Markup Language, rozszerzalny hipertekstowy język znaczników) jest to język służący do tworzenia stron WWW ogólnego przeznaczenia. XHTML jest następcą nierozwijanego już języka HTML. Specyfikacje XHTML przygotowuje organizacja W3C.

W odróżnieniu od „zwykłego” HTML-a (który jest aplikacją SGML), dokumenty pisane w XHTML są zgodne z oficjalną specyfikacją XML (to znaczy, że dokumenty w XHTML są poprawnymi dokumentami XML) i dzięki temu można je łatwo generować z innych dokumentów XML przy pomocy np. XSLT, a także automatycznie przekształcać w inne formy XML-a.

Jedną z największych zalet XHTML jest możliwość łączenia z innymi językami zgodnymi z XML, np. MathML czy SVG. Odbywa się to dzięki wykorzystaniu mechanizmu przestrzeni nazw XML.

Obecnie nowe przeglądarki, takie jak Firefox czy Opera, praktycznie w pełni obsługują XHTML, lecz przeglądarka mająca ciągle największy udział w rynku – Internet Explorer – w ogóle nie obsługuje XHTML-owego typu zawartości. W praktyce zmusza to webmasterów do stosowania dla dokumentów XHTML starego HTML-owego typu zawartości – dzięki temu, że XHTML w wersji 1.0 „symuluje” HTML 4 (tzn. posiada praktycznie taki sam zestaw elementów i atrybutów), wyświetlanie XHTML jako HTML nie sprawia większych problemów w żadnej przeglądarce. Jednak obecnie coraz częściej wykorzystuje się metodę negocjowania zawartości do prezentowania XHTML-a w Sieci.

Spis treści

[edytuj] Podstawowe reguły XHTML

Zasady konstruowania dokumentów XHTML – najważniejsze różnice w porównaniu z HTML:

  • Dokument powinien rozpoczynać się od deklaracji XML (np. <?xml version="1.0" encoding="ISO-8859-2"?>); nie jest ona wymagana, gdy dokument ma kodowanie znaków UTF-8 lub UTF-16, albo gdy odpowiednie kodowanie zostało określone w nagłówkach HTTP (jednak nawet wtedy warto dołączać deklarację XML, gdyż pozwala ona ustalić kodowanie np. w przypadku zapisania strony na dysku)
  • Element główny (html) musi zawierać atrybut xmlns określający przestrzeń nazw XHTML: http://www.w3.org/1999/xhtml
  • Znacznikowi otwierającemu każdego niepustego elementu powinien odpowiadać znacznik zamykający (np. <li> ... </li>)
  • Puste elementy muszą także być zamykane (np. zamiast <br> musi być <br/>, albo ewentualnie <br></br>)
  • Elementy muszą być zagnieżdżane w odpowiedni sposób (np. zamiast <p>Tekst z <em>wyróżnieniem</p></em><p>Tekst z <em>wyróżnieniem</em></p>); wprawdzie w HTML także istniał taki wymóg, lecz nie był egzekwowany przez przeglądarki
  • Nazwy elementów i atrybutów XHTML muszą być pisane małymi literami
  • Wszystkie wartości atrybutów muszą być ujęte w cudzysłów (podwójny, np. <td rowspan="3"> lub pojedynczy, np. <td rowspan='3'>)
  • Niedozwolona jest minimalizacja atrybutów (np. zamiast <textarea readonly> musi być <textarea readonly="readonly">)
  • Wewnątrz elementów script i style nie można używać komentarzy XML (<!-- -->), chyba że zostaną one umieszczone w obrębie sekcji CDATA (wtedy zmieniają swoje znaczenie na równoważne z "&lt;-- --&gt;")
  • Jeśli zawarte wewnątrz dokumentu arkusze stylów lub skrypty zawierają znaki & lub <, zawartość elementów style i script należy umieścić w sekcji CDATA (np.: <style type="text/css"><![CDATA[ arkusz stylów ]]></style>); alternatywnie można użyć encji lub zewnętrznego arkusza stylów / skryptu
  • Ze względu na trudności z parsowaniem, nie powinno się używać w XHTML-u javascriptowej metody document.write() i właściwości innerHTML; jednak niektóre przeglądarki już obsługują te konstrukcje także w dokumentach XML.

[edytuj] Kompatybilność z innymi językami

[edytuj] Kompatybilność z HTML

Ponieważ nadal są używane nieobsługujące XHTML przeglądarki internetowe, umieszczając dokument XHTML 1.0 w sieci WWW i nie mając dostępu do technik takich, jak PHP, warto zadbać o to, by mógł być traktowany jak HTML. Można to osiągnąć poprzez zastosowanie się do kilku prostych reguł.

  • Znaczniki pustych elementów powinny zawierać dodatkową spację przed ukośnikiem, np. zamiast <br/> powinno być <br />
  • Należy unikać używania zminimalizowanej formy (np. <p/>) w przypadku pustych elementów, które mogą mieć zawartość; np. stosowanie znacznika <script type="text/javascript" src="skrypt.js"/> w dokumencie przesyłanym jako HTML prowadzi zwykle do niewyświetlenia reszty dokumentu; należy w tym wypadku używać <script type="..." src="..."></script>
  • Obok lub zamiast instrukcji xml-stylesheet należy odwoływać się do zewnętrznych arkuszy stylów przy pomocy obsługiwanego w HTML-u znacznika <link rel="stylesheet" ... />
  • Objęcie wewnętrznych skryptów i stylów sekcją CDATA może powodować ich błędne działanie; należy w związku z tym zakomentować znaczniki początku i końca sekcji CDATA, np.: <style type="text/css">/* <![CDATA[ */ arkusz stylów /* ]] */</style>
  • Oprócz typowej dla XML deklaracji języka za pomocą atrybutu xml:lang, należy też używać zgodnego z HTML atrybutu lang.

Kłopoty w nieobsługującym XHTML Internet Explorerze w wersji 6.0 może sprawiać deklaracja XML. Jej umieszczenie powoduje, że dokument jest wyświetlany w tzw. „trybie dziwactw” (quirks mode) i tym samym interpretuje niektóre style CSS niezgodnie ze standardem (tak, jak wcześniejsze wersje IE). Problem ten można obejść wykorzystując skrypty po stronie serwera, dopisujące deklarację XML dla wszystkich przeglądarek oprócz IE.

Po zastosowaniu zasad kompatybilności dokument XHTML 1.0 może być przesyłany jako typ mediów text/html i tym samym traktowany przez przeglądarki jak HTML. Nie zmienia to jednak faktu, że dokument taki powinien być przede wszystkim w pełni zgodny z zasadami XHTML. Aby upewnić się co do poprawności takiego dokumentu, oprócz walidacji warto sprawdzić, czy wyświetlałby się poprawnie, gdyby był traktowany jak XHTML (np. tymczasowo zmieniając rozszerzenie z .html na .xhtml).

[edytuj] XHTML a PHP

Używając języka PHP w dokumentach XHTML często można się spotkać z błędem podczas parsowania deklaracji XML (konstrukcje typu <?xml version="1.0" encoding="UTF-8"?>). Przyczyną jest włączona opcja używania krótkich znaczników (<? ?>) do oznaczania bloku PHP, co powoduje, że deklaracje XML są traktowane przez parser jak kod PHP.

Wyłączenie krótkich znaczników PHP można osiągnąć poprzez dokonanie następującego wpisu do pliku php.ini:

short_open_tag = Off

Ten sam efekt można osiągnąć poprzez wpis do pliku .htaccess (serwer Apache):

php_value short_open_tag 0

Jeśli nie mamy możliwości wyłączenia krótkich znaczników, akceptowalnym obejściem problemu jest używanie PHP-owej konstrukcji print lub echo do wypisywania deklaracji XML:

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

lub:

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

(Znaki kończące deklarację XML – ?> – muszą być rozdzielone, inaczej zostaną wzięte przez procesor XML za koniec instrukcji przetwarzania).

[edytuj] Walidacja XHTML

Tak jak każdy dokument XML, dokument XHTML powinien spełniać dwa rodzaje poprawności:

  • poprawność składniowa (well-formedness) – zgodność z podstawowymi regułami XML; można ją sprawdzić wysyłając dokument z typem treści ustawionym na application/xhtml+xml i otwierając w obsługującej XHTML przeglądarce, w przypadku błędu ma ona obowiązek nie wyświetlić dokumentu
  • poprawność strukturalna (validity) – zgodność z regułami określonymi w skojarzonym z danym typem dokumentu schemacie; sprawdzanie tej poprawności to właśnie walidacja, dokonuje się jej przy pomocy walidatorów; walidator wychwytuje także błędy w kodowaniu znaków.

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. W XHTML 1.1 jest już tylko jedna DTD, ale dzięki modularyzacji XHTML można łatwo na jej bazie tworzyć własne DTD.

DTD (i bazujący na nim walidator W3C) ma jednak sporo ograniczeń i nie potrafi wyrazić wszystkich reguł języka XHTML. Możliwe więc, że dokument, który pozytywnie przeszedł walidację względem DTD wcale nie jest poprawny. Wielu ograniczeń DTD pozbawiony jest inny język schematów – XML Schema. W3C opublikowało specjalną notę zawierającą definicję XHTML 1.0 w XML Schema, przygotowywane jest też drugie wydanie XHTML 1.1, uzupełniające specyfikację o schematy w tym języku. XML Schema w porównaniu z DTD potrafi np. sprawdzić poprawność wartości atrybutu accesskey (powinien to być jeden znak, DTD pozwala na wiele znaków), czy atrybutu tabindex (powinna się zawierać między 0 a 32767, walidator DTD przyjmie dowolny ciąg znaków). Chcąc walidować dokument względem XML Schema można, choć nie jest to konieczne, do elementu głównego (html) dodać atrybut schemaLocation z przestrzeni nazw http://www.w3.org/2001/XMLSchema-instance, określający lokalizację schematu.

Innym językiem schematów mogącym służyć do walidacji XHTML jest RELAX NG. W porównaniu do XML Schema ma on bardziej intuicyjną składnię, lecz podobnie oferuje dużo więcej możliwości niż DTD (choć na tym polu nieco ustępuje językowi XML Schema). RELAX NG ma być kolejnym, obok DTD i XML Schema, językiem, w którym zostanie zdefiniowany schemat XHTML 2.0 (jednak odwoływanie się w dokumencie do tego schematu nie będzie potrzebne, w przeciwieństwie do dwóch pozostałych języków).

[edytuj] Wersje XHTML

[edytuj] XHTML 1.0

XHTML 1.0 został zatwierdzony jako rekomendacja W3C 26 stycznia 2000 roku. Rekomendacja ta jest po prostu odpowiednim przeformułowaniem języka HTML 4 – SGML jako język definiowania został zastąpiony przez XML. XHTML 1.0 dysponuje więc praktycznie tym samym zestawem elementów i atrybutów, co HTML 4; analogiczny jest też podział na 3 wersje 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
  • XHTML 1.0 Transitional – odmiana przejściowa, obok elementów odmiany ścisłej zawiera wiele elementów prezentacyjnych
  • XHTML 1.0 Frameset – zawiera wszystkie elementy wersji przejściowej, a dodatkowo także elementy przeznaczone do wyświetlania ramek.

Warto pamiętać, że DTD XHTML 1.0 nie jest w pełni analogiczne do DTD HTML 4.01 (bardziej przypomina DTD HTML 4.0). W związku z tym niektóre atrybuty dozwolone w HTML 4.01 Strict są niedozwolone w XHTML 1.0 Strict (ale można je stosować w odmianach Transitional i Frameset). Na przykład w odmianie ścisłej XHTML 1.0 nie można używać atrybutu name dla elementu form (mimo że jest to możliwe w HTML 4.01 Strict).

[edytuj] 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, 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 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 1.1 jest ostatnią oficjalną wersją linii XHTML1, ale czasem używa się potocznej nazwy XHTML 1.5 na określenie przygotowywanej przez WHATWG specyfikacji Web Applications w wersji dla XML.

[edytuj] XHTML 2.0 (projekt)

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, czy h1 - h6; prawdopodobnie zamiast nowej przestrzeni nazw będzie też można stosować dotychczasową.

Siódma wersja szkicu roboczego XHTML2 została opublikowana 27 maja 2005 r. 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 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
    • standby – informacja wyświetlana podczas ładowania obiektu

Aktualna, ósma wersja szkicu roboczego XHTML2 została opublikowana 26 lipca 2006 r.

[edytuj] Modularyzacja XHTML

W 2001 r. dokonano podziału XHTML na moduły. Zdefiniowano jednocześnie reguły tworzenia nowych modułów, a także reguły, według których moduły mogą być łączone. Umożliwia to tworzenie nowych języków składających się z elementów XHTML, a mogących też zawierać elementy spoza XHTML; nazywa się je językami rodziny XHTML. Niektóre języki rodziny XHTML to:

  • XHTML Basic – okrojona wersja XHTML przeznaczona dla telefonów komórkowych i innych urządzeń przenośnych; następca WML i C-HTML
  • XHTML Mobile Profile - XHTML Basic wzbogacony o kilka dodatkowych elementów
  • XHTML-Print – przeznaczony do drukowania.

W oparciu o modularyzację powstał również XHTML 1.1. Dzięki temu można bardzo łatwo dostosować ten język do swoich potrzeb. Na przykład rozszerzenie XHTML 1.1 o atrybut target (umożliwiający otwieranie strony w nowym oknie) sprowadza się do użycia trzech encji parametrycznych w DTD: [1]; przykład dokumentu wykorzystującego to DTD: [2].

[edytuj] Typy zawartości XHTML

Typy MIME, z którymi mogą być przesyłane dokumenty XHTML:

  • Typ text/html – jest to właściwie typ stworzony do przesyłania dokumentów HTML, jednak dopuszczalne jest, zwłaszcza w okresie przejściowym, używanie go do dokumentów XHTML 1.0 spełniających zasady kompatybilności z HTML. XHTML 1.1 powinno się wysyłać już tylko jako application/xhtml+xml (ewentualnie jeden z typów XML). W tym typie zawartości dokument XHTML jest traktowany jak zwykły dokument HTML (mimo że nie jest poprawnym HTML-em), a więc m.in. nie jest sprawdzana poprawność składniowa, dokument jest traktowany jako tzw. „zupa znaczników”.
  • Typ application/xhtml+xml – jest to typ mediów stworzony specjalnie dla XHTML, zalecany dla wszystkich wersji tego języka, jak również do pochodnych XHTML zgodnych z jego strukturą. 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). 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, można z nich korzystać w przypadku każdej wersji XHTML.

[edytuj] Negocjacja zawartości

Niestety Internet Explorer nie potrafi odczytać stron XHTML podanych jako application/xhtml+xml – w domyślnej konfiguracji będzie wyświetlał okno dialogowe z prośbą o pobranie takiego pliku. Ogranicza to w znacznym stopniu możliwość korzystania z typu XHTML w sieci WWW.

Problem ten można obejść poprzez serwowanie typu application/xhtml+xml przeglądarkom go obsługującym, natomiast pozostałym przesyłanie dokumentu z typem text/html. Można to osiągnąć stosując metodę negocjowania zawartości (content negotiation) po stronie serwera. Można wykorzystać do tego język skryptowy, np. PHP. Przykłady odpowiednich skryptów można znaleźć na tych stronach: [3], [4], [5].

Część osób uważa jednak takie rozwiązanie za problematyczne. W takim wypadku możliwa jest bowiem sytuacja, że ktoś podczas edycji strony popełni błąd i go nie zauważy, ponieważ będzie dysponował przeglądarką obsługującą tylko typ text/html. Osoby posiadające nowoczesne przeglądarki będą widziały informacje o błędzie składni XHTML, a posiadające prymitywne przeglądarki zobaczą właściwą stronę. Bezpieczniej jest więc serwować wszystkim przeglądarkom typ text/html, za wyjątkiem przeglądarek osób uprawnionych do edycji serwisu, którym serwowany byłoby typ application/xhtml+xml.

[edytuj] Przykłady dokumentów XHTML

XHTML 1.1

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="style.css"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
  "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl">    
<head>
  <title>Przykład dokumentu zgodnego z XHTML 1.1</title>
</head>
<body>
  <p>To jest przykład.</p>
</body>
</html>

XHTML 1.0 Strict kompatybilny z HTML

<?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>Przykład dokumentu zgodnego z XHTML 1.0 Strict</title>
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" />
  <link rel="stylesheet" type="text/css" href="style.css" />
</head>
<body>
  <p>To jest przykład.</p>
</body>
</html>

[edytuj] Zobacz też

[edytuj] Linki zewnętrzne

[edytuj] Walidatory

Our "Network":

Project Gutenberg
https://gutenberg.classicistranieri.com

Encyclopaedia Britannica 1911
https://encyclopaediabritannica.classicistranieri.com

Librivox Audiobooks
https://librivox.classicistranieri.com

Linux Distributions
https://old.classicistranieri.com

Magnatune (MP3 Music)
https://magnatune.classicistranieri.com

Static Wikipedia (June 2008)
https://wikipedia.classicistranieri.com

Static Wikipedia (March 2008)
https://wikipedia2007.classicistranieri.com/mar2008/

Static Wikipedia (2007)
https://wikipedia2007.classicistranieri.com

Static Wikipedia (2006)
https://wikipedia2006.classicistranieri.com

Liber Liber
https://liberliber.classicistranieri.com

ZIM Files for Kiwix
https://zim.classicistranieri.com


Other Websites:

Bach - Goldberg Variations
https://www.goldbergvariations.org

Lazarillo de Tormes
https://www.lazarillodetormes.org

Madame Bovary
https://www.madamebovary.org

Il Fu Mattia Pascal
https://www.mattiapascal.it

The Voice in the Desert
https://www.thevoiceinthedesert.org

Confessione d'un amore fascista
https://www.amorefascista.it

Malinverno
https://www.malinverno.org

Debito formativo
https://www.debitoformativo.it

Adina Spire
https://www.adinaspire.com