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

Upravit obsah stránky

V dokumentu jsou změněné prvky (tj. pojmenované uzly s textem, které již neobsahují žádné jiné uzly kromě tohoto textu) označeny atributem
changed="true"
a případné změny v propojení
dokumentů 
pomocí primárních a cizích klíčů jsou označeny
change-key="true"
. Server uloží jen tyto změněné údaje a ostatní ponechá. Případně je ještě provedeno uložení nových opakování, tj. kde
skey="#…" 
(
skey
~ segment-key - další podrobnosti viz. druhá kapitola této části viz. segmenty a metadata dokumentů). Příklad uložení změny v dokumentu typu kontakt s pořadníkem
1234
, do obálky
save-document
se vloží uzel:
 
 
<kontakt dkey="1234">...</kontakt>


Obdobným způsobem probíhá také zakládání nových dokumentů. Rozdíl je pouze v tom, že atribut
dkey
obsahuje před číslem křížek (znak "
#
"). tj. požadavek
save-document
může například pro založení nového dokumentu kontakt obsahovat uzel:
 
<kontakt dkey="#1234">...</kontakt>

Číslo za křížkem není v tuto chvíli podstatné, neboť křížek vyvolá použití nejbližšího nového primárního klíče navýšenému o jedničku oproti
naposledy uložené nové instanci.
UPOZORNĚNÍ: Server z důvodů schopnosti ukládat více vláknově (paralelně) vždy při výskytu požadavku na založení dokumentu (křížku) nejprve zablokuje nový primární klíč a pak
provede zpracování dokumentu a jeho uložení. Je-li pak toto uložení neúspěšné, vzniká v číselné řadě primárních klíčů mezera. S mezerami v primárních klíčích je třeba běžně počítat (tomuto chování lze částečně předejít použitím atributu gappy v DAD ( continuous v XDS).