Pseudo-dokumenty představují zvláštní typ logických sestav, které nejsou skutečnými dokumenty v databázi, ale jsou odvozeny z reálných (základních) dokumentů. Jedná se o virtuální konstrukty, které seskupují vybrané části a instance různých typů dokumentů do jednotné struktury – podobně jako běžný dokument, avšak bez vlastního fyzického záznamu v databázové tabulce.
Tyto dokumenty jsou definovány prostřednictvím XDS schématu, kde jsou označeny jako pseudo pomocí vlastnosti pseudo. Tato vlastnost slouží k tomu, aby bylo možné určit, že daný typ dokumentu nemá vlastní uložení, ale je skládán z částí jiných typů. Klíčovým aspektem pseudo-dokumentů je jejich parametrizace – konkrétní sestava je vytvořena na základě hodnot dodaných při volání, nebo odvozena z jiného typu přes klíčové slovo of.
Zápis definice může například vypadat takto:
pseudo = of:kntkt | number:user_id
Zde pseudo-dokument využívá data z dokumentu kntkt (kontakty) a je parametrizován číslem user_id, podle kterého se vyberou konkrétní záznamy.
Příklad požadavku na pseudo-dokument
Následující ukázka představuje požadavek na získání pseudo-dokumentu typu prehled_kontaktu_spravce, pro správce s ID 1234: <request>
<get-pseudo-document>
<document name="prehled_kontaktu_spravce">
<param name="user_id">1234</param>
</document>
</get-pseudo-document>
</request>
Odpovědí na tento požadavek bude struktura odpovídající běžnému dokumentu, sestavená na základě předdefinovaných vazeb v XDS. Může vypadat například takto:
<response>
<document-set>
<document name="prehled_kontaktu_spravce">
<section>
<field name="jmeno">Jan</field>
<field name="prijmeni">Novák</field>
<field name="email">jan.novak@example.com</field>
</section>
<section>
<field name="jmeno">Eva</field>
<field name="prijmeni">Králová</field>
<field name="email">eva.kralova@example.com</field>
</section>
</document>
</document-set>
</response>