Základní druhy DAD
Dělba z hlediska opakovatelnosti segmentů
Jednotlivá array, která se pro účely práce s dokumenty v Intranetu tvoří se dají dělit do dvou základních kategorií podle toho, zda obsažené segmenty jsou vzhledem k dokumentu opakovatelné či nikoli. Neopakované segmenty (s vlastním zdrojem) se vždy ukládají do hlavního array a opakované segmenty do array vedlejších.
array z hlediska opakovatelnosti ukládaných segmentů dělíme na:
hlavní (distance = 0)
vedlejší (distance != 0)
V každém array existuje vlastnost distance, která určuje vzdálenost (závislost) na hlavním array každého dokumentu. Hlavní array dokumentu se poznají podle toho, že jako jediné mají tuto vlastnost nastavenu na hodnotu 0. Rovněž vlastnost previous (předchozí) hlavního array, odkazující na předchozí či vyšší array, obsahuje hodnotu 0.
Dělba z hlediska úložiště segmentů
Vedle hlediska opakovatelnosti segmentů je tu hledisko jejich úložiště. Tedy zda se daný segment ukládá přímo v dokumentu, či představuje propojení na jiný dokument.
Z tohoto pohledu dělíme array na:
základní (basic = true)
odvozená (basic = false)
Každé array má vlastnost basic (základní), jenž určuje o jaký typ z hlediska úložiště segmentů se jedná. Vlastnost basic je typu boolean. Pokud tedy je vlastnost basic některého array nastavena na hodnotu true (pravda), pak se jedná o základní array a naopak.
Rozdíl mezi oběma typy má hned několik důsledků. Prvním z nich je, že po sestavení všech DAD na základě XDS se do databáze promítnou jen array základní. Ta totiž dohromady obsahují všechna potřebná úložiště. array odvozená jsou, jak jejich název napovídá, odvozena z array základních. To znamená, že vždy nejprve musí existovat základní array, aby na jeho struktuře mohlo být postaveno array odvozené.
Zatímco v základním array se názvy jednotlivých polí odvozují z toho, kde jsou umístěny jednotlivé prvky a jaký je obsah jejich atributů short, tvoří se názvy v odvozeném array podle toho, na jaké základní array odkazují (ať přímo či nepřímo).
Odvozené segmenty slouží tedy prvkům, které nemají úložiště typu own. Odvozená array ještě dělíme na:
příkazová (select = true)
nepříkazová (select = false)
array sloužící segmentům se zdrojem v jiném segmentu téhož dokumentu nemusí být (a nejsou) zahrnovány do SQL operací s databází. Proto tato array mají vlastnost sql nastavenu na hodnotu false - nejsou příkazová. Všechna ostatní array (tj. array odvozená se zdrojem v jiném dokumentu a základní array) mají v této vlastnosti uloženu hodnotu true, neboť jich pro tvorbu příkazů do databáze je zapotřebí.