XHTML - Etendebla Hiperteksta Marklingvo

2. Deklaroj kaj formalaĵoj

Ĉi tiu parto traktas kelkajn formalaĵojn, kiuj troviĝu komence de XHTML-dokumento. Feliĉe oni ne bezonas kompreni ĉiujn detalojn pri tiuj formalaĵoj. Multon oni povas simple ŝablone 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 deviga title-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) troviĝu en la body-elemento (inter <body> kaj </body>).

La ĉi-poste klarigotaj formalaĵoj troviĝu tuj antaŭ la html-elemento kaj ene de la komencomarko de la html-elemento.

Deklaro pri dokumentotipo

XHTML-dokumento devas komenciĝi 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 ankaŭ en malnova HTML, sed tute nekonata en HTML estas XML-deklaroj. Tia deklaro troviĝu antaŭ la dokumentotipa deklaro, do plej unue en la dokumento. Ĝi 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 ĉi-antaŭa ekzemplo indikas, ke la dokumento estas kodita laŭ Latino 3 (“iso-8859-3”). En HTML oni indikas (laŭbezone) signokodon per meta-elemento. Se oni volas, ke XHTML-paĝo funkciu ankaŭ 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 (ambaŭ prezentas Unikodon), oni ne bezonas tion mencii. Tiam oni povas tute forlasi la XML-deklaron.

La XHTML-normo admonas uzi XML-deklaron en ĉiu XHTML-dokumento, sed ne rekte devigas tion. Tio estas feliĉa, ĉar tia deklaro komence de TTT-paĝo povas konfuzi iujn malnovajn HTML-legilojn, kiuj bedaŭrindege montras la tutan deklaron videble aŭ alimaniere konfuziĝas. 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-ĉapo (sendata tuj antaŭ la dokumento). Se la servilo tion bonorde faras, oni rajtas uzi ĉiun 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 aŭ zorgi, ke la servilo anoncas en la http-ĉapo, ke la dokumento uzas Latinon 3 (ĉiuokaze estas rekomendinde, ke la servilo ĉiam tiel anoncu la uzatan signokodon). Legu pli pri Unikodo kaj Latino 3 en miaj paĝoj pri signokodoj, kaj en miaj paĝoj pri Esperanto kaj HTML.

Deklaro de nomspaco

Krom la jam menciita deviga deklaro pri dokumentotipo, kiu aperu antaŭ la html-elemento, kaj eventuala XML-deklaro, oni devas inkluzivi ankaŭ deklaron pri t.n. nomspaco. Tiu deklaro aperu kiel atributo en la komenca html-marko. Ĝi difinas, ke ĉiuj 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 ŝajni sensenca, sed fariĝos grava kaj sencohava, kiam oni kombinos XHTML-on kun aliaj XML-aj marklingvoj. Nomspacoj estas aparta temo, kiun mi ne traktos ĉi tie.

Ekzemplo

Jen finfine ekzemplo de dokumentokomenco kun ĉiuj diversaj formalaĵoj. Uzu ĝin laŭbezone 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, ĉar ĝi indikas la kodprezenton UTF-8, kiu estas la implicita kodprezento (apud UTF-16) en XML. Rimarku ankaŭ la finan suprenstrekon (/) en la meta-elemento. Ĝi estos klarigita en la sekva paĝo.