Identifikace změn při ukládání XML dokumentů

Upravit obsah stránky

V rámci ukládání dokumentů jsou změněné prvky (tj. pojmenované XML uzly, které obsahují pouze text a žádné další poduzly) označeny atributem changed="true". Pokud dojde ke změně propojení mezi dokumenty – tedy například v oblasti primárních a cizích klíčů – používá se atribut change-key="true". 

Server při zpracování požadavku uloží pouze takto označené změny, ostatní data zůstávají beze změny. Kromě toho může být provedeno také uložení nových opakování segmentů, což je indikováno pomocí atributu skey="#..." (kde skey odpovídá tzv. segment-key – viz podrobněji v části Segmenty a metadata dokumentů).

Příklad: uložení změn existujícího dokumentu

Chceme-li uložit změnu v dokumentu typu kontakt s primárním klíčem 1234, bude požadavek typu save-document obsahovat následující uzel:
 <kontakt dkey="1234"> ... </kontakt>

Příklad: vytvoření nového dokumentu

Založení nového dokumentu probíhá obdobně, s tím rozdílem, že hodnota atributu dkey obsahuje znak # před číslem. Ten značí, že se má použít nový primární klíč, automaticky přidělený serverem. 

Požadavek může tedy vypadat následovně:
 <kontakt dkey="#1234"> ... </kontakt>
 

Číslo za znakem # slouží pouze jako dočasný identifikátor pro vnitřní vazby a nemá vliv na skutečný klíč, který server přidělí. Skutečný primární klíč bude zvolen jako nejbližší volné číslo, vyšší o jedna než naposledy použitá hodnota. 

Upozornění: Z důvodu podpory vícevláknového (paralelního) zpracování server při každém požadavku na založení nového dokumentu nejprve zablokuje nový primární klíč a teprve poté provede uložení. 
Pokud se následně uložení nezdaří, zůstává v číselné řadě klíčů mezera. Tento jev je běžný a systém jej akceptuje. Chování lze částečně ovlivnit pomocí atributu gappy v DAD nebo použitím vlastnosti continuous v definici typu v XDS.