Jemný úvod do XML (II) - Základy syntaxe - Grafika.cz - vše o počítačové grafice

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:



Go verze

Jemný úvod do XML (II) - Základy syntaxe

3. října 2001, 00.00 | Dnes si povíme něco o tom, jak vypadá XML dokument a jaká jsou základní syntaktická
pravidla, kterými se musíme řídit při jeho tvorbě.

Jak vypadá XML dokument

Jak jsme řekli již v prvním díle tohoto našeho seriálu, XML dokument je vlastně textový soubor (obvykle s příponou .xml), jehož jednotlivé části, elementy, jsou vyznačeny značkami - tagy. Od ostatního textu jsou tagy (obdobně jako v HTML) odlišeny znaky < a >.

Jednoduchý XML-dokument by mohl vypadat například takto:

<?xml version="1.0" encoding="windows-1250" standalone="no"?>
<!DOCTYPE clanek SYSTEM "clanek.dtd">
<clanek>
        <hlavni_nadpis>Nadpis článku</hlavni_nadpis>
        <abstract>Přehled obsahu článku.</abstract>
        <nadpis>Úvodem</nadpis>
        <odstavec>Nějaký text</odstavec>
        <odstavec>A zase další text.</odstavec>
</clanek>

Složení XML dokumentu je následující:

1. XML deklarace: oznamuje, že máme co do činění s XML dokumentem. Musí být proto umístěna na začátek prvního řádku dokumentu. Může obsahovat vymezení celkem tří parametrů XML dokumentu (přiřazení musí být v dále uvedeném pořadí): verzi (version), kódování (encoding) a "samostatnost" (standalone). Uvedení verze je povinné, ostatní dva parametry se užívají podle potřeby. Přiřazované hodnoty se uzavírají do uvozovek.
Parametr version může dnes nabývat pouze hodnoty 1.0, neboť k dispozici máme nyní jenom první verzi specifikace XML.
Určení kódování má nejrůznější podoby. Použít lze mimo jiné standardy (a odpovídající názvy) UTF-8, UTF-16, ISO-10646-UCS-2, ISO-10646-UCS-4, ISO-8859-1ISO-8859-9, windows-1250 atd. Není-li uvedeno žádné kódování, předpokládá zpracovávající aplikace, že dokument používá UTF-8. Ne každá aplikace musí podporovat všechna kódování, podrobnosti je třeba zjistit v příslušné dokumentaci a řídit se jimi při vytváření dokumentu.
Parametr standalone indikuje, zda lze dokument použít i bez externí DTD (hodnota "yes") nebo pouze s ní (hodnota "no"). Pokud tento parametr nenastavujeme, je to, jako bychom použili hodnotu "no".

2. Deklarace typu dokumentu (DOCTYPE) - tato část přiřazuje danému XML dokumentu použitou definici typu dokumentu (DTD), tj. souhrn pravidel definující tagy a jejich vzájemné vztahy. Je nepovinná, tj. nemusí být v XML dokumentu obsažena. Je-li použita, musí následovat za XML deklarací. (Druhý řádek v našem příkladu.).
Způsobem přiřazení i vytváření DTD se budeme zabývat v příštím díle našeho seriálu, dnes svou pozornost zaměříme především na syntaktická pravidla XML. Na tomto místě je pouze potřeba zmínit se o dvou druzích "správnosti" XML dokumentů. Je-li XML dokument vytvořen tak, že odpovídá pravidlům syntaxe jazyka XML, říkáme o něm, že je správně utvořený (well formed). Pokud navíc použití všech jeho tagů odpovídá pravidlům nadefinovaným v určité DTD, jedná se o dokument validní (valid) vzhledem k této DTD.
O XML deklaraci a určení typu dokumentu se hovoří souhrnně jako o prologu XML dokumentu.

3. Obsah vyznačený XML tagy. Informace jsou pomocí tagů v XML dokumentu rozděleny do elementů. Podmínkou přitom je, aby byl celý dokument obsažen v jediném, tzv. kořenovém elementu. V našem příkladu odpovídá obsahu XML dokumentu veškerý text od třetího řádku dále, kořenový elementem je vyznačen tagem <clanek>.

Pravidla zápisu tagů

Jak jsme již řekli, tagy jsou v XML-dokumentu vyznačeny symboly < a >. To co je vloženo mezi tyto dva znaky je název tagu. Většině elementů v dokumentu odpovídají dva tagy, počáteční a ukončovací. Ukončovací tag se od počátečního liší tím, že má před svým názvem ještě znak /. Některé elementy nemusí mít žádný obsah (typickým příkladem může být tag odpovídající zalomení řádku - nazvěme ho jako v HTML <BR>). Takové lze pak zapisovat dvěma způsoby: buď uvedením počátečního a hned za ním ukončovacího tagu (<BR></BR>) nebo jednodušeji tak, že se uvede pouze počáteční tag, který má za svým názvem znak / (takže v našem příkladu se zapíše <BR/>).

Příklady:
<Kapitola>Název kapitoly</Kapitola>
<odstavec>Toto je odstavec základního textu. Zde <BR/> je text zalomen. </odstavec>

Pravidla pro zápis tagů jsou poměrně přísná (například ve srovnání s HTML). Především je třeba vzít v potaz, že se v názvech tagů rozlišuje mezi malými a velkými písmeny (párové tagy <odstavec> </odstavec> a <Odstavec> </Odstavec> tedy nejsou stejné). Dále pak tagy není možno překřižovat. (Nelze tedy například "<bold>Nadpis<italic>vyznačený</bold></italic>".) Název tagu také nesmí obsahovat mezeru (nelze tedy tag typu <číslo pokoje>, místo něj je možný například tag <číslo_pokoje>).

Na druhou stranu je syntaxe XML tolerantní k používání více mezer, konců řádků a tabelátorů za sebou. Při zápisu jich může být použito libovolné množství s tím, že vícenásobný výskyt bude ve zpracující aplikaci nahrazen mezerou jedinou. Uvedená volnost napomáhá přehlednějšímu formátování XML dokumentů.

Atributy

U každého počátečního tagu lze ještě použít atributy, rozšiřující informaci týkající se informace obsažené v daném elementu. Hodnoty přiřazené atributu se uzavírají do uvozovek nebo apostrofů, současně lze u jednoho tagu nastavit i více atributů, přiřazení se oddělují mezerou (proto se nesmí v názvech tagů užívat mezery - viz výše). Atributy spojené s daným tagem se spolu s vymezením jejich hodnot definují v DTD. XML nabízí i vyhrazené atributy pro označení jazyka elementu (atribut xml:lang) a zachování formátování pomocí mezer, konců řádků a tabelátorů (xml:space).

Příklad:
<odstavec zarovnání="nastřed" řádkování="jednoduché">Ukázka vycentrovaného odstavce.</odstavec>

Zápis speciálních znaků: předdefinované a znakové entity a sekce CDATA

Nyní se někdo možná dotáže, jakým způsobem můžeme použít v XML dokumentu znaky < a >, které jsou rezervovány pro oddělení tagů. Zde musíme využít takzvané předdefinované entity.

Uvedený typ entit se uvozuje znakem & (ampersand) a ukončuje znakem ; (středník). Pro zápis znaku < je určena entita &lt; a pro zápis znaku > pak entita &gt;. Uvozovky zapisujeme pomocí entit &quot; (dvojité uvozovky) a &apos; (jednoduché uvozovky - apostrofy). Libovolný znak můžeme vložit pomocí tzv. znakové entity. Ta má dvě podoby: &#xkód_znaku;, kde kód_znaku je kód znaku ze znakové sady ISO 10 646 zapsaný v šestnáctkové soustavě, nebo &#kód_znaku, kde kód_znaku je zapsán v desítkové soustavě. Přehled znaků a jejich kódů lze nalézt například na serveru sdružení Unicode.

Příklad:
<odstavec>&quot;Nerovnost 'Jedna je menší než dvě' zapíšeme takto 1 &lt; 2.&quot;</odstavec>

Někdy může být použití uvedených znakových entit pro speciální znaky nevýhodné - představme si například více odstavcovou ukázku XML kódu, kterou bychom chtěli použít ve svém XML-dokumentu. Zde pomůže tzv. CDATA ("character data") sekce . Ta je uvozena řetězcem <![CDATA[ a ukončena řetězcem ]]>. Vše, co je vloženo mezi tyto řetězce, pak ztrácí na svém speciálním významu.

Příklad:
<![CDATA[<odstavec zarovnání="nastřed" řádkování="jednoduché"> Ukázka vycentrovaného odstavce.</odstavec>]]>

Komentáře a instrukce pro zpracování

Někdy je žádoucí do XML dokumentu vložit text, který zůstane skryt okolnímu světu (nebude zobrazen v prohlížeči, vytištěn apod.) a bude obvykle určen pouze pro autora dokumentu. Takovýto komentář má v XML podobu zvláštního tagu, který je uvozen řetězcem <!-- a ukončen řetězcem -->.

Příklad:
<!--Tuhle část bude ještě třeba doladit.-->

Vedle komentářů lze do XML dokumentů také vkládat instrukce pro zpracování(Processing Instructions) určené programům, které budou daný dokument zpracovávat. Může se například jednat o skripty pro webovský server, instrukce pro prohlížeč nebo příkazy pro zpracovávající editory (zalomení stránky, záložky apod.).

Instrukce pro zpracování se vkládají mezi řetězce <? a ?>. Samotný zápis instrukcí je uvozen identifikátorem.

Příklad:
<?xml version="1.0" encoding="windows-1250"> (XML deklarace je vlastně zpracovávající instrukce.)
<?xml-stylesheet href="basic.css"> (Přiřazení kaskádového stylu pro zobrazení daného dokumentu.)

Obsah seriálu (více o seriálu):

Tématické zařazení:

 » Rubriky  » Go verze  

 » Rubriky  » Webdesign  

 

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: