Otvorené formáty súborov kancelárskych softvérov: Rozdiel medzi revíziami
Riadok 105: | Riadok 105: | ||
Nasledujúci príklad ukazuje ako pomocou menných priestorov zamedziť kolízii v názvoch elementov: | Nasledujúci príklad ukazuje ako pomocou menných priestorov zamedziť kolízii v názvoch elementov: | ||
− | <center>[[Image:]]</center> | + | <center>[[Image:pict.jpg]]</center> |
V dokumente sa vyskytuje dvakrát element tabulka, no vždy je priradený inému mennému priestoru. | V dokumente sa vyskytuje dvakrát element tabulka, no vždy je priradený inému mennému priestoru. |
Verzia zo dňa a času 17:31, 14. február 2010
![]() |
Trenčianska Univerzita Alexandra Dubčeka v Trenčíne
Fakulta Mechatroniky |
![]() |
Autor: | Lukáš Krajči |
Pedagogický vedúci: | Ing. Juraj Ďuďák |
Študijný odbor: | Mechatronika
|
Akademický rok |
2009/2010
|
1. | XML, XPath, XSLT a XQuery |
2. | Otvorené formáty kancelárskych softvérov |
3. | Aplikácia pre prezeranie dokumentov OO XML
|
Obsah
Abstrakt
Práca sa zaoberá spôsobmi uchovávania dát v súboroch kancelárskych softvérov MS Office 2007 a Open Office 3.0. Rozoberá technológie použité pri ukladaní týchto dát a vnútornú štruktúru uložených dokumentov. Taktiež opisuje problematiku vytvorenia webovej aplikácie pre prezeranie súboru vybraného typu. |
Abstract
The work deals with techniques of storying data in the files of the office software MS Office 2007 and OpenOffice.org 3.0. Analyzes the technologies used for the data storying and the internal structure of the stored documents.It also describes issues of creating a web-based application for viewing the selected file type. |
XML, XPath, XSLT a XQuery
Úvod
Začiatkom osemdesiatych rokov dvadsiateho storočia IBM, DEC a ďalšie veľké priemyselné firmy prišli k dohode o potrebe štandardu pre výmenu údajov medzi rôznymi počítačmi. Ich iniciatíva viedla k vzniku štandardu ISO (International Organization for Standardization) s číselným označením 8879 z roku 1986. Obsahuje definíciu SGML (Standard Generalized Markup Language). Je to jazyk, ktorého cieľom bolo umožniť zdieľanie informácií medzi podnikmi s rozdielnymi informačnými systémami. Umožňuje oddeliť dáta od ich spracovania. Na základe analýzy štruktúry dát sa vytvára slovník, označovaný ako DTD (Document Type Definition). Tento slovník naznačuje obsah jednotlivých objektov tzv. objektovým modelom s presne definovanou syntaxou. Pretože rôzne množiny údajov môžu mať rôzne dátové objekty, líšia sa aj ich slovníky DTD. Dokument SGML je vytváraný ako textový dokument. Jednotlivé prvky dokumentu sú oddelené značkami, ktoré sú definované v slovníku DTD. Ako text je dokument prenositeľný na rôzne systémy, ktoré majú implementovaný analyzátor SGML dokumentov. Analyzátor tento dokument načíta, s využitím slovníka DTD a značiek v dokumente je schopný určiť štruktúru dokumentu a spracovať jeho obsah. Nevýhodou štandardu SGML bolo, že nebol schopný reagovať na požiadavky webu. Vznikol v dobe pomalých a drahých počítačov. Aby bolo možné z týchto systémov získať maximum, štandard SGML bol vybavený minimalizačnými nástrojmi. Tie mali výsledné textové súbory dokumentov stlačiť na čo najmenšiu veľkosť. Dôsledkom boli zložité, drahé a pomalé analyzátory a veľká finančná náročnosť zavádzania SGML do praxe. Skutočnosť, že SGML je štandardom ISO, sa premietla do odmietnutia zmien, ktoré smerovali k jeho zjednodušeniu. Zjednodušenia boli požadované pre možnosť použitia štandardu pri výmenu údajov vo webe a pre možnosť zobrazenia dokumentov prehliadačmi. Namiesto priameho použitia štandardu SGML ako celku veľké rozšírenie získala iba jeho aplikácia HTML - HyperTextMarkup Language. Pôvodcom jazyka je Tim Berners-Lee. Veľký ohlas mala verzia 2.0, ktorú Berners-Lee a D. Connolly zverejnili v novembri 1995 ako RFC1866. Ďalším medzníkom je január 1997. Bolo zverejnené odporúčanie W3C (World Wide Web Consorcium) HTML 3.2. Ale ani vtedy sa vývoj HTML neskončil. Pokračovalo pridávanie nových značiek. Objavila sa možnosť tvorby skriptov. Doplnené boli kaskádové štýly, formuláre, rámce. Popri statických HTML dokumentoch, čím ďalej tým viac údajov na webových serveroch sa ukladá v databázach. Čím ďalej tým viac dokumentov sa vytvára dynamicky programami alebo skriptami s využitím údajov v databázach. Rozširuje sa eBusines, eLearning, eBanking. Narastajú požiadavky na výmenu údajov medzi strojmi. HTML bolo pôvodne určené pre prezentáciu textov. Človek, čitateľ, si z textu potrebnú informáciu vyberie. Aby to však mohli robiť aj stroje, je potrebné dôslednejšie formátovať údaje a treba mať jasné pravidlá, podľa ktorých je možné zistiť, či sú údaje úplné. HTML k tomu nestačí, SGML je zložité a z tohto dôvodu vzniklo XML. V roku 1996 bola pod záštitou W3C vytvorená pracovná skupina, ktorej cieľom malo byť zjednodušenie SGML pre potreby webu. Okrem širokej akceptovateľnosti výsledného štandardu pre potreby webu sa mala dosiahnuť aj možnosť jednoduchej tvorby programov pre spracovanie XML dokumentov. Prvá verzia odporúčania XML bola zverejnená vo februári 1998. V októbri roku 2000 bola zverejnená revízia tohto odporúčania pod názvom Extensible Markup Language (XML) 1.0 (Second Edition). Odporúčanie definuje, čo je to XML dokument, čo je prvok (element), jeho počiatočné a koncové ohraničenie, značka, atribúty aj obsah prvku. Určuje pravidlá pre voľbu názvov prvkov - značiek, atribútov. Stanovuje tiež, kedy je dokument dobre sformovaný (well-formed - niekedy prekladané tiež správne sformátovaný) a tiež kedy je dokument platný (valid). Následne vznikla špecifikácia XHTML 1.0. Špecifikácia XHTML 1.0 je v podstate prepracovaným HTML 4.01 tak, aby splňovalo obmedzenia kladené na jazyk XML. Takže XHTML je aplikáciou XML. Množina elementov a atribútov je plne zdedená z HTML 4.01. Okrem obmedzení, ktoré vznikli z dôvodu dodržovania prísnejšej syntaxe jazyka XML, ďalej definuje špecifikáciu niekoľkých doporučených postupov, ktoré majú zaistiť spätnú kompatibilitu XHTML dokumentov s HTML prehliadačmi.
Obrázok 1.1 Vzťah SGML, XML, HTML a XHTML
XML
Štruktúra dokumentu
XML je v skutočnosti metajazyk, čo znamená, že je to jazyk, ktorý sa používa na popis ďalších jazykov. Neexistuje preddefinovaný zoznam elementov. XML poskytuje úplnú slobodu pri vytváraní prvkov, ktorých mená majú pre danú aplikáciu zmysel.
Na tomto jednoduchom príklade si ukážeme čo vlastne XML je a ako vyzerá:

Ako ste si asi mohli všimnúť, je to krátka správa od Jany pre Tomáša. Toto je jedna z nesporných výhod XML, je veľmi dobre čitateľné a zrozumiteľné aj pre bežného užívateľa. Teraz si poďme popísať čo všetko v tomto príklade môžeme vidieť.
Prvý riadok v dokumente – XML deklarácia – definuje verziu XML a kódovanie znakov, ktoré si prajeme použiť. V tomto prípade sa jedná o špecifikáciu XML 1.0 a používaná znaková sada je ISO-8859-2 (Stredoeurópske jazyky).
Druhý riadok dokumentu predstavuje tzv. koreňový element dokumentu s názvom „sprava“. Koreňový element je hlavný element celého dokumentu, je vždy iba jeden a všetky elementy sú mu v hierarchii dokumentu podriadené. Podriadené elementy sa nazývajú potomkovia. V našom prípade sú potomkovia elementy s názvom: pre, od, zahlavie, telo. Na konci dokumentu je uzavierací tag koreňového elementu </sprava> ktorým sa končí každý XML dokument.
Syntaktické pravidlá XML
- Každý prvok XML dokumentu musí mať otvárací (<názov elementu>) aj uzavierací tag (</názov elementu>). Ak je daný element prázdny, môžeme použiť nasledujúcu skrátenú syntax: (<názov elementu/>). Ukončovací tag značí, že to, čo bude nasledovať v dokumente ďalej, už nepatrí danému elementu.
- XML rozlišuje veľké a malé písmená v názve tagu. Z tohto vyplýva, že začiatočný, aj ukončovací tag, musia byť rovnako napísané.
- Elementy musia byť v XML dokumente správne zahniezdené
Na rozdiel od jazyka HTML kde by bez problémov fungoval takýto zápis:
<b><i> Tento text je tučný a kurzívou</b></i>
V dokumentoch XML by táto syntax nebola správne a je potrebné ju pozmeniť nasledujúcim spôsobom:
<b><i> Tento text je tučný a kurzívou</i></b>
- Atribúty elementu musia byť uzavreté v úvodzovkách
Toto je element ktorý má nejaký atribút: <auto farba=”cierna”> , atribúty detailnejšie popisujú daný element. Musia byť uzavreté v jednoduchých (‘ ‘), alebo zložených
(“ “) úvodzovkách. Sú povolené 2 druhy úvodzoviek, lebo ak samotný atribút obsahuje jeden druh úvodzoviek, na jeho uzavretie sa použije ten druhý druh.
- Ukázali sme si ako sa zapisuje atribút elementu. Z tohto zápisu vidno že názov elementu nesmie obsahovať medzeru, pretože reťazec za medzerou by bol považovaný za atribút. Toto sa rieši nasledovne: <nazov_elementu>
- XML zachováva tzv. Biele znaky. Ak ste zvyknutý z jazyka HTML že viac medzier za sebou sa zmení na jednu, tak v XML sa zachovajú všetky znaky presne tak ako sú zapísané v dokumente.
- XML používa pre označenie konca riadka výhrade znak LF(line feed), pre toto označenie ešte existuje znak CR(carriage return). Ak by sa však takýto znak v dokumente objavil, automaticky sa prevedie na LF.
- Komentáre sa v XML zapisujú takto: <!-- Toto je komentár -->
- V XML existujú tzv. špeciálne znaky (escape characters), ktoré sa nesmú v názvoch a ani v obsahu elementov vyskytnúť. Miesto nich sa používajú tzv. HTML entity ako ukazuje nasledujúca tabuľka:
Tabuľka 1.1 Špeciálne znaky
- Ak z nejakého dôvodu potrebujeme použiť špeciálne znaky a nevyhovuje nám použitie ekvivalentných reťazcov, môžeme použiť CDATA sekciu. Sekcia CDATA začína <![CDATA[ a končí ]]>. Všetko vo vnútri je ignorované parserom, takže je možné bez obáv písať špeciálne znaky. CDATA sekcia sa využíva hlavne ak potrebujeme v XML dokumente uviesť kód napísaný v ľubovoľnom programovacom jazyku. V takomto prípade je použitie HTML entít namiesto špeciálnych znakov neprípustné. Je však z pochopiteľných dôvodov zakázaná kombinácia znakov ]]>.
Menné priestory
Vzhľadom k tomu, že XML umožňuje návrhárom zvoliť si svoje vlastné mená elementov, môžu si dvaja alebo viacerí návrhári pre niektoré elementy vybrať rovnaké meno. Menné priestory (Namespaces) prinášajú spôsob, ako od seba odlíšiť elementy, ktoré majú rovnaké lokálne meno, ale pochádzajú z rôznych „slovníkov“. Rozlíšenie elementov sa dosiahne asociáciou elementu s menným priestorom. Menný priestor má meno utvorené podľa špecifikácie URI. Toto URI slúži ako unikátny reťazec. Meno menného priestoru a lokálne meno elementu tvoria globálne unikátne meno, ktorému sa hovorí kvalifikované meno (qualified name).
Menný priestor sa deklaruje vo vnútri počiatočnej značky elementu. Táto deklarácia slúži k spojeniu mena menného priestoru s iným obvykle kratším reťazcom, ktorému sa hovorí prefix menného priestoru (namespace prefix). Syntax deklarácie menného priestoru je xmlns:prefix_menného_priestoru="URI_menného_priestoru". Je tiež možné deklarovať východzí menný priestor ktorý sa aplikuje na všetky elementy bez prefixu. Syntax deklarácie východzieho menného priestoru je xmlns="URI_menného_priestoru".
Element môže obsahovať maximálne jednu deklaráciu východzieho menného priestoru. Ostatných deklarácií menných priestorov môže element obsahovať ľubovoľné množstvo, ak má každá z nich iný prefix. Je možné priradiť rovnaké URI viacerým prefixom, no nie je to nijako užitočné.
Všetky deklarácie menných priestorov majú rozsah platnosti (scope) – tj. množinu elementov na ktoré sa vzťahujú. Do rozsahu platnosti deklarácie menného priestoru patrí element, v ktorom sa táto deklarácia nachádza, a všetci jeho potomkovia. Mapovanie prefixu môže byť v rozsahu jeho platnosti prekryté novou deklaráciou u potomka. Taktiež východzí menný priestor u potomka môže byť prekrytý jeho novou deklaráciou.
Elementom ktoré neležia mennom priestore sa hovorí nekvalifikované elementy (unqualified elements) menom menného priestoru nekvalifikovaného elementu je prázdny reťazec. Ak je element v rozsahu platnosti deklarácie východzieho menného priestoru a potrebujeme z neho urobiť nekvalifikovaný element, je možné deklaráciu východzieho menného priestoru prekryť novou deklaráciou v tomto elemente v tvare xmlns=‘ ‘.
Nasledujúci príklad ukazuje ako pomocou menných priestorov zamedziť kolízii v názvoch elementov:

V dokumente sa vyskytuje dvakrát element tabulka, no vždy je priradený inému mennému priestoru.