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.