<FONT SIZE=6 STYLE="font-weight: bold" COLOR=red>Hello!!!</FONT>
ami a következõképpen fog megjelenni a weblapon:
Ha a karaktersorozatot középre akarjuk igazítani, akkor az elõzõeket "bele kell ágyaznunk" egy olyan bekezdésbe, amelyben a szöveg középre igazítását írtuk elõ:
<P ALIGN=CENTER>
<FONT SIZE=6 STYLE="font-weight: bold" COLOR=red>Hello!!!</FONT>
</P>
Ez pedig a következõképpen fog festeni:
Ha csak ennyit akarunk megjeleníteni egy böngészõben, tartalmilag másra nem is nagyon van szükségünk. Azonban ahhoz, hogy a fenti szép, piros Hello tényleg meg is jelenjen, egy formailag is teljes HTML dokumentumot kell készítenünk, amely az elõbb megadott bekezdést tartalmazza. Egy HTML dokumentum alapsémája a következõ:
<HTML>
<HEAD>
<TITLE>(ide a dokumentum
címe kerül, amely a böngészõablak fejsorában
jelenik meg)
</TITLE>
</HEAD>
<BODY>
(ide kerülnek azok az elemek, amelyek a böngészõablakban
fognak megjelenni)
</BODY>
</HTML>
Vegyük észre, hogy pl. a dokumentum címét
(pl. Hello!) megadó szöveg kezdetét a <TITLE>, végét
pedig a </TITLE> tag adja meg (ez így fog kinézni: ).
A TITLE tagok bele vannak ágyazva a <HEAD> és </HEAD>
tagok közé, amelyek pedig - mint minden tag a HTML dokumentumban
- a <HTML> és </HTML> tagok közé vannak ágyazva.
Ezek után a fenti HTML dokumentum például a következõképpen
nézhet ki:
<html>
<head>
<title>Hello!</title>
</head>
<body>
<p align=center>
<font size=6 style="font-weight: bold" color=red>HELLO!!!</font>
</p>
</body>
</html>
(A HTML-ben a nagy- és kisbetûk között általában nem teszünk különbséget, továbbá a forrásdokumentum tördelése - vagyis a benne levõ szóközök és soremelések száma - nem befolyásolja a böngészõben való megjelenését.)
Most próbáljuk meg általánosítani az eddigieket. A nyelv szintaxisának tanulásakor például a következõ kérdéseket tehetjük fel:
Milyen HTML tagokat használhatunk?
Milyen attribútumokat (és milyen attribútum-értékeket)
használhatunk a HTML kezdõtagokban?
Milyen HTML tagok esetében nem kell (vagy nem szükséges)
használnunk zárótagokat?
A HTML tagokat milyen szövegkörnyezetben használhatjuk,
azaz milyen tagokat ágyazhatunk egymásba?
A kérdések megválaszolása akkor lehetséges, ha a HTML nyelv szintaxisát pontosan definiáljuk. Formálisan ezt egy metanyelv, az SGML (Standard Generalized Markup Language) segítségével tehetjük meg. Az SGML segítségével lehetséges különbözõ dokumentumtípusokat leíró jelölõ nyelvek definiálása, a HTML egy ezek közül. Az SGML segítségével definiált nyelvek szintaxisát az un. DTD-ben (Document Type Definition) adhatjuk meg. Hogy elképzelésünk legyen arról, hogyan lehetséges ilyen módon a HTML nyelv szabályainak definiálása, nézzünk meg néhány példát.
A HTML elemek vagy tagok definiálása az SGML ELEMENT tagjának, a tagokhoz rendelhetõ attribútumok megadása pedig az SGML ATTLIST tagjának segítségével lehetséges. Például a HTML 3.2 DTD-ben a FONT tag definiálása a következõképpen történik:
<!ELEMENT FONT - - (%text)* >
<!ATTLIST FONT
size CDATA #IMPLIED
color CDATA #IMPLIED>
Az ELEMENT tagban szereplõ két kötõjel (- -) arra utal, hogy a kezdõ- és zárótag megadása kötelezõ, az utánuk szereplõ (%text)* karaktersorozat pedig a FONT tag un. tartalommodelljét adja meg, azaz esetünkben azokat az elemeket vagy tagokat, amelyek a FONT tagba ágyazhatóak. Ez utóbbit nézzük meg részletesebben:
<!ENTITY % text "#PCDATA | %font | %phrase | %special | %form">
A #PCDATA azonosító az entitás definíciójában azt a szöveget jelenti, amelyet a FONT tagok között meg akarunk formázni. Látható, hogy a %text entitásnak megfelelõ, idézõjelek között megadott karaktersorozat a #PCDATA jelölés mellett további entitásokat is tartalmaz, a | ("vagy" jelentésû) operátorral elválasztva. Ezeket szintén fel kell oldanunk (és az így kapott karaktersorozatokat gondolatban be kell helyettesítenünk az entitások helyére), ha meg akarjuk ismerni a FONT elem teljes tartalommodelljét. Például
<!ENTITY % font "TT | I | B | U | STRIKE | BIG | SMALL | SUB | SUP">
vagy
<!ENTITY % special "A | IMG | APPLET | FONT | BASEFONT | BR | SCRIPT | MAP">
Az entitásokban már konkrét HTML tagok szerepelnek, így ezek a <FONT> és </FONT> tagok közé beágyazhatóak. Érdekesség: a FONT elem önmagába is beágyazható a DTD szerint.
Végül értelmezzük a FONT tag attribútumainak definícióját. Az ATTLIST tagban két ilyen attribútumot rendeltünk a FONT taghoz, a size és a color attribútumokat. A CDATA azonosító az attribútumok típusát, azaz értéktartományát adja meg (lényegében bármilyen karaktersorozatot megenged), az #IMPLIED azonosító pedig arra utal, hogy az attribútumok használata nem kötelezõ. Figyeljük meg, hogy itt is - mint végig az SGML-rõl szóló részben - egy szót sem szóltunk a tagok és attribútumok jelentésérõl (azaz a HTML szemantikájáról), mivel ennek megadása nem az SGML feladata.
2. Keresse meg a HTML DTD valamelyik verziójának leírását és küldje el csatolt fájlként!
3. Próbáljon válaszolni arra, miért volt szükség az XML kidolgozására és hol használják jelenleg az XML-t?
4. Válaszolja meg az Interneten hozzáférhetõ HTML leírások segítségével és írja le, mi a jelentése a FONT tag SGML tartalommodelljében megadott HTML tagoknak! Próbálja meg feloldani azokat az entitásokat is, amelyek definíciója az SGML-rõl szóló részben nem szerepel!
A válaszokat max. négy oldalas szövegfájlok (text fájlok) formájában, a talált hivatkozásokat is feltüntetve - közvetlenül a levélben vagy csatolt fájlként - küldjék el a bodai@math.klte.hu címre. A kérdésekre adott válaszokból összeállított anyagot a következõ gyakorlatokon elolvashatják.