XSD schemata dokumentů dle XDS

V XML komunikaci se nám setkávají podobné pojmy XDS a schemata XSD, jakožto standardizovaný popis typů v XML. Typová definice schemat je dnes nejvíce využívána pro výměnu dat mezi aplikacemi. Pomocí XDS designeru můžete při mapování na struktury dat jiné aplikace načíst XSD datových XML uzlů (typů) této aplikace a provádět na ně různá propojení. Aby i flexideo mohlo fungovat jako "cizí" aplikace, jsou i pro jednotlivé typy a jejich podobu v rolích generovány soubory schema.xsd. Stručný popis jejich konceptu je obsahem této sekce.


Základní pojetí xsd

Soubory schema.xsd se nacházejí, jak již bylo zmíněno, ke každému dokumentovému typu v každé roli, kde se tento typ nachází alespoň pro čtení. Je tvořen tak, že neimportuje žádné jiné soubory schemat a všechny potřebné jednoduché i komplexní typy si sám odvozuje od obecných xsd:... typů. Schematu je přidělen vždy jmenný prostor aplikace, pro který není, alespoň ve schematu, použito žádných jemnných prefixů. V každém souboru pro jeden určitý dokumentový typ najdete vždy jen jednu globální definicí xsd:element, která představuje kmenový uzel dokumentu, tedy parametr name uzlu DocumentDef finálních definic XDS. V kmenu pak již jsou k nalezení jen použité datové typy odvozené od těch obecných.


Komplexní vs. jednoduché typy

Vzhledem k tomu, že výskyt atributu v tagu se rovná přechodu od simpleType definice k definici complexType, rozhodují o "jednoduchosti" typu prvku takové věci, jako zda je opakovatelný, přístupný pro zápis či zda obsahuje výpočet (tj. atribut manual). Naproti tomu segmenty oblastní jsou vždy definovány jako uzly komplexního typu, protože minimálně obsahují další segmenty. Při výskytu potřeby alespoň jednoho atributu se tedy definice prvku mění z jednoduché na komplexní.

Zde je výčet atributů zavádějících komplexnost typu:

changed - pokud prvek v dané roli není jen pro čtení, umožňuje indikaci změny atributem s logickým (boolean) obsahem;

manual - má-li prvek definován source s mechanismem count, obsahuje jeho datový uzel automaticky i logický (boolean) atribut manual, který říká, zda byl obsah zaveden "natvrdo" uživatelem (true) nebo vypočítán či ponechán v init stavu (false);

source - atribut source je všude tam, kde se pracuje se souborem jakožto přílohou definovaného dokumentu, tedy buď v prvku x_common/addition/reference v obecné oblasti dokumentů nebo u prvku s data/type s hodnotou file, image či video - více viz. práce se soubory;

Dále se mohou, u prvků i oblastí, vyskytnout tyto atirbuty:

skey - hodnota primárního klíče opakování u opakovatelných segmentů (obdobně se v kmenu celého dokumentu objevuje dkey);

deleted - boolean atribut vyskytující se rovněž pouze u opakovatelných segmentů; jeho nastavením na hodnotu true při ukládání dokumentu zajistíte odstranění daného opakování z aktuální instance dokumentu (nikoli z historie);

fdk - má-li segment definován source s mechanismem initial nebo foreign, vzniká tzv. výběrový uzel, který vyžaduje ke své činnosti atribut pro uložení cizího klíče, tedy fdk;

fsk - v rámci propojení na cizí zdroje source na jiné dokumenty vznikají vedle uzlů výběrových též i tzv. specifikační a to ve chvíli, kdy je jako zdrojový odkazován opakovatelný segment; specifikační uzel, který vyžaduje ke své činnosti atribut pro uložení cizího klíče opakování, tedy fsk;

change-key - jde o boolean atribut, který říká, že došlo ke změně klíče; podmínkou k jeho výskytu ve schematu je tedy jednak přístup pro zápis a jednak výskyt výběrového nebo specifikačního uzlu (nebo obojího);


Dokumentace v anotacích

Schemata umožňují popsat jednotlivé uzly dokumentačním textem. Této schopnosti je v generovaných schematech rovněž využito a to v případech kdy je uvedena u segmentu vlastnost s popisem descr nebo nelze label převést na řetězec shodný s name. Pak se u segmentu uvede anotace s dokumentací.

Druhým místem, kde se provádí zdokumentování je výčet položek option u formulářového typu (input) dropdown, kdy je využívána restrikce enumerací. Pak každá možná hodnota value je doprovázena textem z definovahého obsahu option.


Jmenné prostory a server

Jako jmenný prostor pro dokumentové typy je voleno URI aplikace nastavované v aplikačních nastaveních v části A. Do tohoto jmenného prostoru pak spadají všechny uzly dokumentu ve schematu. Schemata záměrně nevyužívají jmenné prefixy jmenného prostoru. Je tím naznačena skutečnost, že server v XML protokolu se jmennými prostory nepracuje - celá aplikace je koncipována tak, že využívá jedinný jmenný prostor.


Dokument a další segmentyPropojení mezi dokumentyRozklad dokumentů v databáziObecná oblast všech dokumentůPřehled řídících atributů dokumentůHistorie změnPrincip rozpracovaných dokumentůMetadataPohledy a pseudo typyPrincipy mapování na jiné aplikaceXSD schemata dokumentů dle XDS