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.