XHTML - Etendebla Hiperteksta Marklingvo
2. Deklaroj kaj formalajxoj
Cxi tiu parto traktas kelkajn formalajxojn, kiuj trovigxu komence de XHTML-dokumento. Felicxe oni ne bezonas kompreni cxiujn detalojn pri tiuj formalajxoj. Multon oni povas simple sxablone inkluzivi en siajn dokumentojn.
Precipaj partoj
XHTML-dokumento konsistas el la jenaj precipaj partoj:
- Deklaro pri dokumentotipo (kun eventuala XML-deklaro)
html
-elemento (la efektiva dokumento)head
-elemento (la dokumenta “kapo”) kun devigatitle
-elemento (“titolo”)body
-elemento (la dokumenta “korpo”)
Do jene:
<!DOCTYPE ...>
<html ... >
<head>
<title>...</title>
...
</head>
<body>
...
</body>
</html>
La efektiva enhavo de la dokumento (tio, kion TTT-legilo prezentas al leganto) trovigxu en la body
-elemento (inter <body>
kaj </body>
).
La cxi-poste klarigotaj formalajxoj trovigxu tuj antaux la html
-elemento kaj ene de la komencomarko de la html
-elemento.
Deklaro pri dokumentotipo
XHTML-dokumento devas komencigxi per deklaro pri la preciza dokumentotipo.
Se la dokumento uzas striktan XHTML-on, oni deklaru:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
Se la dokumento uzas transiran XHTML-on, oni deklaru:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Se la dokumento uzas kadraran XHTML-on, oni deklaru:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
XML-deklaro
Dokumentotipajn deklarojn oni uzis ankaux en malnova HTML, sed tute nekonata en HTML estas XML-deklaroj. Tia deklaro trovigxu antaux la dokumentotipa deklaro, do plej unue en la dokumento. Gxi povas aspekti ekz. jene:
<?xml version="1.0" encoding="iso-8859-3"?>
Rimarku la karakterizajn demandosignojn komence kaj fine.
La sola afero, kiun oni normale bezonas variigi en tia instrukcio, estas la informo pri kodprezento (signokodo). La cxi-antauxa ekzemplo indikas, ke la dokumento estas kodita laux Latino 3 (“iso-8859-3”). En HTML oni indikas (lauxbezone) signokodon per meta
-elemento. Se oni volas, ke XHTML-pagxo funkciu ankaux en malnovaj HTML-legiloj, oni povas inkluzivi informon pri la signokodo kaj en XML-deklaro, kaj en meta
-elemento. La du deklaroj kompreneble diru la samon.
Tamen ne nepre necesas uzi XML-deklaron. Se oni uzas iun el la du bazaj signokodoj kaj kodprezentoj de XML, nome UTF-8 kaj UTF-16 (ambaux prezentas Unikodon), oni ne bezonas tion mencii. Tiam oni povas tute forlasi la XML-deklaron.
La XHTML-normo admonas uzi XML-deklaron en cxiu XHTML-dokumento, sed ne rekte devigas tion. Tio estas felicxa, cxar tia deklaro komence de TTT-pagxo povas konfuzi iujn malnovajn HTML-legilojn, kiuj bedauxrindege montras la tutan deklaron videble aux alimaniere konfuzigxas. Se oni volas nepre eviti tion, oni uzu la kodprezenton UTF-8 (UTF-16 estas komprenata de nur la plej modernaj legiloj), kaj forlasu la XML-deklaron. Alia solvo, tre rekomendinda, estas zorgi, ke la servilo, kiu sendas la dokumenton, anoncas la uzatan signokodon en la http-cxapo (sendata tuj antaux la dokumento). Se la servilo tion bonorde faras, oni rajtas uzi cxiun ajn signokodon, kaj tamen forlasi la XML-deklaron.
Notindas, ke dokumento, en kiu la kodo konsistas nur el Askiaj signoj, validas kiel UTF-8-a (Esperantajn literojn oni tiam skribu per numeraj referencoj). Se oni volas uzi Latinon 3 en XHTML-dokumento, oni devas inkluzivi XML-deklaron aux zorgi, ke la servilo anoncas en la http-cxapo, ke la dokumento uzas Latinon 3 (cxiuokaze estas rekomendinde, ke la servilo cxiam tiel anoncu la uzatan signokodon). Legu pli pri Unikodo kaj Latino 3 en miaj pagxoj pri signokodoj, kaj en miaj pagxoj pri Esperanto kaj HTML.
Deklaro de nomspaco
Krom la jam menciita deviga deklaro pri dokumentotipo, kiu aperu antaux la html
-elemento, kaj eventuala XML-deklaro, oni devas inkluzivi ankaux deklaron pri t.n. nomspaco. Tiu deklaro aperu kiel atributo en la komenca html
-marko. Gxi difinas, ke cxiuj elementonomoj kaj atributonomoj apartenas al la lingvo XHTML. La nomspaca deklaro aspektu ekzakte jene:
<html xmlns="http://www.w3.org/1999/xhtml">
Deklaro pri nomspaco povas sxajni sensenca, sed farigxos grava kaj sencohava, kiam oni kombinos XHTML-on kun aliaj XML-aj marklingvoj. Nomspacoj estas aparta temo, kiun mi ne traktos cxi tie.
Ekzemplo
Jen finfine ekzemplo de dokumentokomenco kun cxiuj diversaj formalajxoj. Uzu gxin lauxbezone kiel bazon por viaj dokumentoj.
<?xml version="1.0" encoding="utf-8"?>
<!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">
<head>
<title>Ekzemplo</title>
<meta http-equiv="Content-Type" content="text/html;
charset=utf-8" />
</head>
<body>
...
Rimarku, ke la unua linio, <?xml version="1.0" encoding="utf-8"?>
, estas forlasebla, cxar gxi indikas la kodprezenton UTF-8, kiu estas la implicita kodprezento (apud UTF-16) en XML. Rimarku ankaux la finan suprenstrekon (/
) en la meta
-elemento. Gxi estos klarigita en la sekva pagxo.