Tvorba vedlejšího array


XDS příklad

Dokument tak, jak byl pomocí XDS navržen, obsahuje jednu nepříjemnou vlastnost. K jednomu člověku lze zadat pouze jediné telefonní číslo. Pokud bychom chtěli mít možnost zadat více telefonních čísel, pak bychom oblast telefony nastavili jako opakovatelnou pomocí atributu repeat oblasti. Upravená definice oblasti z předchozího příkladu by tedy mohla vypadat takto:

<area name="telefon" based-on="telefon" repetition="type:user;"/>

DAD příkladu

Touto drobnou úpravou v XDS docílíme zásadnější změny ve struktuře DAD. Pro účely dokumentu bude nyní vedle hlavního array vytvořeno i array vedlejší. Z hlavního array pak budou vyjmuty prvky oblasti telefon (políčka začínající zkratkou tel_) a budou přesunuty do vedlejšího array. Nové hlavní array bude nyní vypadat takto:

Člověk ­ 11 12 13 14 15 18 19
001 pdk general ... cjm_kjm cjm_pjm adr_ulc adr_mst adr_psc dlsud_rcii dlsud_phl
­ ­ ­ ­ ­ ­ ­ ­ ­
table: clovek basic true
distance: 0 select: true
previous: 0 key-owner: false
key-prev: 0 frgn-main: false
join-key: - ­

Vedlejší array pro telefony bude vypadat takto:

Člověk ­ 16 17
002 psk tdk vom tcs
­ 001 ­ ­
table: clovek_tel basic true
distance: 1 select: true
previous: 001 key-owner: true
key-prev: 001 frgn-main: false
join-key: - ­

Naše nové array má číslo 002 a jeho primárním klíčem je klíč segmentu (psk) a nikoli klíč dokumentu (pdk). Vedle této klíčové hodnoty má každé vedlejší základní array dokumentu i hodnotu tdk (This Document Key). Ve vlastnosti join této klíčové hodnoty je číslo 001 - tedy číslo hlavního array. Pomocí tohoto propojení je realizováno spojování tabulek v SQL příkazech.

Vlastnosti tohoto nového vedlejšího array se rovněž od hlavního liší. Zkratka oblasti (tel) doplnila název tabulky (vlastnost table), previous už neobsahuje nulovou hodnotu, ale odkaz na hlavní array dokumentu a závislost (distance) se nám zvýšila o jedničku.

Stále se však jedná o základní array, podle kterých se tvoří tabulky.


Dokumenty bez cizího zdrojeTvorba vedlejšího arrayDalší příklad dokumentu bez cizího zdroje