Definice šablon oblastí

Pro často opakované segmenty ve finálních definicích dokumentů je možné vytvářet šablony jako nástroj pro zjednodušení a zkrácení návrhu definitivních struktur. Pro oblast má uzel šablony název AreatDef a veškeré vlastnosti definovatelné formou parametrů najdete v části věnované popisu uzlu AreatDef dále v popisu. Zde se podíváme pouze na principy založení a použití šablony.

V oblastech již na rozdíl od prvků začínáme vytvářet stromovou strukturu. Jak bylo řečeno v úvodní kapitole, oblast v sobě může sdružovat nejen prvky, ale také jiné oblasti, které opět mohou obsahovat podoblasti atd. Vytváří se tak struktura za účelem rozdělení a zpřehlednění prvků v dokumentu. V informační struktuře vznikne celá řada oblastí, které se využívají v různých dokumentech. Pak s výhodou využijeme šablon oblastí. Dobrým příkladem může být oblast adresa pro definici struktury poštovní adresy.

Stejně jako u prvků můžeme i v oblasti odkazovat na jiné šablony a to jak oblastí, tak i prvků. Můžeme tak vytvořit již zmíněnou oblast adresy v uzlu AreaDef:

<AreaDef>
<name>adresa</name>
...
<content>
<element name="ulice" based-on="ulice"/>
<element name="misto" based-on="misto"/>
<element name="psc" based-on="psc"/>
</content>
</AreaDef>

Jednotlivé prvky můžeme zjednodušit vypuštěním vl. name na následující formu:

<AreaDef>
<name>adresa</name>
...
<content>
<element based-on="ulice"/>
<element based-on="misto"/>
<element based-on="psc"/>
</content>
</AreaDef>

Pokud názvy v odkazovaných šablonách odpovídají, nemusejí se duplicitně uvádět. Můžeme však použít ještě zcela jiné kombinace. Dostáváme se zde k tomu, že šablon prvků není zdaleka tolik zapotřebí, jak by se mohlo zdát z příkladů dosud uvedených. Předpokládejme, že v šablonách prvků existuje pro adresy jediná šablona s názvem prvky_adresy, tak jak je uvedena výše. Pak bychom mohli oblast adresy definovat takto:

<AreaDef>
<name>adresa</name>
...
<content>
<element name="ulice" based-on="prvky_adresy" .../>
<element name="misto" based-on="prvky_adresy" .../>
<element name="psc" based-on="prvky_adresy" .../>
</content>
</AreaDef>

Zdá se, že je to asi nejpraktičtější způsob, protože pokud v některém dokumentu chceme použít adresu, pak ji použijeme jako celou oblast - resp. šabonu oblasti. Vytváření šablony pro každý prvek zvlášť je pak nejen náročné, ale také nepraktické a zbytečné.

Celá adresa může mít vlastnost based-on uvedenu jako přímý potomek tagu AreaDef s odkazem na jinou šablonu oblasti. Pak je možné přebírat i celou strukturu odkazované šablony oblasti jako výchozí a případně k ní doplnit další segmenty či jen upravit vlastnosti některých z nich.


Kmen definiceSpecifikace skupin dokumentůDefinice šablon prvkůDefinice šablon oblastíSyntaxe odkazů na segmentyPodmíněnost segmentůVýrazy pro filtrySlužby - propojování dokumentů