Štruktúra XML dokumentu -- IV.časť XML

V závere minulej, teda tretej, časti nášho seriálu sme si už ukázali ako taký jednoduchý XML dokument môže vypadať. Dnes si popíšeme jeho štruktúru a hlavné zásady pri tvorbe štruktúry XML dokumentu.

Xml dokumenty sa skladajú zo značiek a obsahu (content). Existuje niekoľko základných druhov značiek, ktoré sa môžu v dokumentoch vyskytnúť. Sú to elementy (elements), entity (entities), resp. odkazy na entity (entity references), komentáre (comments), spracovateľské inštrukcie (processing instructions, PIs), sekcie CDATA (CDATA sections) a deklarácie typu dokumentu (document type declarations). Aby sme sa trochu dostali do problému, stručne si ich popíšeme.

Elementy

Elementy sú najčastejšou formou značky. Elementy identifikujú obsah, ktorý uzatvárajú. Je to niečo podobné ako v HTML. Element začína start-tagom a ukončený end-tagom.

<element>
...
</element>

To je jednoduchý element. Samozrejme element môže mať určité atribúty, ktorých názov a obsah je definovaný už v spomínanom start-tagu:

<Nazov_Zony nazov="forum.developer.sk">
je element s názvom
Nazov_Zony
s jedným atribútom, pomenovaným názvom. Tento má hodnotu forum.developer.sk.

Špecifickým prípadom je tzv. prázdný (empty) element, ktorého syntax je nasledujúca:

<element/>

O takomto prípade sme si už vraveli v minulej časti. Jedná sa o element bez start-tagu. Ekvivalentom v klasickom HTML je tag <hr>, alebo <br>, ktorých obsah je taktiež prázdny, ale ukončovací tag mať musia.

Deklarácia typu elementu

Deklarácie elementov vykonávame najčastejšie už v spomínaných DTD súboroch, ktoré sú deklarované v tzv. prológoch na začiatku xml dokumentu. K samotným DTD súborom sa ešte podrobnejšie dostaneme, a síce v ďalšej časti nášho seriálu.
Ale teraz už k špecifikácii mena elementu a jeho obsahu:

<!ELEMENT Nazov_Zony (tema, autor+, e-mail?, prispevok)> 

Takže táto deklarácia nám identifikuje element nazývaný Nazov_Zony. Za menom nasleduje model obsahu elementu (content model), ktorý definuje čo element môže obsahovať. V našom prípade musí element obsahovať temu a autora a môže obsahovať e-mail (príklad analogický so stránkou http://forum.developer.sk, kde každý diskusný príspevok sa nachádza v určitej sekcii (tema) a je identifikovaný menom autora a e-mailovou adresou). Znak + za autorom znamená, že element autor sa môže v rámci elementu Nazov_Zony opakovať viackrát a musí sa vyskytnúť minimálne jeden krát. Otáznik za e-mailom znamená, že e-mail sa môže v elemente nachádzať, ale aj nie. Tema sa musí v element objaviť práve jeden krát. Ďalšou možnosťou by bola hviezdička, ktorá by znamenala, že element sa môže v rámci iného elementu objaviť viackrát, ale nemusí ani raz. Čiarky medzi názvami elementov naznačujú, že v elemente Nazov_Zony musia byť zastúpené práve v tomto poradí.

Elementy môžeme rozdeliť na dva typy:
1. Elementy, ktoré obsahujú iba ďalšie (child) elementy - tzv. element content a
2. elementy, ktoré aj child elementy aj samotný text.
Deklarácia prvého typu je uvedená vyššie (element Nazov_Zony), deklarácia druhého typu (tzv. mixed content) môže vypadať napríklad takto:

<!ELEMENT prispevok (

Takto je definovaný element prispevok, ktorý môže obsahovať buď znaky (text) -

Prázdny element je deklarovaný nasledovane:

<!ELEMENT pauza EMPTY> 

Takže to by bolo asi na dnes všetko. Verím vám že už máte tých elementov asi dosť, ale z hľadiska pochopenia XML sú jeho veľmi dôležitou súčasťou. Nabúduce si ešte povieme niečo o atribútoch a taktiež si ukážeme ako by mohla vyzerať jednoduchá objednávka na dodávku tovaru napísaná v XML.

Developer,
Stiahnuté z Developer.sk