|
![]() | Naplnění formuláře daty z databáze | ![]() | Integrace XML formulářů s databází |
602XML Filler umožňuje digitální podepsání ukládaných dat. Taková data lze ukládat do databáze stejným způsobem, jako nepodepsaná, pomocí DAD propojujícího strukturu XML souboru s databázovými tabulkami.
Kontrola digitálního podpisu je poměrně složitý proces z těchto důvodů:
Stejný DAD popisuje podepsané i nepodepsané XML dokumenty. DAD tedy nepopisuje strukturu podpisové obálky dokumentu, pouze strukturu podepsaného dokumentu.
Při importu podepsaného dokumentu se pořídí jeho úplná kopie, včetně podpisové obálky. Tuto kopii lze uložit do databáze vedle importovaných dat z dokumentu a později použít k ověření podpisu.
Kopii dokumentu s podpisem lze uložit do kterékoliv tabulky, do níž se provádí import, do sloupce typu CLOB nebo NCLOB. Pokud import dokumentu zapisuje data do řady relačně propojených tabulek, je logické uložit kopii do tabulky na nejvyšší úrovni.
V návrhu DAD se na kopii podepsaného dokumentu odkazuje jako na (fiktivní) atribut jménem @FULL_XML_SOURCE. Takový atribut lze použít v kterémkoliv elementu a sdružit ho se sloupcem některé databázové tabulky nebo s proměnnou.
Při zápisu kopie dokumentu do databáze se neprovádí žádná konverze formátu ani znakové sady. Pokud si kódování dokumentu a typ sloupce neodpovídají, obsah kopie bude přístupný přes programová rozhraní, ale nemusí být čitelný v GUI.
Pokud se atribut @FULL_XML_SOURCE použije v DAD importujícím nepodepsaný dokument, je hodnota atributu prázdná.
Pokud data ve formuláři jsou podepisovaná po částech, pak je nelze uložit do databáze výše popsaným způsobem. Mohou totiž zahrnovat vícero digitálních podpisů vztahujících se k různým sekcím dat. Pro uložení takových dat existují dvě cesty:
V návrhu formuláře je třeba zvolit uložení podepsaných dat spolu s formulářem. URL pro uložení obsahuje řetězec DADX místo DAD, má tedy tuto strukturu:
http[s]://<host_name>[:<port_number>]/[<path>/]602.php/<server_name>/<schema_name>/DADX/<dad_object_name>dad_object_name je jméno objektu DAD uloženého na serveru server_name ve schématu schema_name.
Kompletní formulář včetně dat lze pak uložit do databáze pomocí atributu @FULL_XML_SOURCE a využít jej při kontrole digitálního podpisu. Databázový server při příjmu formuláře s daty provede extrakci dat, výstupní transformace na datech předepsané v návrhu formuláře, a výsledná data importuje do databáze.
Tento mechanismus je implementován pouze na platformě MS Windows. Vyžaduje, aby na počítači, na němž pracuje SQL server, byl instalován 602XML Filler, a využívá jeho knihovny. V současnosti je pouze v testovacím režimu a je možné, že s příští verzí 602XML bude změněn!
V návrhu formuláře lze předepsat, že při uložení obsahu formuláře se provedou dvě akce:
Pro každou z těchto akcí musí být navržen zvláštní DAD. Nelze však zajistit jakákoliv vazba mezi záznamy vzniklými těmito dvěma importy, proto má tato cesta velmi omezené použití. Lze ji však použít na platformě MS Windows i Linux.
![]() | Naplnění formuláře daty z databáze | ![]() | Integrace XML formulářů s databází |