Atribúty a Entity v XML dokumentoch

V predchádzajúcich dvoch častiach nášho seriálu o XML sme si ukázali jednoduchý príklad XML dokumentu a postupne sme si popísali jeho štruktúru. Teda z akých častí sa skladá a čo musí obsahovať. Túto tému sme však celkom nevyčerpali a preto budeme dnes pokračovať popisom atribútov a entít.

Takže po elementoch sú na rade atribúty.

Samotné elementy môžu mať atribúty, ktoré musia byť v dokumente (samozrejme aj mimo neho) deklarované. Ak sú deklarované mimo dokumentu, nazývajú sa externé deklarácie. Tieto atribúty majú určité vlastnosti: určuje sa aké atribúty môžu elementy mať, aké môžu nadobúdať hodnoty, akého sú typu a aká je ich východzia hodnota. Deklarácia atribútu môže vypadať napríklad takto:

<!ATTLIST automobil

značka ID 
rok_výroby CDATA 
vlastník (prvý | druhý) "prvý"> 

V tomto prípade má element automobil tri atribúty: značka, ktorý je identifikátorom a je v tomto prípade potrebný vyžadovaný, ďalej rok_výroby, čo je reťazec a nie je vyžadovaný a vlastník, ktorý má default hodnotu "prvý".

Teraz si ukážeme podobný zápis, avšak trochu zmenený. Ak je v dokumente viacej deklarácií atribútov patriacich jednému elementu, sú tieto spojené:

<!ATTLIST automobil

značka ID 
rok_výroby CDATA 
<!ATTLIST automobil vlastník (prvý | druhý) ´nové´> 

Kvôli prehľadnosti a lepšej orientácii je vhodné ku každému elementu priradiť iba jeden attribute list. Existuje šesť typov atribútov:

CDATA - reťazec znakov

ID - identifikátor

ENTITY - hodnota atribútu musí byť meno entity

IDREF - hodnota takéhoto atribútu odkazuje na hodnotu ID iného atribútu v dokumente

IDREFS - hodnota atribútov môže obsahovať viacero hodnôt (ID) iných atribútov. Zmysel IDREF a IDREFS si ukážeme na nasledovnom príklade:

<!ATTLIST zamestnanec

vedúci IDREF 
podriadený IDREFS

Element zamestnanec môže obsahovať atribút vedúci, predstavovaný ID inej osoby - vedúceho tohto zamestnanca, ďalej atribút podriadený, predstavovaný ID iných osôb - podriadených tohoto zamestnanca, ktorých môže byť viacej, zatiaľ čo vedúci iba jeden.

Východzie hodnoty môžu byť 4:

"hodnota" - priamo stanovená hodnota atribútu, ktorý môže nadobúdať aj iných hodnôt

Entity

Podobne ako aj v iných jazykoch, aj v XML sú určité znaky vyhradené pre určitý účel - napríklad pre označenie začiatku tagu "<". Aby bolo možné tieto značky použiť vo vlastnom obsahu dokumentu, existuje tu alternatívna možnosť ich zobrazenia, ktoré poskytujú práve entity. Okrem toho sa entity používajú ako odkazy na často opakované časti textu a ku vkladaniu obsahu externých súborov.

Každá entita musí mať unikátne meno. Ak chceme na ňu v dokumente odkázať, použijeme znak & ako počiatočný a ; ako koncový. Napríklad entita lt vloží do textu znak "<". Potom reťazec <element> môže byť zapísaný ako <element>. Tieto entity sú obvykle nazývané ako obecné (general) entity. Určite tento spôsob poznáte, hoci nie pod názvom entity. Ak ste už na svojej stránke chceli zobraziť zdrojový kód nejakej HTML, alebo inej dynamickej stránky, nahrádzanie znakov "<" ">" "©" Vám určite nie je cudzie.

Existuje zvláštny druh entit, ktoré sa nazývajú znakové (character) entity, odkaz sa potom nazýva character reference a používa sa pre vkladanie znakov Unicode do textu. Používajú sa hlavne pre vkladanie znakov, ktoré nemožno zapísať normálny spôsobom - z klávesnice. Odkaz môže byť buď dekadický, alebo hexadecimálny. Napríklad už vyššie spomenutý copyright je možné vložiť do textu pomocou nasledovnej znakovej sekvencie : ©

V XML môžeme nájsť tri druhy entit: interné, externé a parametrové.

Interné entity (Internal Entites) spájajú meno entity s určitým textom. Potom deklarácia takejto entity vypadá nasledovne:

<!ENTITY spolocnost "FIRMA, a.s.">

Takže, ak dovolíte, dnešnú piatu časť nášho seriálu o XML ukončíme práve pri interných entitách. V budúcej časti si ešte stručne niečo povieme o externých a parametrových, pár slov povieme o komentároch a dúfam že sa už konečne dostaneme k avizovanej praktickej ukážke jednoduchej objednávky tovaru.

Developer,
Stiahnuté z Developer.sk