Definice šablon prvků

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 prvek má uzel šablony název ElementDef a veškeré vlastnosti definovatelné formou parametrů najdete v části věnované popisu uzlu ElementDef dále v popisu. Zde se podíváme pouze na principy založení a použití šablony.

Již bylo řečeno, že šablona prvku jako taková nevytváří žádný odpovídající objekt v databázi. K tomu dochází až ve fázi finální definice dokumentu, kde mohou být šablony s výhodou použity.

Prvek, jako základní datová jednotka systému flexideo, popisuje mnoho skutečností. Určuje jejich název, popis, datový formát, formát zadávání (formulářový typ), ošetření vstupu údajů, jejich výstupní formátování, atd. (viz. uzel ElementDef). Tyto všechny vlastnosti je možné připravit si u často používaných prvků formou šablony a pak na ně ve finální definici dokumentu jen odkazovat. Toto odkazování se děje pomocí vlastnosti based-on u prvku uvedeného ve finální definici dokumentu. Do této vlastnosti se vepíše identifikační název definice šablony (tj. vlastnost name šablony).

Šablony prvků je možné nejen využívat ve finálních definicích, ale také v jiných šablonách prvků či v šablonách oblastí. Můžeme tak s výhodou "vyvést" určení jediné vlastnosti nebo substruktury (například roletku možností select) i v situacích, kdy ostatní vlastnosti jsou jiné a chceme si je připravit formou jiných šablon. Vždy je k tomu použito stejné vlastnosti based-on. V definici šablon oblastí (viz. dále) můžeme definic šablon prvků využívat naprosto stejným způsobem jako je tomu ve finálních definicích dokumentů.

Vzájemné propojení šablon prvků můžeme pozorovat v následujícím příkladu:

<ElementDef>
<name>prvky_adresy</name>
<style>format123</style>
</ElementDef>
...
<ElementDef>
<name>ulice</name>
<based-on>prvky_adresy</based-on>
...
</ElementDef>
<ElementDef>
<name>misto</name>
<based-on>prvky_adresy</based-on>
...
</ElementDef>

V první definici si určíme požadované společné vlastnosti (v našem případě šablonu výstupního formátování format123) některé skupiny prvků a v dalších definicích jen upřesníme konkrétní prvky a odkazem na připravenou definici jim určíme společný vzhled na tiskové šabloně.

V praxi bývá zvykem, že se výchozí šablonou určuje více než jedna vlastnost. Můžeme tak vedle vlastnosti style uvést také vlastnost input/type, která určuje způsob zadávání ve formuláři. Do výchozí šablony prvky_adresy tak můžeme přidat následující syntaxi:

<input>type:field;length:20;</input>

Pomocí této vlastnosti jsme určili, že zadání ve formuláři se bude realizovat pomocí kolonky s šířkou 20-ti viditelných znaků (podrobnější popis vlastnosti input viz. následující kapitola). U prvku PSČ však v adrese je tato šířka zbytečná a bylo by dobré ji zkrátit. To se provede prostým znovunastavením téže vlastnosti v šabloně prvku, která již odkazuje na výchozí šablonu prvky_adresy. Vznikne tak šablona prvku PSČ s následující syntaxí:

<ElementDef>
<name>psc</name>
<based-on>prvky_adresy</based-on>
<input>type:field;length:5;</input>
...
</ElementDef>

Tímto způsobem je možné i víceúrovňové využití šablon prvků. To znamená, že například můžeme vytvořit šablonu prvku zip - což bude šablona prvku pro ukládání cizího poštovního čísla, která může pomocí based-on odkazovat na šablonu psc a změnit jen některé její vlastnosti.


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ů