MASARYKOVAUNIVERZITA FAKULTAINFORMATIKY }w(cid:1)(cid:2)(cid:3)(cid:4)(cid:5)(cid:6)(cid:7)(cid:8)(cid:10)(cid:11)(cid:12)(cid:13)(cid:14)(cid:16)(cid:17)(cid:18)(cid:19)(cid:20)(cid:21)(cid:22)(cid:23)(cid:24)(cid:25)(cid:26)(cid:31) !"#$%&’()+,-./012345<yA| Open Source alternatı´va k Software602 Form Filler DIPLOMOVA´ PRA´CA L’ubosˇ Kardosˇ Brno,jar2013 Prehla´senie Prehlasujem,zˇeta´todiplomova´ pra´cajemoj´ımpoˆvodny´mautorsky´mdie- lom,ktore´somvypracovalsamostatne.Vsˇetkyzdroje,pramenealiteratu´ru, ktore´ somprivypracovan´ıpouzˇ´ıvalaleboznichcˇerpal,vpra´ciriadnecitu- jemsuveden´ımu´plne´hoodkazunapr´ıslusˇny´ zdroj. Vedu´cipra´ce: Mgr.MartinSˇa´rfy ii Pod’akovanie Touto cestou d’akujem svojmu vedu´cemu Mgr. Martinovi Sˇa´rfymu za od- bornu´ pomocavedeniepritvorbetejtodiplomovejpra´ce. iii Zhrnutie Ciel’ompraktickejcˇastidiplomovejpra´cebolovytvorit’opensorceknizˇnicu prepra´cusforma´tomformula´rovZFO.Textpra´cesavenujepopisutechno- lo´gi´ıvoforma´teZFOapostupomvimplementa´ciiknizˇnice. iv Kl’u´cˇove´ slova´ pra´casformula´rmi602XML(ZFOaFO),vytva´ranieXMLSignature,forma´t XForms,arhvivovaniepomocouZIPsu´borov v Obsah 1 Za´kladny´ popisforma´tuZFO . . . . . . . . . . . . . . . . . . . . . 4 2 Da´tova´ cˇast’forma´tuZFO . . . . . . . . . . . . . . . . . . . . . . . 6 2.1 SˇtandardXForms . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2.2 Podrobnejsˇ´ıpohl’adnaXForms . . . . . . . . . . . . . . . . . . . 7 2.3 Odosielanieda´tzformula´ra. . . . . . . . . . . . . . . . . . . . . 11 2.4 Obmedzovaniehodnoˆt . . . . . . . . . . . . . . . . . . . . . . . 13 2.5 Vypocˇ´ıtavanieza´visly´chhodnoˆt . . . . . . . . . . . . . . . . . . 13 3 Prezentacˇna´ vrstvaforma´tuZFO . . . . . . . . . . . . . . . . . . . 15 3.1 PrezentovanieXMLdokumentov . . . . . . . . . . . . . . . . . . 15 3.2 JazykXSL-FO . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.3 Za´kladny´ popissˇtruktu´ryXSL-FOdokumentu . . . . . . . . . . 16 3.4 Sˇablo´nastrany . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3.5 Vyplnˇovaniestra´nobsahom . . . . . . . . . . . . . . . . . . . . . 18 3.6 Dˇalsˇieforma´tovacieznacˇkyaZFOrozsˇ´ırenia . . . . . . . . . . . 19 4 Vrstvazabezpecˇeniaelektronicky´mpodpisom . . . . . . . . . . 20 4.1 Forma´tZFOasˇtandardXMLSignature . . . . . . . . . . . . . . 20 4.2 PopisXMLPodpisu . . . . . . . . . . . . . . . . . . . . . . . . 20 4.3 Sˇtruktu´raXMLPodpisu . . . . . . . . . . . . . . . . . . . . . . 22 4.4 Podrobnejsˇ´ıpohl’adnareferencie . . . . . . . . . . . . . . . . . . 24 4.5 Ulozˇenievyplneny´chda´taichpodp´ısanie . . . . . . . . . . . . . 24 5 Importda´tdoelektronicke´hoformula´ra . . . . . . . . . . . . . . 27 5.1 Importovanieda´tdoelektronicke´hoformula´ra . . . . . . . . . . . 27 6 Vy´pocˇetza´visly´chhodnoˆt . . . . . . . . . . . . . . . . . . . . . . . 34 6.1 Riesˇenieza´vislost´ı . . . . . . . . . . . . . . . . . . . . . . . . . . 34 6.2 Vyhodnocovanievy´razov . . . . . . . . . . . . . . . . . . . . . . 36 6.2.1 VyhodnocovanieXPathvy´razov . . . . . . . . . . . . 36 6.2.2 VyhodnocovanieZFOvy´razov . . . . . . . . . . . . . 37 7 Podpı´sanievyplnene´hoformula´ra . . . . . . . . . . . . . . . . . . 43 7.1 JavaXMLDigitalSignatureAPI . . . . . . . . . . . . . . . . . 43 7.2 HierarchiatriedvXMLDigitalSignatureAPI . . . . . . . . . . 43 7.3 Podp´ısanieXMLdokumentuXMLPodpisom . . . . . . . . . . . 44 8 Vytvoreny´ programajehopouzˇı´vanie. . . . . . . . . . . . . . . . 48 1 ´ Uvod Diplomova´ pra´ca sa zaobera´ elektronicky´mi formula´rmi. Elektronicke´ for- mula´remaju´ mnohovyuzˇit´ı.Pouzˇ´ıvaju´ saprirezervovan´ısluzˇiebalebopri komunika´ci´ı s u´radmi. Existuje mnoho forma´tov elektronicky´ch formula´- rov.Patriasempdf,htmlformula´re,ZFO(forma´tvytvoreny´ cˇeskoufirmou Software602 a.s.) a ine´. Kazˇdy´ z nich je vhodny´ na roˆzne u´cˇely. Pri styku s u´radmijevyzˇadovane´,abybolomozˇne´ overit’,zˇeelektronicky´ formula´rbol naozajvydany´ patricˇny´mu´radom.Takistou´radymusiabyt’schopne´ overit’ identituosoby,ktora´ formula´rvyplnila.Jedny´mzforma´tovelektronicky´ch formula´rovspl´nˇaju´cichtietopozˇiadavkyjeforma´tZFO,ktory´ jecˇastopou- zˇ´ıvany´ u´radmi v Cˇeskej republike. Forma´t vytvorila a na´stroje pre pra´cu s n´ım ponu´kacˇeska´ firmaSoftware602 a.s. Ty´mitona´strojmi su´ najma¨ Form Designer slu´zˇiaci k vytva´raniu formula´rov a Form Filler, pomocou kto- re´ho je mozˇne´ formula´re vypl´nˇat’u´dajmi. V su´cˇastnosti je mozˇne´ obidva tieto programy zadarmo stiahnut’z oficia´lnych stra´nok firmy Software602 a.s., avsˇak programy maju´ uzavrety´ zdrojovy´ ko´d. Forma´t ZFO pouzˇ´ıva napr´ıklad Cˇeska´ posˇta pre da´tove´ schra´nky, Cˇeska´ spra´va socia´lneho za- bezpecˇeniapreprihla´sˇkyaodhla´sˇkynemocenske´hopoistenia,ministerstvo spravodlivostipreza´pisdoobchodne´horegistraamnohe´d’alsˇieu´radyalebo su´kromne´ firmy.Apra´veforma´tuZFOjevenovana´ ta´todiplomova´ pra´ca. Ciel’om praktickej cˇasti diplomovej pra´ce je vytvorit’open source knizˇ- nicu pre pra´cu so ZFO forma´tom a program pouzˇ´ıvaju´ci tu´to knizˇnicu, ktory´ bude alternat´ıvou k Software602 Form Filler. Knizˇnica mus´ı najprv doka´zat’otvorit’ZFO su´bor, d’alej donˇho importovat’da´ta z XML, prepocˇ´ı- tat’za´visle´ hodnoty, podp´ısat’formula´r a nakoniec znovu ulozˇit’. Zmyslom vytvorene´ho programu nie je len byt’opensorce alternat´ıvou k na´stroju Software602 Form Filler, ale kedzˇe program vytvoreny´ v praktickej cˇasti diplomovej pra´ce je ovla´dany´ z pr´ıkazove´ho riadku, umozˇnˇuje oproti ofi- cia´lne poskytovane´mu na´stroju aj da´vkove´ spracovanie. Forma´t vyuzˇ´ıva mnozˇstvo sˇtandardov a technolo´gi´ı(su´borovy´ forma´t ZIP, XML Signature, XSL-FO,XForms,XPath,XMLSchema...).Akoprogramovac´ıjazykbolzvo- leny´ jazykJava,pretozˇeobsahujeuzˇvsˇtandardnejknizˇnicimnohona´strojov prepra´custy´mitosˇtandardami. 2 Prve´ sˇtyri kapitoly popisuju´ forma´t ZFO a sˇtandardy v nˇom pouzˇite´. Prva´ kapitola strucˇne rozobera´ forma´t ZFO a popisuje cˇasti, z ktory´ch sa sklada´.Potomnasleduju´ postupnekapitolyvenovane´ jednotlivy´mcˇastiam forma´tuZFOatoda´tovejvrstve,prezentacˇnejvrstveavrstvezabezpecˇenia. Dˇalsˇie tri kapitoly sa venuju´ proble´mom riesˇeny´m v praktickej cˇasti diplomovejpra´ce.Jetokapitolaoimportedoformula´ra,nasledovana´ kapi- tolov o vy´pocˇte za´visly´ch hodnoˆt, kde je pop´ısany´ aj spoˆsob parsovania a vyhodnocovania ZFO vy´razov. Tu´to cˇast’uzatva´ra kapitola o podpisovan´ı vyplnene´ho formula´ra pomocou jazyka Java. Posledna´ kapitola popisuje pouzˇ´ıvanievytvorene´hoprogramu. 3 Kapitola1 Za´kladny´ popis forma´tu ZFO Forma´t elektronicky´ch formula´rov ZFO[1] vycha´dza z viacery´ch sˇtandar- dov(XMLForms,XMLSignature,XSL-FO,...)ainternepouzˇ´ıvaroˆzned’alsˇie forma´ty.Prvy´ forma´t,naktory´ naraz´ımeprispracova´van´ıZFO,jesu´borovy´ forma´tZIP.Samotny´su´borZFOjeZIParch´ıvobsahuju´cinasledovne´su´bory: • form.fo(formula´r) • summary(adresa´r) – summary.xml(su´bor) • thumbnails(adresa´r) – fpsmall.jpg(obra´zokmale´hona´hl’adu) – fplarge.jpg(obra´zokvel’ke´hona´hl’adu) Jediny´m povinny´m a najdoˆlezˇitejsˇ´ım prvkom arch´ıvu je su´bor form.fo po- pisuju´ci elektronicky´ formula´r. Tento su´bor je forma´tu FO, odtial’aj na´zov ZFO,zippedFO.Forma´tFOjeXMLdokumentvko´dovan´ıUTF-8asklada´ ztrochcˇast´ı: • Da´tova´ cˇast’ • Prezentacˇna´ vrstva • Vrstvazabezpecˇenia Da´tova´ cˇast’obsahuje za´kladne´ informa´cie o formula´ri o da´tovy´ch polozˇ- ka´ch vo formula´ri o ich da´tovy´ch typoch a uda´va vzt’ahy pre vy´pocˇet od- vodeny´ch hodnoˆt. Nema´ vplyv na forma´tovanie a zobrazenie formula´ru. Je insˇpirovana´ sˇtandardom XForms, avsˇak nedodrzˇuje ho kompletne. V uricˇity´ch cˇastiach ho modifikuje v iny´ch dopl´nˇa. V su´bore FO je da´tova´ cˇast’reprezentovana´ elementom <fm:model> a jeho obsahom. Prefix fm je oznacˇen´ımmenne´hopriestoruhttp://software602.cz/forms. 4 1.ZA´KLADNY´ POPISFORMA´TUZFO Prezentacˇna´ vrstva naopak popisuje vzhl’ad formula´ra, pouzˇ´ıva jazyk XSL-FO, odtial’aj pocha´dza na´zov forma´tu FO, ktory´ je rozsˇ´ıreny´ o d’alsˇie prvky. Graficke´ prvky formula´ra su´ prepojene´ s da´tovou sˇtruktu´rov repr- zentovanoujazykomXForms.Ta´tovrstvajetvorena´ elementom<fo:root>, kde prefix fo oznacˇuje menny´ priestor http://www.w3.org/1999/XSL/Format patriacisˇtandarduXSL-FO.Element<fo:root>obalujeelement<fm:model>. Prevrstvuzabezpecˇeniasapouzˇ´ıvasˇpecifika´ciaXMLSignature.Element dsig:Signatureztohtosˇtandarduvsebeobsahujevysˇsˇiespom´ınane´elementy azabezpecˇujeichelektronicky´mpodpisom.Prefixdsigreprezentujemenny´ priestorsˇtandarduXMLSignatureaty´mjehttp://www.w3.org/2000/09/xmldsig. Prezhrnutiemoˆzˇemevidiet’nanasleduju´comobra´zkugrafickyzna´zor- nenu´ sˇtruktu´ruforma´tuZFO. Obr.1.1:Sˇtruktu´raforma´tuZFO Nasleduju´ce tri kapitoly sa venuju´ podrobnejsˇie jednotlivy´m cˇastiam forma´tuZFOasˇtandardomvnichvyuzˇity´ch. 5
Description: