Syntaxe odkazů na segmenty

V rámci definice vlastností jednotlivých segmentů je třeba provádět odkazy na jiné segmenty. Jde například o využití ve vlastnosti source pro propojování dokumentů, ale i o celou řadu dalších vlastností. Odazy se dělí především na:

absolutní - začínají lomítkem

relativní - v definici systému flexideo vždy začínají tečkou (rozdíl / omezení oproti XPath!)

Vedle zmíněné vlastnosti source a s ní související vlastností take-from, která (přesto, že připomíná XPath) má svá vlastní pravidla - viz. odkazování na zdroj, mají odkazy v systému flexideo svá pravidla a zvláštní možnosti. V první řadě není zde možnost zadávání XPath podmínek v hranatých závorkách a není možnost použití plné syntaxe srovnávacích vzorů a zástupných znaků. Syntaxe odkazů je navržena speciálně pro potřeby odkazů v XDS definici a dalo by se říci, že oproti XPath jde o nesrovnatelně jednodušší (účelový) způsob odkazování.

Zjednodušení (a také omezení) spočívá vedle vypuštění podmínek a srovnávacích vzorů především v tom, že se nezabýváte přesně strukturou xml, ale spíš její významovou částí. Můžete tak na prvek definovaný jako:

<element name="jmeno" label="Jméno a příjmení"/>

odkazovat nikoli běžným zápisem:

element[@name='jmeno']

ale zápisem abstrahujícím od typu segmentu a sice takto:

./jmeno

Pokud by výše nastíněný prvek neměl definováno jméno, ale pouze popisek label, vypadal by odkaz takto:

./jmeno_a_prijmeni

Jde o to, že si replikátor v procesu kompletace jméno doplní a to přednostně z popisku label. Není-li k dispozici poisek, může použít zdrojový odkaz, odkaz na šablonu atd. Zde je výhodné použít nástroje pro návrh definice, který tuto problematiku řeší za vás pomocí intellisense nástroje pro tvorbu odkazů (viz. XDS designer. Povšimněte si také opět nutnosti použít tečku při relativním odkazu. Pokud bychom potřebovali použít odkaz absolutní, potřebujeme znát celou strukturu odkazované větve. Zásadou je, že při absolutních odkazech začínáme od kmene obsahu dokumentu (to co je ve struktuře content) nebo jeho služby (to co je ve struktuře services - případě odkazování do cizího dokumentu odkazujeme vždy na jeho služby a teprve tato služba přesměrovává odkaz do dokumentu). Následuje jméno kmenové oblasti či služby odkazovaného dokumentu. To do jakého dokumentu odkazujeme už je dáno kontextem použití odkazu. Uvažujme tak například dokument mající tyto segmenty:

<content>
<area name="osoba">
<element name="jmeno" ...
...

bude absolutní odkaz vypadat následovně:

/osoba/jmeno

Uvedená zjednodušení umožňují replikátoru předem kontrolovat všechny odkazy (vyjma výrazu atributu select v definování akcí, jež má zvláštní možnosti a určení). Eliminuje se tak lidská chyba, jež je podchycena již v první fázi přípravy aplikace.

Vedle těchto prostých odkazů je v rámci některých vlastnotí možné odkazovat na jiné dokumenty. Jedná se především o filtrovací výrazy různého druhu - konkrétní využití viz. popis jednotlivých vlastností. Zde se podíváme na obecná pravidla zadávání odkazů do cizích dokumentů (poznámka: složitější filtrovací výrazy jsou replikátorem také plně prověřovány). Více o zápisech filtrů viz. další část.