Otvorené formáty kancelárskych softvérov
1. | XML, XPath, XSLT a XQuery |
2. | Otvorené formáty kancelárskych softvérov |
3. | Aplikácia pre prezeranie dokumentov OO XML
|
Obsah
Office Open XML (OOXML)
S príchodom kancelárskeho balíka Microsoft Office 2007 zaviedol Microsoft do svojich programov nový formát ukladania súbor Office Open XML (OOXML). Takto uložené súbory majú oproti predchodcom z balíka Office 2003 príponu predĺženú o písmeno „x“ (docx, xlsx, pptx…) a úplne odlišnú vnútornú štruktúru. Písmeno „x“ značí použitie XML v súboroch popisujúcich dokument. Celý súbor tohto balíka je v skutočnosti množina XML súborov, ktoré sú vzájomne previazané. V každom XML súbore sú uložené iné informácie o dokumente a ak tieto informácie vhodne poskladáme, dostaneme výsledný dokument. Všetky súbory popisujúce dokument sú zabalené do jedného balíka a skomprimované technológiu ZIP. To znamená, že ak prepíšeme príponu súboru na *.zip a otvoríme tento súbor v ľubovoľnom programe na otváranie komprimovaných súborov (WinRAR, 7Zip, Total Commander...) uvidíme vnútornú štruktúru dokumentu OOXML.
Výhody ukladania do formátu OOXML:
- Menšia veľkosť výsledného dokumentu vďaka komprimácii
- Väčšia bezpečnosť
- Menšia náchylnosť na poškodenie dokumentu
- Väčšia kompatibilita a prenesitelnosť dokumentu
Vnútorná štruktúra súboru OOXML
Pre popísanie a vysvetlenie štruktúry sme si zvolili súbor tabuľkového procesora Microsoft Excel, ktorému sa budeme ďalej bližšie venovať. Po prepísaní prípony a otvorení súboru môžeme vidieť nasledovnú stromovú štruktúru:
Táto štruktúra, ako aj názvy adresárov a súborov, musia byť presne také isté, ako na obrázku. Ak by sme túto štruktúru nejakým spôsobom narušili, program ktorý sa bude snažiť poskladať výsledný dokument, nebude môcť pristupovať k dátam z narušenej časti štruktúry.
Obsah jednotlivých adresárov a podadresárov
Koreňový adresár dokumentu obsahuje súbor [Content_types].xml, v tomto súbore sa nachádzajú záznamy o typoch všetkých častí dokumentu. Každá časť sa tu vyskytuje iba raz, ako unikátny záznam. Všetky časti dokumentu musia mať identifikovateľný typ, aby program, ktorý bude pracovať s dokumentom vedel, ako využiť danú časť pri zobrazovaní dokumentu. Tento súbor využíva špeciálne XML menné priestory pre popis jednotlivých typov častí dokumentu. Ukážka zadefinovania predvoleného typu súboru vo vnútri dokumentu:
<Default Extension="xml" ContentType="application/xml"/>
V koreňovom adresári sa ďalej nachádza adresár s názvom _RELS v tomto adresári je umiestnený súbor s názvom .rels tento súbor taktiež využíva špeciálne menné priestory a definuje vzťahy medzi hlavnými časťami dokumentu. Každý vzťah je tvorený tromi časťami informácie.
- Unikátne identifikačné čislo v rámci dokumentu (Relationship ID)
- Typ vzťahu (Relationship Type)
- Ukazateľ na cieľ daného vzťahu
Ukážka zadefinovania vzťahu v súbore .rels:
<Relationship Id="rId1" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Target="xl/workbook.xml" />
Vo vnútronej štruktúre dokumentu môže byť viac súborov ktoré definujú vzťahy medzi časťami dokumentu, a vždy sú v danej časti dokumentu, v ktorej určujú vzťahy, uložené v adresári s názvom _RELS.
Ďalej nasleduje adresár s názvom „XL“ názov tohto adresára je jedinečný, pre každý typ dokumentu balíka Microsoft Office je iný a podľa neho môžeme spoznať o aký typ dokumentu sa jedná. V tomto adresári sú uložené hlavné XML súbory pre vytvorenie výsledného dokumentu. Môžeme vidieť že adresár „XL“ znovu obsahuje adresár „_RELS“ a v ňom súbor workbook.xml.rels. Tento súbor definuje vzťahy medzi jednotlivými časťami v adresári „XL“. Ďalej obsahuje adresár „THEME“ ktorý nie je povinný, ako aj súbor „theme1.xml“ ktorý sa v ňom nachádza. Ak ho dokument obsahuje tak tento súbor určuje niektoré vlastnosti dokumentu, ako fonty pre jednotlivé jazyky, farebné schémy a pod. ďalší v poradí je adresár „WORKSHEETS“, ktorý obsahuje pre každý hárok dokumentu jeden XML súbor. Tzn. že v našom prípade dokument obsahuje 3 hárky, čo je minimum ktoré Microsoft Excel vytvorí pri vytváraní dokumentu. V súboroch sheetx.xml je v XML štruktúre uložený obsah daného dokumentu (hodnoty buniek, vzorce a pod.). Tomuto súboru sa budem podrobnejšie venovať v ďalšej podkapitole. Ešte si stručne popíšeme ostatné súbory ktoré sa nachádzajú v adresári „XL“. Súbor calcChain.xml obsahuje zoznam všetkých buniek v dokumente, ktoré sú vypočítané podľa nejakého vzorca. Súbor sharedstrings.xml obsahuje zoznam všetkých textových reťazcov, obsiahnutých vo všetkých hárkoch daného dokumentu, každý textový reťazec sa tu nachádza iba raz, ako jedinečný záznam. Súbor styles.xml obsahuje ďalšie informácie o vzhľade dokumentu ako predvolený font, farebné schémy, veľkosti buniek a pod a súbor workbook.xml obsahuje základné informácie o celom dokumente, ako verzie programov ktorými bol dokument editovaný, pohľad na dokument (veľkosť okna) a jednotlivé hárky obsiahnuté v dokumente aj s identifikačnými číslami.