Interaktivní typová kontrola XML a ladění XML transformací

Rozměr: px
Začít zobrazení ze stránky:

Download "Interaktivní typová kontrola XML a ladění XML transformací"

Transkript

1 MASARYKOVA UNIVERZITA V BRNĚ FAKULTA INFORMATIKY Interaktivní typová kontrola XML a ladění XML transformací BAKALÁŘSKÁ PRÁCE Marek Posolda Brno, jaro 2005

2 Prohlášení Prohlašuji, že tato bakalářská práce je mým původním autorským dílem, které jsem vypracoval samostatně. Všechny zdroje, prameny a literaturu, které jsem při vypracování používal nebo z nich čerpal, v práci řádně cituji s uvedením úplného odkazu na příslušný zdroj. Vedoucí práce: RNDr. Petr Sojka 11

3 Shrnutí XML jako univerzální formát nám poskytuje ideální možnost pro konverzi dat do jiných formátů. V některých případech však bývá obtížné transformovat data z jiných formátů právě do XML. Rovněž je nutné zabezpečit, aby XML data byla ve správném formátu. Právě těmito problémy jsem se zabýval ve své bakalářské práci. m

4 Klíčová slova XML, XML Schema, Relax NG, XSLT, Word XML, OpenOffice XML, parser, XSLT procesor

5 Obsah 1 Úvod 1 2 Základy práce s XML schématy 2 3 Jazyky pro popis schématu XML dokumentu DTD XML Data XML Schema Relax NG Schematron 13 4 Stylové jazyky pro konverze XML CSS DSSSL XSL XSL FO XSLT ŠABLONY 16 5 Formáty XML XML formát programu Microsoft Word OpenOffice XML formát 22 6 Software pro práci s XML XSLT procesory Parsery Další programy 26 7 Transformace a typová kontrola bibliografických údajů Transformace z PDF do XML Transformace z Word XML do logického XML značkování Tvorba programu pro konečné zpracování bibliografických údajů Typová kontrola bibliografických údajů 30 8 Závěr 31 Bibliografie 32 A Seznam použitých odkazů 33 B Obsah přiloženého CD 34 v

6 Kapitola 1 Úvod V posledních letech došlo k velkému rozšíření značkovacích jazyků, především pak jazyka XML (extensible Markup Language). Tento jazyk nalezl použití v mnoha oblastech dnešních informačních technologií. Nejčastější příklady použití jsou konverze dat do jiných formátů a vyhledávání v dokumentech. Jazyk XML nám umožňuje používat v našich dokumentech libovolné značkování, které si sami vytvoříme a nijak nás v tomto neomezuje (jako např. jazyk HTML). Pro lepší komunikaci s ostatními uživateli, sdílení dokumentů mezi různými organizacemi či podporu práce s různými aplikacemi se však jeví jako nejvýš vhodné vytvořit určitá omezení a pravidla pro značkování určitého typu dokumentu. Definici těchto pravidel pro určitý dokument nám umožňuje DTD (Document Type Definition). Ukázalo se však, že DTD zdaleka nedostačuje všem potřebám pro tvorbu dokumentů. Neumožňovalo definovat datové typy jednotlivých entit a nepodporovalo jmenné prostory. Především z těchto důvodů se jevilo vhodné pouze k vytváření textově orientovaných dokumentů. Bylo proto potřeba vytvořit jazyk, který by stejně jako DTD umožňoval přehledně definovat strukturu dokumentu a zároveň i definovat datové typy pro jednotlivé elementy či atributy. Proto vznikly tzv XML schémata. Jazyků pro podporu XML schémat vzniklo hned několik a ve své práci jsem se zabýval těmi nejdůležitějšími z nich. Popsal jsem také některé stylové jazyky pro převod z XML do jiných formátů, neboť některé z nich jsem ve své práci použil. Zabýval jsem se i formáty XML dokumentů, jež je možno vygenerovat z programů Microsoft Word a OpenOffice Writer. V praktické části své práce jsem popsal použití XSLT šablon a XML schémat pro ověření správnosti formátu bibliografických údajů matematických časopisů. 1

7 Kapitola 2 Základy práce s XML schématy Značkovací jazyky, především pak jazyk XML, nalézají v dnešních aplikacích stále větší podporu. Jazyk XML můžeme použít například k napsání dokumentu, který pak můžeme jednoduše převést do mnoha dalších formátů. Můžeme z něj tedy vytvořit HTML, PDF, TpX či další formáty. Díky tomu se XML nabízí jako vhodný univerzální formát pro elektronickou výměnu informací. XML značkování nachází rovněž vhodné použití při vyhledávání slov v dokumentu či v programování. Univerzálnost XML spočívá v tom, že můžeme vytvořit dokument s libovolnými značkami, které si sami vymyslíme. Zároveň se však ukazuje, že příliš volnosti škodí, neboťpro lepší práci s dokumentem a pro převod do jiných formátů by měl XML dokument obsahovat pouze několik typů značek. Pokud například vytváříme firemní katalog výrobků, je velmi vhodné pevně definovat značky pro hlavičku katalogu i samotný seznam výrobků. U každého výrobku bychom pak měli používat stejné značky pro název výrobku, datum výroby, trvanlivost, cenu atd. Právě z tohoto důvodu přišly na řadu jazyky pro definici schématu XML dokumentu. Ke každému dokumentu můžeme s jejich pomocí definovat jeho přípustnou strukturu. V definici schématu katalogu tedy například použijeme element CENA pro cenu výrobku a když už jsme si jednou takto element definovali, nemůžeme už v dokumentu pro cenu výrobku použít např. element CENAVYROBKU. Velmi vhodné je používat jednotný formát pro určitý typ dokumentu nejen v rámci svých vlastních aplikací. Například pro katalogy cen mezi dvěma podobnými firmami je nevhodné, aby jedna z firem měla pro cenu definován element CENA a druhá firma element CENAVYROBKU. Z tohoto důvodu vznikla spousta definovaných schémat, které jsou používány mnoha firmami a organizacemi. Nejznámější z těchto schémat jsou WML (wapové stránky pro mobilní telefony), XHTML (nástupce jazyka HTML pro tvorbu webových stránek), DocBook (vytváření dokumentace) či MathML (matematické vzorce). Ověření správné struktury dokumentu se nazývá validace a používají se k ní tzv.parsery Parser je vlastně program, jehož prioritním účelem je samotná validace dokumentů. V dnešní době již existují programy, jež jsou používány jednak jako parsery pro validaci a zároveň také jako konvertory XML dokumentů do jiných formátů. Ve své práci se těmito programy rovněž budu zabývat. Některé jazyky pro popis schématu umožňují definovat formát jednotlivých elementů. Obsah elementu tedy musí mít přípustnou strukturu a nesmí se od ní v ničem odlišovat. Moderní jazyky pro tvorbu XML schémat umožňují definovat datový typ elementu, což je 2

8 2. ZÁKLADY PRÁCE S XML SCHÉMATY poměrně mocný způsob, jak kontrolovat správný obsah elementu či atributu. Schéma může sloužit i programátorům k vytvoření objektového modelu včetně kódu, který jej implementuje. Pomocí vygenerovaného kódu ze schématu můžeme v aplikaci manipulovat s dokumenty XML, které budou reprezentovány jako sada objektů v paměti. Konečně poslední účel XML schémat, který stojí za zmínku, je použití XML schémat k vytvoření dokumentace. Dnes již existují nástroje, které umožňují vytvořit z daného XML schématu sadu hypertextově provázaných stránek sloužících jako dokumentace. XML schema se neustále velmi rychle vyvíjí. Nyní považuji za nanejvýš vhodné nastínit základní historii XML schémat a seznámit čtenáře s nejdůležitějšími jazyky pro tvorbu XML schémat. 3

9 Kapitola 3 Jazyky pro popis schématu XML dokumentu 3.1 DTD Historicky první jazyk popisující schéma XML dokumentu je jazyk DTD (Document Type Definition). Tento jazyk pochází ještě z doby SGML (SGML je značkovací jazyk, jenž byl předchůdce XML a byl pomocí něho kromě samotného XML vytvořen například i jazyk HTML). Jazyk DTD patří ke standardům XML a je proto podporován všemi aplikacemi, které podporují XML. Toto je obrovská výhoda DTD oproti novějším jazykům XML schémat. Jinak ovšem DTD příliš mnoho výhod nenabízejí. Přesto jsou zatím nejrozšířenějším jazykem pro popis schématu XML dokumentu, a proto se hodí popsat jejich syntaxi. Nyní tedy krátký příklad toho, co nám XML umožňuje. Představme si krátký XML dokument pro popis firmy. Tento dokument by mohl vypadat např. takto <! FIRMA.XML > <?xml version="l.0" encoding="windows-1250"?> <!DOCTYPE FIRMA SYSTEM "firma.dtd"> <FIRMA> <NAZEV>Pekařství Novák a syn, s.r.o.</nazev> <ADRESA> <ULICE>Fajmonova 10</ULICE> <PSC>628 00</PSC> </ADRESA> <ZAMESTNANCI> <ZAMESTNANEC id="il"> <SEF/> <JMENO>Jan</JMENO> <PRIJMENI>Novák</PRIJMENI> <PLAT> </PLAT> <DATUMNAROZENI> </DATUMNAROZENI> <TELEFON> </TELEFON> </ZAMESTNANEC> <ZAMESTNANEC id="i2"> <PODRIZENY/> <JMENO>Daniel</JMENO> <PRIJMENI>Novák</PRIJMENI> <PLAT> </PLAT> 4

10 3.1. DTD <DATUMNAROZENI> K/DATUMNAROZENI> </ZAMESTNANEC> </ZAMESTNANCI> </FIRMA> Na první pohled vidíme, že dokument obsahuje informace o firmě. A nyní si například můžeme představit, že jsme z úřadu pro správu firem a musíme udělat podobný dokument o každé firmě ve městě. Na první pohled je zřejmé, že bude velmi vhodné, když údaje o jednotlivých firmách budou v jednotném formátu (například kvůli hromadnému zpracování dokumentů atd.). Chceme tedy nějakým způsobem zajistit, aby se element ADRESA skládal z elementů ULICE a PSC a ty už se skládali jen z textu. Podobně chceme v elementu ZAMESTNANCI povolit libovolný počet zaměstnanců (jednoho nebo více) a chceme aby každý zaměstnanec měl svoje jednoznačné číslo, představené atributem id. Podobně zde jsou ještě další podmínky. Způsob vyjádření formátu dokumentu a formátu jeho jednotlivých elementů nám nabízí právě DTD. První řádek našeho XML schématu obsahuje standardní deklarace o verzi, použitém kódování atd. Pro nás je již mnohem zajímavější druhý řádek <!DOCTYPE FIRMA SYSTEM "firma.dtd"> Na tomto řádku je informace o připojení DTD, jehož URL-adresa je FIRMA.DTD, s naším XML dokumentem, jenž má kořenový element FIRMA. Soubor FIRMA.DTD vypadá takto: <! FIRMA.DTD > ELEMENT FIRMA (NÁZEV,ADRESA,ZAMESTNANCI)> ELEMENT NÁZEV (#PCDATA)> ELEMENT ADRESA (ULICE,PSC)> ELEMENT ULICE (#PCDATA)> ELEMENT PSC (#PCDATA)> ELEMENT ZAMESTNANCI (ZAMESTNANEC+)> ELEMENT ZAMESTNANEC ((SEF PODŘÍZENY),JMÉNO,PRIJMENI,PLAT, DATUMNAROZENI,TELEFON?)> ELEMENT SEF EMPTY> ELEMENT PODŘÍZENY EMPTY> ELEMENT JMÉNO (#PCDATA)> ELEMENT PŘÍJMENÍ (#PCDATA)> ELEMENT PLAT (#PCDATA)> ELEMENT DATUMNAROZENI (#PCDATA)> ELEMENT TELEFON (#PCDATA)> ATTLIST ZAMESTNANEC id ID #REQUIRED> Vidíme, že DTD je poměrně krátké a přehledné, a přesto nám poskytuje mnoho informací o formátu dokumentu FIRMA.XML. Nyní tedy krátké vysvětlení. 5

11 3.1. DTD Kořenový element FIRMA se podle DTD musí skládat z elementů NÁZEV, ADRESA, ZA MESTNANCI. Pořadí elementů není zaměnitelné a každý se v elementu FIRMA vyskytuje právě jednou. U elementu NÁZEV vidíme deklaraci (#PCDATA) což znamená, že v tomto elementu se vyskytuje již jen libovolný text, ale nemohou zde být žádné další elementy (element může být klidně i prázdný). Další zajímavá deklarace je u elementu ZAMESTNANCI. Text (ZAMESTNANEC+) nám sděluje, že v elementu ZAMESTNANCI je libovolný počet elementů ZAMESTNANEC avšak nejméně jeden. Kdyby bylo v deklaraci (ZAMESTNANEC*) znamenalo by to úplně to stejné jako (ZAMESTNANEC+), ale byl by povolen i nulový počet elementů ZAMESTNANEC (tedy prázdný element ZAMESTNANCI). Na dalším řádku nám deklarace TELEFON? sděluje, že počet elementů TELEFON je 0 nebo 1 tzn.element TELEFON je jakoby nepovinný, ale může se vyskytnout maximálně jednou. Deklarace (SEF PODŘÍZENY} sděluje, že v elementu ZAMESTNANEC je přítomen právě jeden z elementů SEF či PODŘÍZENY (jedná se tedy o informaci o statutu zaměstnance). Na dalších řádcích vidíme u elementů SEF a PODŘÍZENY deklaraci EMPTY, jež sděluje, že tyto elementy musí být prázdné. Poslední věcí, která stojí u našeho DTD za zmínku, je řádek s deklarací <!ATTLIST ZAMESTNANEC>, za kterým následuje seznam atributů pro element ZAMESTNANEC. V našem případě je to pouze atribut id, jenž je typu ID (typ ID zaručuje jedinečnost dané hodnoty. Nesmí ovšem začínat číslicí, proto hodnoty il,i2 u našich zaměstnanců.) Další typy u atributů jsou CD ATA (libovolná hodnota), IDREF (atribut musí obsahovat hodnoty nějakého dříve uvedeného atributu ID) a výčtový typ. Např.atribut POHLAVÍ (muz,zena) #IMPLIED "muz" má povoleny jen hodnoty muz,zena. Na závěr ještě poslední nepovinný parametr u atributu může mít hodnotu #REQUIRED pokud je atribut vždy povinný nebo #IMPLIED pokud povinný není. Pokud u našeho příkladu atribut POHLAVÍ vynecháme, automaticky se doplní pohlaví muz. Na první pohled tedy vidíme, že DTD je velmi užitečný nástroj pro popis schématu dokumentu. Ukázalo se však, že DTD zdaleka nedostačuje pro popis schématu složitějších dokumentů. Prvním nedostatkem DTD je nemožnost určení datového typu jednotlivých elementů a atributů. V dřívějších dobách sloužila technologie XML především pro popis a tvorbu textově orientovaných dokumentů jako například knihy, dokumentace, články, webové stránky atd. Později se však ukázalo, že u některých elementů v dokumentu je nezbytné určit jejich datový typ. Druhá nevýhoda DTD je nulová podpora jmenných prostorů. U dokumentu definovaného pomocí DTD nemůžeme kombinovat více různých jmenných prostorů, což je v dnešní době rovněž velká ztráta. Třetí nevýhoda je ta, že samotné DTD není ve formátu XML. To se může jevit spíše jako výhoda a skutečně to z hlediska přehlednosti výhoda je, neboťzápis pomocí DTD je většinou velice stručný oproti novějším jazykům, které zapisují schéma dokumentu v XML formátu. Na schéma zapsané v DTD však nemůžeme použít mnohé technologie vážící se k XML. 6

12 3.2. XML DATA Nemůžeme ho například nijak zpracovávat nebo k němu generovat dokumentaci pomocí XSLT šablon atd. Poslední nevýhoda je poměrně malá podpora pro složitější strukturu dokumentu. Pokud by nám například u našeho elementu ZAMESTNANEC bylo lhostejné, zda deklarace začne elementem JMÉNO a po něm PŘÍJMENÍ nebo elementem PŘÍJMENÍ a po něm JMÉNO (nezáleželo by tedy na pořadí elementů JMENO,PRIJMENI) nemohli bychom tuto skutečnost pomocí DTD nijak vyjádřit. Nemůžeme také například deklarovat dva stejné elementy JMÉNO v různých významech. Proto musíme u naší firmy použít pro její jméno element NÁZEV a nikoliv JMÉNO neboť element JMÉNO již v dokumentu je pro určení křestního jména zaměstnance. Ze zmíněných důvodů začaly vznikat jazyky, které by umožnily lépe definovat strukturu dokumentu než DTD. Žádný z nich však dlouhou dobu nebyl natolik dokonalý, aby jej konzorcium W3C (významná organizace ve světě XML, viz. [AI]) přijalo jako standard. 3.2 XML Data Poměrně významnou roli hrál jazyk XML Data [A2] vyvinutý v roce Několik firem jej poslalo do konzorcia W3C jako návrh na standardní jazyk pro definování XML schémat. Návrh tohoto jazyka byl však příliš složitý k ověření použitelnosti. Větší roli proto hrála jeho zjednodušená verze XDR (XML Data Reduced). Ani tento jazyk však nebyl přijat jako všeobecně uznávaný standard, i když našel v mnoha aplikacích použití (ve své době jej používal dokonce i Microsoft). 3.3 XML Schema Prvním jazykem přijatým jako standard se stal v květnu 2001 jazyk XML Schema [A3]. Tento jazyk se velmi často označuje také zkratkou WXS (W3C XML Schema) a vyvinul se z výše zmíněných jazyků XD a XDR. XML Schema eliminuje všechny výše zmíněné nevýhody DTD (umožňuje definovat datové typy elementů a atributů a jmenné prostory. Samotná definice v tomto jazyce je XML dokumentem.) Jedinou nevýhodou tohoto jazyka je na první pohled složitější definice schématu. Jako nepříjemné se může jevit i to, že jej nepodporují všechny parsery a aplikace. Tato nevýhoda však zřejmě nebude trvat dlouho. Nové verze parserů by již měly XML Schema podporovat. Nyní tedy ukázka schématu v jazyce XML Schema, jež validuje náš dokument FIRMA.XML mnohem přesněji, než výše ukázané DTD. <! FIRMA.XSD > <?xml version="l.0" encoding="windows-1250"?> <xs:schema xmlns:xs=" 0 01/XMLSchema"> <xs:simpletype name="psctype"> <xs:restriction base="xs:string"> 7

13 3.3. XML SCHEMA <xs:pattern value="\d{3} \d{2}"/> </xs:restriction> </xs:simpletype> <xs:simpletype name="plattype"> <xs:restriction base="xs:decimal"> <xs:minexclusive value="0"/> </xs:restriction> </xs:simpletype> <xs:element name="firma"> <xs:complextype> <xs:sequence> <xs:element name="nazev" type="xs:string"/> <xs:element name="adresa"> <xs:complextype> <xs:sequence> <xs:element name="ulice" type="xs:string"/> <xs:element name="psc" type="psctype"/> </xs:sequence> </xs:complextype> </xs:element> <xs:element name="zamestnanci"> <xs:complextype> <xs:sequence> <xs:element name="zamestnanec" maxoccurs="unbounded"> <xs:complextype> <xs:sequence> <xs:choice> <xs:element name="sef"> <xs : complextypexxs : sequencex/xs : sequencex/xs : complextype> </xs:element> <xs:element name="podrizeny"> <xs : complextypexxs : sequencex/xs : sequencex/xs : complextype> </xs:element> </xs:choice> <xs:choice> <xs:sequence> <xs:element name="jmeno" type="xs:string"/> <xs:element name="prijmeni" type="xs:string"/> </xs:sequence> <xs:sequence> <xs:element name="prijmeni" type="xs:string"/> <xs:element name="jmeno" type="xs:string"/> </xs:sequence> </xs:choice> <xs:element name="plat" type="plattype"/> <xs:element name="datumnarozeni" type="xs:date"/> 8

14 <xs:element name="telefon </xs:sequence> <xs:attribute name="id" </xs:complextype> </xs:element> </xs:sequence> </xs:complextype> </xs:element> </xs:sequence> </xs:complextype> </xs:element> </xs:schema> type="xs:int" type="xs:id" 3.3. XML SCHEMA minoccurs="0"/> use="required"/> Na první pohled vidíme, že samotné schéma je dlouhý a nepříliš přehledný dokument. Jeho délka je ovšem pochopitelná, neboťumožňuje validovat mnohem přesněji a určuje pro data v naší firmě nové datové typy. Na druhém řádku dokumentu je deklarace jmenného prostoru schématu, který musíme používat pro všechny elementy s výjimkou vlastních definovaných typů. Neustálé používání jmenného prostoru je jednou z věcí, jež činí XML Schema dokument méně přehledný než DTD nebo třeba Relax NG. V dalším odstavci schématu vidíme definici vlastního datového typu psctype, který později použijeme pro PSC. Definice vlastních datových typů je velkou zbraní XML Schema. Tento typ je definován restrikcí (omezením, element xs:restriction) předdefinovaného datového typu xs:string (xs:string může obsahovat libovolný řetězec). Restrikce je definována vzorem (xs:patern) pomocí regulárních výrazů jazyka Perl. Tyto regulární výrazy jsou vskutku velmi mocný prostředek k vyjádření omezení řetězce. V našem případě výraz \d{3} \d{2} znamená 3 číslice+ mezera + 2 číslice. Jakýkoliv jiný výraz nebude jako psctype uznán. Další definice plattype je restrikce typu xs:decimal (reálná čísla), která určuje, že číslo musí být větší než 0. (Podobně existují i omezení jako xs:mininclusive,xs:maxexclusive atd.) Další datové typy jež můžeme použít jsou například xs:int, xs:integer(celá čísla), xs:positiveinteger(kladná celá čísla), xs:nonnegativeinteger (nezáporná celá čísla) a další. Důležitý je typ xs:date pro datum (musí být ve formátu rrrr-mm-dd), xs:time pro čas či xs:datetime pro datum i čas. Datových typů pro datum a čas je však mnohem více. Z dalších datových typů stojí za zmínku boolean (logická hodnota), token (řetězec bez bílých míst na okrajích), anyuri (odkaz), anytype(jakýkoliv typ), či ID,IDREF(podobně jako DTD). Vidíme, že každý element v XML dokumentuje definován pomocí elementu xs:element. Pokud tento element není jednoduchý, ale obsahuje další podelementy a atributy, musí mít podelement xs:complextype (složený typ). V xs:complextype pak můžeme libovolně používat podelementy xs:sequence,xs:choice a xs:all. Element xs:sequence uvnitř sebe obsahuje posloupnost dalších podelementů, které jsou přítomny v daném pořadí, zatímco xs:choice obsahuje seznam elementů z nichž si vybereme právě jeden. Elementy xs:choice a xs: sequence můžeme mezi sebou libovolně kombinovat a vytvářet tak poměrně složité struktury. Využít můžeme toho, že narozdíl od DTD zde 9

15 3.4. RELAX NG element s určitým jménem můžeme použít víckrát. Tak je naše schéma definované tak, že ve výsledném XML dokumentu můžeme zaměnit pořadí podelementů JMÉNO a PŘÍJMENÍ u elementu ZAMESTNANEC. Použití xs:all uvnitř xs:complextype říká, že elementy v xs:all můžeme ve výsledném XML dokumentu libovolně přeházet, avšak xs:all nemůžeme kombinovat s xs:choice ani xs:sequence. Definice prázdného elementu je proti DTD poněkud složitější a je definována jako prázdná sekvence (viz.elementy SEF,PODRIZENY). Atributy typu xs:element mohou být kromě name a type také minoccurs a maxoccurs udávající v čísle minimální a maximální počet výskytů daného elementu v dokumentu. Toto je další velké vylepšení oproti DTD, neboťdtd nám umožňovalo pomocí znaků *, +,? pouze nepřesně určovat počty jednotlivých elementů. Pokud chceme, aby byl počet daného elementu libovolný použijeme maxoccurs="unbounded" místo přesného čísla. Pokud atributy minoccurs a maxoccurs nepoužijeme, je element povinný a musí se vyskytovat právě jednou. XML Schema nám umožňuje ještě další věci jako používání jmenných prostoru v dokumentu, nástroje pro automatickou tvorbu dokumentace, možnost vkládání výrazů jazyka XPath (například pro definici jedinečných hodnot) a další. Více informací naleznete např.na [A6] nebo v češtině například na [A7]. 3.4 Relax NG Dalším jazykem XML schémat, který stojí za zmínku, je jazyk RelaxNG [A4]. Tento jazyk vznikl spojením jazyků Relax (autor Murata Makoto) a Trex 0ames Clark). Cílem bylo vytvořit jazyk, jenž by byl jednodušší než XML Schema, ale měl by stejné možnosti. Tento jazyk byl standardizován na půdě sdružení OASIS a je rovněž hojně rozšířen a oblíben pro svou jednoduchost. Počet jeho implementací se v současnosti rozšiřuje. Nyní tedy ukázka Relax NG schématu pro naši firmu z dokumentu FIRMA.XML <! FIRMA.RNG > <element xmlns=" name="firma" datatypelibrary=" 0 01/XMLSchema-datatypes"> <element name="nazev"> <text/> </element> <element name="adresa"> <element name="ulice"> <text/> </element> <element name="psc"> <data type="string"> <param name="pattern">\d{3} \d{2}</param> </data> 10

16 3.4. RELAX NG </element> </element> <element name="zamestnanci"> <oneormore> <element name="zamestnanec"> <choice> <element name="sef"> <empty/> </element> <element name="podrizeny"> <empty/> </element> </choice> <attribute name="id"> <data type="id"/> </attribute> <interleave> <element name="jmeno"> <text/> </element> <element name="prijmeni"> <text/> </element> </interleave> <element name="plat"> <data type="decimal"> <param name="minexclusive">0</param> </data> </element> <element name="datumnarozeni"> <data type="date"/> </element> <optional> <element name="telefon"> <data type="positiveinteger"/> </element> </optional> </element> </oneormore> </element> </element> Schéma je na první pohled stejně složité jako XML Schema. Hlavní výhodou RelaxNG je však množnost vytvářet schéma v kompaktní syntaxi, jež sice není XML dokumentem, ale je podobná DTD a nabízí stejné možnosti jako XML Schema. Dnes již existují nástroje pro převod dokumentu z kompaktní syntaxe do XML syntaxe a naopak. Pravděpodobně nejznámější z nich je Trang dostupný zdarma na [A14]. 11

17 3.4. RELAX NG Jazyk Relax NG sám o sobě nepodporuje datové typy, ale můžeme jej o podporu datových typů rozšířit. Na druhém řádku souboru FIRMA.RNG vidíme deklaraci, která k tomuto souboru připojuje knihovnu datových typů jazyka XML Schema. Vidíme, že například deklarace PSC je stručnější než u jazyka XML Schema, neboť Relax NG umožňuje vkládání parametrů přímo v deklaraci datového typu. Další viditelnou výhodou je element interleave, který umožňuje použít v něm deklarované elementy v libovolném pořadí. To nám umožňuje mnohem větší pohodlí při deklaraci elementů, než je tomu u XML Schémat. Velká výhoda je, že nemusíme používat jmenný prostor u všech deklarací. Díky tomu je Relax NG schéma o něco přehlednější než XML Schema. Narozdíl od XML schémat však u Relax NG nemáme možnost přesně určit počet výskytů daného elementu. Pokud bychom například chtěli, aby se element TELEFON vyskytoval v dokumentu dvakrát, musíme tuto skutečnost vyřešit tak, že ho dvakrát deklarujeme. Schéma v kompaktní syntaxi Relax NG, jež odpovídá našemu složitějšímu, vypadá takto <! FIRMA.RNC > element FIRMA { element NÁZEV { text } element ADRESA { element ULICE { text } element PSC { xsd:decimal { pattern="\d{3} \d{2}"} } } element ZAMESTNANCI { ( element ZAMESTNANEC { ( element SEF { empty } element PODŘÍZENY { empty } )(element JMÉNO { text } & element PŘÍJMENÍ { text } ),attribute id { xsd:id },element PLAT { xsd:decimal { minexclusive="0" } },element DATUMNAROZENI { xsd:date },element TELEFON { xsd:positiveinteger }? } + ) } } Toto schéma připomíná spíše DTD, avšak definuje obsah dokumentu mnohem přesněji. Z kompaktní syntaxe lze schéma samozřejmě převést zpět do XML syntaxe například pomocí výše zmíněného programu Trang [A14]. Více o převáděcím programu Trang se dočtete v kapitole 6. 12

18 3.5. SCHEMATRON 3.5 Schematron Výše zmíněné jazyky pro popis schématu umožňovaly postihnout schéma systematicky. Někdy však může být výhodné použít poněkud jiný přístup k návrhu schématu dookumentu. Proto bych chtěl připomenout například jazyk Schematron, který umožňuje definovat schéma jako sadu podmínek nutných k přijetí a má tedy poněkud odlišný přístup k návrhu schématu než ostatní jazyky. Pomocí jazyka Schematron můžeme definovat například podmínku, že některý element obsahuje číslo větší než číslo uvnitř jiného elementu. To předchozí jazyky vůbec neumožňovaly. Schematron však bývá používán spíš jen jako doplněk ke klasickým schématům. XML Schema i Relax NG umožňují do svých schémat vložit kód ve Schematronu. Existence několika konkurenčních jazyků ukazuje, že každý se hodina něco trochu jiného. V současnosti vzniká projekt DSDL (Document Schema Definition Languages). Hlavním úkolem tohoto projektu je umožnit definici dokumentu, který by byl validní proti několika schématům v různých jazycích. Při rozhodování který jazyk použít je stále pro většinu vývojářů výhodnější použít jazyk XML Schema, neboť jej podporuje více aplikací než Relax NG. Pokud však váš oblíbený parser či jiný program podporuje Relax NG, pak není důvod jej nepoužít. 13

19 Kapitola 4 Stylové jazyky pro konverze XML Vysvětlili jsme si pojem XML a možnost definice struktury dokumentu pomocí XML schématu. V této kapitole se budeme zabývat konverzí (převodem) XML dokumentu do jiných formátů. Možnost převodu XML dokumentu do jiných formátů jako je např. HTML, HTML Help, RTF, PDF, JavaHelp a další je největší výhodou XML. Jeden XML dokument si tedy můžeme zobrazit v HTML prohlížeči a stejně tak z něj vzápětí vygenerovat černobílý PDF dokument s úplně jiným formátováním písma. Toto samozřejmě není úplně jednoduchý proces. Musíme mít k dispozici technologii, která jednotlivé elementy z XML dokumentu zformátuje podle určitých pravidel. Například podelement NÁZEV elementu FIRMA bude zobrazen v HTML jako velký červený nadpis, zatímco v PDF například jako velký nadpis kurzívou. První podmínka pro tuto konverzi je určitý pevně definovaný formát XML dokumentu, ze kterého budeme konverzi provádět. Právě pro tyto účely můžeme použít XML Schémata. Další podmínka je vytvoření určitých pravidel, které z XML souboru vytvoří PDF soubor, HTML, či jiný formát. Tato pravidla jsou napsaná ve zvláštních souborech, kterým se říká šablony. Kromě převodu do výše zmíněných formátů nám šablony umožňují i konverzi do samotného XML formátu, tzn.dokument XML je zkonvertován na jiný dokument XML s pozměněnou strukturou (např. element PSC je přejmenován na PO- STOVNI_SMEROVACI_CISLO). Pro psaní převodních pravidel používáme stylové jazyky. Mezi nejznámější z nich patří XSL, CSS, DSSSL a FOSI. 4.1 CSS Prvním ze stylových jazyků je CSS, jenž je známý jako jazyk kaskádových stylů. Tento jazyk je hojně rozšířen především v oblasti tvorby HTML stránek. Pomocí CSS můžeme při psaní HTML dokumentu upravovat vzhled jednotlivých tagů v daleko větší míře než nám umožňuje pouze jazyk HTML. A stejně tak je v dnešní době možné definovat pomocí CSS i vzhled jednotlivých XML tagů. CSS tedy není jazyk, který by XML dokument převáděl do jiných formátů. Umožňuje však zobrazit XML dokument jako HTML stránku v prohlížečích jako je Internet Explorer. První krok pro použití CSS na XML dokument je připojení určitého stylu k XML dokumentu. Můžeme si to ukázat na našem XML dokumentu FIRMA.XML. Na jeho druhý řádek 14

20 4.2. DSSSL napíšeme <?xml-stylesheet href="mujstyl.ess" type="text/css"?> čímž k němu připojíme CSS styl. Poté vytvoříme soubor FIRMACSS.CSS, který může vypadat takto : <!-FIRMACSS.CSS-> NÁZEV { font-size:20pt; text-align:center; color:red; display:block; } ULICE,PSC { font-size:10pt; text-align:center; color:blue; display:block; } ZAMESTNANCI { display:table; text-align:center; } ZAMESTNANEC { background-color:gray; display:table-row; text-align:center;} JMENO,PRIJMENI,PLAT,DATUMNAROZENI,TELEFON { display:table-cell; color:black; text-align:center; } Pro každý element jsou definovány určité vlastnosti, podle kterých bude zobrazen v prohlížeči. Výsledek však nebude vypadat nijak oslnivě, neboťpomocí CSS lze vytvářet akorát poměrně jednoduché formátování. 4.2 DSSSL Dalším stylovým jazykem je DSSSL. Tento jazyk je mnohem vhodnější než CSS neboťumožňuje převádět XML dokument do jiných formátů a nikoliv pouze vytvořit způsob jeho zobrazení v prohlížeči. Autorem DSSSL je Norman Walsh. Tento jazyk byl původně vytvořen především pro převod SGML dokumentů. Nakonec však došlo i na jeho rozšíření pro XML, avšak není používán tak často jako například jazyk XSLT. DSSSL umožňuje konvertovat XML dokument do HTML, ale především do RTF což je jeho největší výhoda. Formát RTF programu Microsoft Word lze pak například pomocí programu Adobe acrobat distiller převést i do PDF. K používání DSSSL stylů potřebujeme ještě procesor, který umožní jejich použití na převod do jiných formátů. Nejznámější z procesorů pro převod DSSSL stylů je Jade, jenž je dostupný na Internetu [A15]. 15

21 4.3. XSL Na závěr se ještě hodí podotknout, že DSSSL styly nejsou tak populární jako například XSLT, ale práce s nimi je dost podobná. 4.3 XSL XSL vznikl původně jako jazyk podobný CSS. Umožňoval definovat vzhled jednotlivých XML elementů v prohlížečích. Postupně se však ukázalo, že větší uplatnění XSL styly najdou při převodu XML formátu do jiných formátů. XSL tedy vlastně slouží ke dvěma různým věcem. První způsob využití, jež umožňuje definovat formát jednotlivých XML elementů v prohlížečích, nám nabízejí tzv XSL FO (XSL formátovací objekty) XSLFO Kromě věcí, které dokáží CSS, nám XSL FO umožňují definovat i pár věcí navíc. Pomocí XSL FO můžeme definovat přesný vzhled stránky pomocí vlastností jako je větší počet sloupců, hlavičky, patičky apod. Přesto XSL FO nejsou zdaleka tak rozšířené jako jejich bratříček XSLT. XSLT je druhý způsob využití XSL, který nám umožňuje převod XML dokumentů do jiných formátů XSLT ŠABLONY XSLT jazyk byl přijat konzorciem W3C jako standard už v roce To je nejspíš hlavní důvod jeho většího rozšíření ve srovnání s DSSSL. K dispozici je spousta procesorů, které nám umožňují transformovat XML dokument pomocí XSLT šablon do jiných formátů. Většina procesorů je naprogramovaná v Jávě, některé i v C++. Každý procesor má většinou oproti ostatním nějaké výhody či nevýhody. Podrobnější popis různých XSLT procesorů naleznete v kapitole 6. Populární XSLT procesor Saxon můžeme spustit z příkazové řádky příkazem saxon -o FIRMA.HTML FIRMA.XML FIRMA.XSL Tímto příkazem vygenerujeme z šablony FIRMA.XSL a vstupního souboru FIRMA.XML výstupní soubor FIRMA.HTML. Samozřejmě je nutné, aby vstupní soubory FIRMA.XSL a FIRMA.XML byly ve správném formátu bez syntaktických chyb. Jinak se HTML soubor nevygeneruje a vypíše se chybové hlášení. XSLT šablony nám kromě HTML formátu umožňují generovat i dokument v obecném textovém formátu. To můžeme využít dokonce například k tvorbě zdrojového kódu programu z XML souboru nebo častěji k tvorbě textového souboru s SQL dotazy pro správu databází. V poslední řadě nám XSLT šablony umožňují definovat z XML dokumentu jiný XML dokument. Právě tato varianta nám otvírá největší možnosti, i když to tak na první pohled nevypadá. Existují totiž programy, které z XML dokumentu o určitém přesně definovaném 16

22 4.3. XSL formátu vytvoří jiný typ dokumentu. Programů pro převod z XML do jiných formátů je skutečně bezpočet. Například můžeme z našeho dokumentu FIRMA.XML vytvořit dokument FIRMA2.XML, který bude XML dokumentem ve formátu XSL FO. Z tohoto XML dokumentu FIRMA2.XML pak můžeme pomocí FO procesorů jako FOP, XEP či PassiveTech vytvořit PDF soubor. Z výše zmíněných FO procesorů je zřejmě nejlepší FOP, neboť tento procesor je Open-source. Podobně existují i programy pro převod z XML do jiných formátů. Tak můžeme XML dokument převádět do formátů jako například WML, XHTML Basic, JavaHelp atd. Nyní už tedy jen zbývá vysvětlit, jak tyto XSLT šablony pro převod z XML dokumentu do jiných formátů mají vypadat. K tomu bude pravděpodobně nejvhodnější použít příklad. Následující ukázková XSLT šablona slouží k transformaci našeho dokumentu FIRMA.XML do HTML. <?xml version="l.0" encoding="utf-8"?> <xsl:stylesheet version="l.0" xmlns:xsl= " <xsl:output method="html" encoding="windows-1250"/> <xsl:template match="/"> <html> <head> <title> <xsl:value-of select="/firma/nazev"/> </title> </head> <body> <xsl:apply-templates/> </body> </html> </xsl:template> <xsl:template match="//nazev"> <center><hl> <xsl:value-of select="."/> </Hlx/center> </xsl:template> <xsl:template match="//adresa"> <xsl:apply-templates/> <HR/> </xsl:template> <xsl:template match="//ulice //PSC"> <center> <H5> 17

23 4.3. XSL <xsl:apply-templates/> <xsl:text> </xsl:text> </H5> </center> </xsl:tempiate> <xsl:template match="zamestnanci"> <table width="100%"> <tr> <xsl:for-each select="zamestnanec"> <td><table> <xsl:for-each select="jmeno PRIJMENI PLAT TELEFON"> <trxtd><xsl :value-of select="name (.) "/></td> <td><xsl: value-of select=". "/></tdx/tr> </xsl:for-each> <xsl:for-each select="datumnarozeni"> <tr><td>datum NAROZENK/td> <td> <xsl:value-of select="concat(substring(.,9,2), '.',substring(.,6,2),'.',substring(.,1,4))"/> </td> </tr> </xsl:for-each> <xsl:for-each <tr><td>ico</td> <td><xsl: value-of select=". "/></tdx/tr> </xsl:for-each> </table></td> </xsl:for-each> </tr> </table> </xsl:tempiate> </xsl:stylesheet> První zajímavý element v naší šabloně je xsl: stylesheet. Tento element je kořenový element celé šablony. Kromě atributu version obsahuje atribut s deklarací jmenného prostoru xsl. V URL nesmíme udělat překlep, protože jinak bude XSLT šablona nepoužitelná. Další důležitý element xsl: output nás informuje o formátu výstupního dokumentu (v našem případě HTML) a o jeho kódování (windows-1250). Dále už následuje kolekce elementů xsktemplate. Každý z těchto elementů nás informuje o zpracování určitého XML elementu ze vstupního souboru. Atribut match u našeho elementu xsktemplate obsahuje tzv. XPath výraz, který nás informuje o elementech vstupního dokumentu, které budeme zpracovávat. XPath je jazyk, který slouží k adresaci elementů vstupního dokumentu a k výpočtu 18

24 4.3. XSL různých výrazů ze vstupního XML dokumentu. V našem příkladě je adresace elementů v atributu match u xsktemplate poměrně jednoduchá. Nyní tedy vysvětlení jednotlivých XPath výrazů použitých v příkladě / Kořenový element celého dokumentu (v našem případě FIRMA) /FIRMA/NAZEV Všechny podelementy NÁZEV kořenového elementu FIRMA //NÁZEV Všechny elementy NÁZEV v celém dokumentu //ADRESA //PSC Všechny elementy ADRESA a elementy PSC v dokumentu ZAMESTNANCI Všechny el. ZAMESTNANCI, jenž jsou děti aktuálního elementu Hodnota aktuálního (právě zpracovávaného) elementu name(.) Jméno aktuálního Hodnota atributu id, jenž je atributem aktuálního elementu concat(substring...) Řetězcový výraz. Zobrazí datum narození v přehledném formátu XPath je poměrně složitý jazyk a k jeho pochopení doporučuji navštívit [A7] či [A8]. První element xsktemplate nám vytváří kostru HTML dokumentu. Elementy bez prefixu xsl, které sem vkládáme, jsou vlastně HTML tágy, které budou vloženy do výstupního HTML dokumentu. Elementy s prefixem xsl jsou pak zpracovány XSLT procesorem. Jako hodnota TITLE v hlavičce HTML dokumentu je použita hodnota elementu NÁZEV Hodnotu určitého elementu či XPath výrazu vkládá element xsl:value-of a tato hodnota odpovídá atributu select. V tomto atributu je rovněž použit XPath výraz. Element xskvalueof by měl být vždy prázdný. Element xskapply-templates označuje zpracování všech podelementů zpracovávaného elementu. Pokud u těchto podelementů není definováno jejich zpracování pomocí elementu xsktemplate, pak se zobrazí hodnota těchto podelementů. Element xskapply-templates by také měl být vždy prázdný. Element xsl:for-each zpracovává všechny elementy, které odpovídají zadanému XPath výrazu. Element xsktext pak umožňuje vložit do elementů text či textové entity. XSLT šablony toho umožňují mnohem více. Podrobnější informace v češtině naleznete na [A7] a na [A8] pak naleznete spoustu příkladů na XSLT a XPath. 19

25 Kapitola 5 Formáty XML 5.1 XML formát programu Microsoft Word Program Microsoft Word v novějších verzích (od MS Word 2000) umožňuje uložit dokument ve formátu XML. Výsledný XML dokument v sobě obsahuje informace o podrobném stavu MS Word dokumentu. V tomto XML dokumentu jsou informace o formátování jednotlivých stránek, odstavců, řezech písma a všech dalších věcech, které se tohoto týkají. Z hlediska pozdějšího zpracování takto vytvořeného XML dokumentu je velmi vhodné znát strukturu a formát XML dokumentu, který je programem MS Word vytvořen. Ve své práci jsem se zabýval formátem z MS Word Kořenovým elementem celého XML dokumentu je element w:worddocument. Tento element obsahuje deklarace jmenných prostorů. Nejdůležitější z nich jsou prefixy w a wx. Informace o struktuře XML dokumentu můžeme vidět na následujícím obrázku Obrázek 5.1: Kostra MS Word XML formátu Obrázek obsahuje nejdůležitější a základní informace o formátu XML dokumentu. Obsa- 20

26 5.1. XML FORMÁT PROGRAMU MICROSOFT WORD huje však všechny elementy, které jsou nutné ke znalosti struktury dokumentu a následnému formátování tohoto XML dokumentu do jiného dokumentu. Elementy s hvězdičkou se mohou vyskytovat víckrát než jednou. První dva potomci kořenového elementu (elementy w:docpr a w:lists) nejsou příliš významné pro pozdější formátování dokumentu. Většinou jsou poměrně krátké a obsahují hlavičku dokumentu. Element w:body je však mnohem významnější, neboť v sobě obsahuje tělo celého dokumentu. Element wx:sect obsahuje jednu stránku wordovského dokumentu. Tento element se skládá z několika odstavců, přičemž jeden odstavec je představován elementem w:p. První element w:p každé stránky obsahuje informace o hlavičce stránky. Pro pozdější zpracování stránky se tento element většinou ignoruje. Jinak by se totiž mohlo stát, že bychom v pozdějším zformátovaném dokumentu měli navíc některé informace, které tvořily hlavičku stránky a nemají tedy v dokumentu co dělat. Podobným způsobem by se měl ignorovat i poslední element w:p každé stránky, neboť obsahuje pouze informace o přechodu na další stránku. Element w:ppr, jenž je vždy prvním podelementem z w:p, obsahuje informace o formátování odstavce. Pro ilustraci zde ukážu, jak element w:ppr vypadá <w:ppr> <w:jc w:val="left" /> <w:ind w:left="240" w:right="0" w:first-line="0" /> <w:spacing w:before="230" w:after="0" /> <w:tabs /> <w:shd w:val="clear" w:color="auto" w:fill="ffffff" /> </w:ppr> Vidíme tedy, že w:ppr obsahuje informace o zarovnání, barvě a podobných věcech. Jako nejdůležitější podelement bych vyzdvihl především w:spacing, jehož atributy určují vynechané místo před a za daným odstavcem. Element w:r pak v sobě obsahuje informace o jednom určitém řezu písma. Typicky se element w:r skládá z dvou podelementů. První podelement w:rpr obsahuje informace o řezu písma a druhý podelement w:t obsahuje samotný text tohoto řezu. Pro ilustraci ještě příklad elementu w:rpr <w:rpr> <w:rfonts w:ascii="arial" w:h-ansi="arial" w:cs="arial" /> <wx:font wx:val="arial" /> <w:b w:val="off" /> <w:i w:val="on" /> <w:smallcaps w:val="off" /> <w:strike w:val="off" /> <w:color w:val="000000" /> <w:sz w:val="16" /> <w:spacing w:val="l" /> <w:lang w:val="0405" w:fareast="0405" /> </w:rpr> 21

27 Vysvětlení jednotlivých podelementů w:rfonts wx:font w:b w:i w:smallcaps w:spacing w:color w:sz w:lang 5.2. OPENOFFICE XML FORMÁT Informace o fontu daného řezu písma Podobné jako w:rfonts Atribut má hodnotu on pro tučné písmo Atribut má hodnotu on pro kurzívu Atribut má hodnotu on pro kapitálky Element je nepovinný. Informace o formátování Barva písma Velikost písma Jazyk Je vidět, že pro každý odstavec a každý řez písma je v dokumentu deklarovaná nepříliš krátká hlavička. V typickém wordovském dokumentu se vyskytuje poměrně značný počet řezů písma. Elementy w:rpr a w:ppr tvoří značnou část celého dokumentu (asi 80 % u průměrného dokumentu). Tento fakt způsobuje, že velikost výsledného XML dokumentu je poměrně značná, typicky mnohem větší než velikost příslušného DOC či RTF souboru. Pro šestnáctistránkový wordovský dokument, jehož velikost v RTF je 181 KB měl výsledný XML formát velikost 1353 KB. Značná velikost XML dokumentu je však nejspíš jedinou nevýhodou XML formátu programu Microsoft Word. Díky množství informací se tento dokument dobře formátuje. Kromě výše popsaných elementů obsahuje XML formát programu Microsoft Word i několik dalších elementů (jedním z nich je například element w:pict pro obrázek). Význam těchto elementů je však poměrně malý. 5.2 OpenOffíce XML formát OpenOffice je sada programů, které lze získat z Internetu zdarma [A12]. Je dostupný v několika verzích. Ve své práci jsem použil verzi z roku Mezi OpenOffice programy patří např. Calc, Draw či Math, ale především Writer, který je pro naše účely nejdůležitější. V programu OpenOffice Writer si totiž můžeme otevřít libovolný DOC či RTF soubor a uložit ho v jiném formátu. Jedním z nabízených formátů uložení je SXW Pokud soubor uložíme ve formátu SXW a pak tento SXW soubor rozbalíme programem Winzip, obdržíme archiv několika XML souborů. Z těchto souborů je nejdůležitější CONTENT.XML, neboť v sobě obsahuje informace o obsahu dokumentu a má tedy podobný význam jako XML dokument vytvořený z programu Microsoft Word. Mezi MS Word XML formátem a OpenOffice XML formátem je poměrně velký rozdíl. MS Word XML formát totiž v hlavičce nemá skoro žádné informace a obsahuje všechny informace o formátování přímo v těle dokumentu. Každý odstavec či řez písma zde má svou vlastní obsáhlou hlavičku, kde je všechno popsáno. Naproti tomu OpenOffice XML formát má o poznání větší hlavičku dokumentu, neboťv této hlavičce obsahuje výčet všech možných typů odstavců a řezů písma, které se v dokumentu vyskytují. V samotném těle dokumentu pak nejsou žádné informace o formátování dokumentu, ale pouze odkaz na 22

28 5.2. OPENOFFICE XML FORMÁT číslo odstavce či řezu písma. Nyní tedy stručný popis OpenOffice XML formátu. Kořenový element je office documentcontent. Tento element obsahuje mimo jiné deklarace jmenných prostorů, z nichž nejdůležitější jsou office, style a text. Následující obrázek ukazuje kostru OpenOffice XML dokumentu s nejdůležitějšími elementy offic e: do curnent- c ontent office font-de cis office: automatic - style s office:body style:style * text: s e quenc e - de cis texfcp * text: span* Obrázek 5.2: Kostra OpenOffice XML formátu Element office:font-decls obsahuje seznam fontů použitých v dokumentu. Mnohem zajímavější je následující element office:automatic-styles. V tomto elementu je seznam stylů všech odstavců a řezů písma, které se vyskytují v dokumentu. Obsah elementu vypadá přibližně takto <office:automatic-styles> <style:style style:name="pl" style:family="paragraph" style:parent-style-name="standard"> <style:properties fo:margin-left="0.0571inch" fo:margin-right="oinch" fo:margin-top="0.0866inch" fo:margin-bottom="oinch" fo:text-indent="oinch" style:auto-text-indent="false" fo:background-color="#ffffff"> <style:tab-stops /> <style:background-image /> </style:properties> </style:style> <style:style style:name="t5" style:family="text"> <style:properties fo:color="#000000" fo:font-size="9pt" fo:language= fo:country="us" fo:font-style="italic" style:font-size-asian="9pt" style:font-style-asian="italic" style:font-size-complex="9pt" style:font-style-complex="italic" /> </style:style> </office:automatic-styles> 23

29 5.2. OPENOFFICE XML FORMÁT Z ukázky je vidět, že pro deklaraci stylu odstavce se používá u atributu name prefix P, zatímco u vlastností řezu písma je to prefix T. Ostatní vlastnosti jednotlivých elementů v deklaraci stylu lze vyčíst z ukázky. Podobně jako u MS Word XML formátu jsou významné pouze některé z těchto elementů a atributů. Poslední podelement kořene, element office:body, obsahuje tělo dokumentu. Jeho první podelement textsequence-decls je poměrně bezvýznamný. Nyní drobná ukázka podelementů z těla dokumentu <text:p text:style-name="pl">references</text:p> <text:p text:style-name="p2"> <text:span text:style-name="tl">[1] ArhangeFskii A.V., </text:span> <text:span text:style-name="t2">topological function spaces, </text:span> <text:span text:style-name="tl">moskov. Gos. Univ. Publ., Moscow, 1989 </text:span> </text:p> <text:p text:style-name="p3">(in Russian); English translation in: Mathematics and its Applications (Soviet Series) 78,</text:p> Vidíme, že v dokumentu už nejsou žádné hlavičky o formátování dokumentu. U každého z elementů textp, textspan je atribut se jménem příslušného odstavce či řezu písma. Element textp obsahuje odstavec, zatímco text: span představuje řez písma. Narozdíl od MS Word XML formátu zde existují odstavce, které nemají žádný podelement s řezem písma. Informace o písmu je totiž většinou uvedena už ve vlastnostech odstavce. Ve srovnání s MS Word XML formátem je OpenOffice XML formát ekonomičtější z hlediska úspory místa. Oba formáty lze dobře formátovat na jiné XML dokumenty, neboťjejich struktura není nijak složitá. OpenOffice formát má však jednu velkou nevýhodu. Abychom získali obsah v XML, musíme dokument otevřít v OpenOffice Writeru, uložit do SXW a poté ještě rozbalit Winzipem, což je poměrně dost kroků a z hlediska hromadného zpracování dokumentů je to dost nepohodlné. Nehledě k tomu, že MS Word formát má i větší podporu v aplikacích a některé aplikace (například ABBYY Finereader) umožňují uložit dokument přímo v MS Word XML formátu, takže získáme dokument v XML, aniž bychom museli spouštět MS Word. 24

30 Kapitola 6 Software pro práci s XML 6.1 XSLT procesory XSLT procesory už byly zmíněny v souvislosti s XSLT šablonami. Tyto procesory slouží k transformaci XML souboru do HTML, XML či jiných formátů. K transformaci kromě XML souboru potřebujeme ještě soubor s XSLT šablonou. Většina procesorů se spouští z příkazové řádky se třemi parametry, jež většinou tvoří Jméno souboru s XSLT šablonou Jméno vstupního XML dokumentu Jméno výsledného souboru ve formátu HTML, XML či TXT Dejme tomu, že pomocí šablony FIRMA.XSL chceme z našeho dokumentu FIRMA.XML vytvořit HTML stránku FIRMA.HTML. Pokud tak budeme chtít učinit pomocí procesoru libxslt/xsltproc spustíme jej z příkazové řádky příkazem xsltproc -O FIRMA.HTML FIRMA.XSL FIRMA.XML Populární XSLT procesor Saxon pak spouštíme příkazem saxon -o FIRMA.HTML FIRMA.XML FIRMA.XSL Pokud jsou XSLT šablona i XML soubor ve správném formátu bez syntaktických chyb, pak se nám v adresáři vytvoří výstupní soubor FIRMA.HTML. V opačném případě se vypíše chybové hlášení, které zřejmě bude u obou procesorů podobné. Většina procesorů je napsána v Jávě či C++. Jejich podrobný seznam i s odkazy k jejich stažení naleznete na [A10]. Nyní stručný komentář alespoň k těm nejdůležitějším XSLT procesorům. Z procesorů napsaných v Jávě stojí za zmínku procesor XT, který je šířen zdarma. Tento procesor nabízí užitečná rozšíření jako například možnost generování více výstupních dokumentů. Vývoj tohoto procesoru je však již zastaven. Zajímavějším a poměrně známým procesorem je Xalan, který existuje ve verzi pro Javu i C++. Rovněž umožňuje definovat více výstupních dokumentů a navíc i definovat vlastní funkce v jazycích Java, JavaScript, Perl, Python... 25

31 6.2. PARSERY Poměrně významným procesorem napsaným v jazyce C je procesor libxslt/xsltproc, který je dostupný podobně jako většina ostatních procesorů na Internetu zdarma. Tento procesor můžete získat z [AI 6] odkud můžete získat i další aplikace jako například parser xmllint. Procesor podporuje spolu s knihovnou iconv velké množství kódování. Můžeme si v něm definovat i rozšiřující funkce v C. Jedním z nejvýznamějších XSLT procesorů je bezesporu Saxon, který jsem používal i v praktické části své práce (verze 6.5.3). Procesor je napsaný v Jávě a je dostupný včetně zdrojového kódu. Proti jiným XSLT procesorům umožňuje například měnit proměnné v XSLT šabloně, kombinovat jejich kód s Javovým kódem, definovat vlastní funkce atd. Saxon podporuje na výstupu i kódování jako windows-1250 či iso Navíc se velmi rychle vyvíjí a transformace pomocí něj je poměrně rychlá (například ve srovnání s procesorem libxslt/xsltproc). 6.2 Parsery Parser je program, který kontroluje syntaktickou správnost XML dokumentu a validitu oproti DTD. Lepší parsery by také měli umožňovat kontrolu XML dokumentu vůči schématům v jazycích XML Schema či Relax NG. Některé parsery ve svých distribucích obsahují i zdrojové kódy knihoven v Jávě nebo C++, takže umožňují programátorům vložit kontrolu správnosti přímo do zdrojového kódu svých programů. Většina producentů parserů používá standardizovaná rozhraní pro práci s dokumentem. Používají se především rozhraní DOM (stromová struktura, vhodné pro náročnější aplikace) a SAX (událostmi řízené, časově i paměťově nenáročné). Mezi nejznámější parsery patří Xerces, který podporuje kromě rozhraní DOM i SAX především jazyk XML Schema 1.0. XML Schema je implementováno kompletně celé. Velká Výhoda parseru Xerces je především v rychlosti s jakou reaguje na doporučení W3C. Je napsán v Jávě, takže je nezávislý na platformě. Parser Xerces je sesterský program procesoru Xalan (oba od Apache Software [A17]) Další významný parser xmllint je součástí distribuce libxml spolu s procesorem libxslt/xsltproc a dalšími programy. (Ve své práci jsem používal distribuci libxml pro Windows, naleznete na přiloženém CD). Parser umožňuje validovat proti DTD, XML Schema i Relax NG. 6.3 Další programy Mezi další významné programy týkající se XML použijeme především program Trang, jež je převaděč mezi různými formáty XML schémat. Trang je vytvořen v Jávě společností Thai Open Source Software [A 14] Pomocí Trangu můžeme převádět schémata mezi Relax NG 1.0 (kompletní i XML syntaxe), DTD 1.0 a XML Schema 1.0. XML Schema je podporováno jen jako výstupní formát. 26

Jazyk XSL XPath XPath XML. Jazyk XSL - rychlá transformace dokumentů. PhDr. Milan Novák, Ph.D. KIN PF JU České Budějovice. 9.

Jazyk XSL XPath XPath XML. Jazyk XSL - rychlá transformace dokumentů. PhDr. Milan Novák, Ph.D. KIN PF JU České Budějovice. 9. Jazyk XSL - rychlá transformace dokumentů 9. prosince 2010 Osnova 1 Jazyk XSL Úvod Princip zpracování pomocí stylů Formátování dokumentu pomocí XSL FO Osnova 1 Jazyk XSL Úvod Princip zpracování pomocí

Více

24. XML. Aby se dokument XML vůbec zobrazil musí být well-formed (správně strukturovaný). To znamená, že splňuje formální požadavky specifikace XML.

24. XML. Aby se dokument XML vůbec zobrazil musí být well-formed (správně strukturovaný). To znamená, že splňuje formální požadavky specifikace XML. 24. XML Úvod Značkovací jazyk XML (extensible Markup Language) vznikl ze staršího a obecnějšího jazyku SGML (Standard Generalized Markup Language). XML byl vyvinut konsorciem W3C, aby poskytl standardní

Více

APLIKACE XML PRO INTERNET

APLIKACE XML PRO INTERNET APLIKACE XML PRO INTERNET Jaroslav Ráček Fakulta Informatiky, Masarykova Universita Brno Abstrakt Text je věnován možnostem využití XML technologie pro prezentaci dokumentů pomocí Internetu. V úvodu je

Více

Obsah prezentace. Co je to XML? Vlastnosti. Validita

Obsah prezentace. Co je to XML? Vlastnosti. Validita Obsah prezentace Co je to XML? Vlastnosti Validita Co je to XML? EXtensible Markup Language Účelem je usnadnit sdílení dat napříč informačními systémy Popis dokumentu z hlediska věcného obsahu Vyvinuto

Více

XML schémata XML teorie a praxe značkovacích jazyků (IZI238)

XML schémata XML teorie a praxe značkovacích jazyků (IZI238) XML teorie a praxe značkovacích jazyků (IZI238) Jirka Kosek Poslední modifikace: $Date: 2006/12/29 15:51:25 $ Obsah Úvod... 4 Proč potřebujeme schéma dokumentů XML... 5 Přínosy použití schématu... 6 Jazyky

Více

Teoretické a pokročilé aspekty XML technologií

Teoretické a pokročilé aspekty XML technologií PRG039 Teoretické a pokročilé aspekty XML technologií - (Ne)standardní jazyky pro popis schématu XML dat - Metody odvozování XML schématu Irena Mlýnková, Martin Nečaský, Jaroslav Pokorný KSI MFF UK, ZS

Více

Prezentace XML. XML popisuje strukturu dat, neřeší vzhled definice vzhledu:

Prezentace XML. XML popisuje strukturu dat, neřeší vzhled definice vzhledu: Realizováno za finanční podpory ESF a státního rozpočtu ČR v rámci v projektu Zkvalitnění a rozšíření možností studia na TUL pro studenty se SVP reg. č. CZ.1.07/2.2.00/29.0011 Definice vzhledu Prezentace

Více

Elektronické publikování. doc. RNDr. Petr Šaloun, Ph.D. katedra informatiky FEI VŠB TU Ostrava

Elektronické publikování. doc. RNDr. Petr Šaloun, Ph.D. katedra informatiky FEI VŠB TU Ostrava Elektronické publikování doc. RNDr. Petr Šaloun, Ph.D. katedra informatiky FEI VŠB TU Ostrava www.cs.vsb.cz/saloun Základní pojmy Zpracování textu myšlenka, typografický návrh, realizace, znovupoužití.

Více

SCHÉMOVÉ JAZYKY. Přednáška z předmětu KMA/POK. Otakar ČERBA Západočeská univerzita v Plzni

SCHÉMOVÉ JAZYKY. Přednáška z předmětu KMA/POK. Otakar ČERBA Západočeská univerzita v Plzni SCHÉMOVÉ JAZYKY Přednáška z předmětu KMA/POK Otakar ČERBA Západočeská univerzita v Plzni Poslední aktualizace: 16. 10. 2010 Schémové jazyky Jazyky pro popis dokumentu XML schémata XML Schema Languages

Více

Inovace výuky prostřednictvím šablon pro SŠ

Inovace výuky prostřednictvím šablon pro SŠ Název projektu Číslo projektu Název školy Autor Název šablony Název DUMu Stupeň a typ vzdělávání Vzdělávací oblast Vzdělávací obor Tematický okruh Inovace výuky prostřednictvím šablon pro SŠ CZ.1.07/1.5.00/34.0748

Více

Pokročilé techniky tvorby sestav v Caché. ZENové Reporty

Pokročilé techniky tvorby sestav v Caché. ZENové Reporty Pokročilé techniky tvorby sestav v Caché ZENové Reporty Úvodem Jednoduché sestavy Pokročilé sestavy Ladění Historie ZEN reporty sdílejí podobný princip definování obsahu jako ZENové stránky Byly uvedeny

Více

XML schémata. Jiří Kosek

XML schémata. Jiří Kosek XML schémata Jiří Kosek XML schémata Jiří Kosek Copyright 2003-2005 Jiří Kosek Vydáno 18. srpna 2005 Tento dokument je určen výhradně pro osobní potřebu seznámení se schémovými jazyky. Jakékoliv jiné použití,

Více

XML schémata. Jiří Kosek

XML schémata. Jiří Kosek XML schémata Jiří Kosek XML schémata Jiří Kosek Copyright 2003-2012 Jiří Kosek Datum vydání 24. května 2013 Tento dokument je určen výhradně pro osobní potřebu seznámení se schémovými jazyky. Jakékoliv

Více

HTML Hypertext Markup Language

HTML Hypertext Markup Language HTML Hypertext Markup Language je jazyk určený na publikování a distribuci dokumentů na Webu velmi jednoduchý jazyk používá ho mnoho uživatelů má výkonné prostředky (příkazy) k formátování dokumentů (různé

Více

Správnost XML dokumentu

Správnost XML dokumentu Realizováno za finanční podpory ESF a státního rozpočtu ČR v rámci v projektu Zkvalitnění a rozšíření možností studia na TUL pro studenty se SVP reg. č. CZ.1.07/2.2.00/29.0011 Správnost XML dokumentu Správně

Více

XML a XSLT. Kapitola seznamuje s šablonami XSLT a jejich použití při transformaci z XML do HTML

XML a XSLT. Kapitola seznamuje s šablonami XSLT a jejich použití při transformaci z XML do HTML XML a XSLT Kapitola seznamuje s šablonami XSLT a jejich použití při transformaci z XML do HTML Zdroje: M. ŽÁK: XML (začínáme programovat), Grada Publishing, 2005 I. MLÝNKOVÁ, M. NEČASKÝ, J. POKORNÝ, K.

Více

XML a DTD. <!DOCTYPE kořenový_element [deklarace definující vlastnosti jednotlivých elementů a atributů]> externí deklarace:

XML a DTD. <!DOCTYPE kořenový_element [deklarace definující vlastnosti jednotlivých elementů a atributů]> externí deklarace: XML a DTD Kapitola seznamuje se specifikací souboru XML pomocí souboru DTD Klíčové pojmy: Definice typu dokumentu. DTD DEFINICE TYPU DOKUMENTU slouží k bližší definici XML dokumentu textový soubor s uvedenými

Více

Jazyky pro popis dat

Jazyky pro popis dat Realizováno za finanční podpory ESF a státního rozpočtu ČR v rámci v projektu Zkvalitnění a rozšíření možností studia na TUL pro studenty se SVP reg. č. CZ.1.07/2.2.00/29.0011 Jazyky pro popis dat Pavel

Více

XML schémata. Agenda. Přínosy použití schématu. Proč potřebujeme schéma dokumentů XML. Tutoriál. Agenda. proč a nač jsou schémata

XML schémata. Agenda. Přínosy použití schématu. Proč potřebujeme schéma dokumentů XML. Tutoriál. Agenda. proč a nač jsou schémata Agenda XML schémata Tutoriál Jirka Kosek proč a nač jsou schémata Agenda přehled nejpoužívanějších jazyků pro popis schématu dokumentu základy jazyka W3C XML Schema jednoduché datové typy komplexní datové

Více

Škola: Gymnázium, Brno, Slovanské náměstí 7 III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN

Škola: Gymnázium, Brno, Slovanské náměstí 7 III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN Škola: Gymnázium, Brno, Slovanské náměstí 7 Šablona: III/2 Inovace a zkvalitnění výuky prostřednictvím ICT Název projektu: Inovace výuky na GSN prostřednictvím ICT Číslo projektu: CZ.1.07/1.5.00/34.0940

Více

Uspořádání klient-server. Standardy pro Web

Uspořádání klient-server. Standardy pro Web Návrh a tvorba WWW stránek 1/11 Uspořádání klient-server klient na straně uživatele (browser, prohlížeč) server program obsluhující požadavky uživatele Standardy pro Web HTTP Hypertext Transfer Protocol

Více

Programy pro psaní textů. textové editory, textové procesory

Programy pro psaní textů. textové editory, textové procesory Programy pro psaní textů textové editory, textové procesory Terminologie Pojmy textový editor a textový procesor se často nerozlišují, proto nejdříve trocha teorie. Textový editor: program, který používáme

Více

Distanční opora předmětu: Databázové systémy Tématický blok č. 4: XML, DTD, XML v SQL Autor: RNDr. Jan Lánský, Ph.D.

Distanční opora předmětu: Databázové systémy Tématický blok č. 4: XML, DTD, XML v SQL Autor: RNDr. Jan Lánský, Ph.D. Distanční opora předmětu: Databázové systémy Tématický blok č. 4: XML, DTD, XML v SQL Autor: RNDr. Jan Lánský, Ph.D. Obsah kapitoly 1 XML 2 DTD 2.1 Atributy 2.2 Entity 3. XML v SQL Serveru Studijní cíle

Více

Podpora XML v.net. Podpora XML v.net. nezávislý publicista. Jirka Kosek. http://www.kosek

Podpora XML v.net. Podpora XML v.net. nezávislý publicista. Jirka Kosek. http://www.kosek Podpora XML v.net Podpora XML v.net Jirka Kosek nezávislý publicista http://www.kosek kosek.cz Co nás čeká? Co nás čeká?! podpora XML ve VisualStudio.NET! architektura System.Xml! čtení XML dokumentů!

Více

Systém elektronického rádce v životních situacích portálu www.senorady.cz

Systém elektronického rádce v životních situacích portálu www.senorady.cz Systém elektronického rádce v životních situacích portálu www.senorady.cz Obec Senorady Miroslav Patočka 2006 Obsah: 1. Úvodní informace 1.1 Informace pro uživatele 1.1.1 Přístupnost HTML, PDA, WAP, XML

Více

MBI - technologická realizace modelu

MBI - technologická realizace modelu MBI - technologická realizace modelu 22.1.2015 MBI, Management byznys informatiky Snímek 1 Agenda Technická realizace portálu MBI. Cíle a principy technického řešení. 1.Obsah portálu - objekty v hierarchiích,

Více

Elektronické publikování. Základní pojmy. B žné systémy. Publika ní nástroje. doc. RNDr. Petr Šaloun, Ph.D. FEI VŠB TU Ostrava

Elektronické publikování. Základní pojmy. B žné systémy. Publika ní nástroje. doc. RNDr. Petr Šaloun, Ph.D.  FEI VŠB TU Ostrava Publika ní nástroje Proprietární formáty MS Word MS PowerPoint možnost XML exportu Nezávislé/rozší ené standardy TeX / LaTeX / PDFTeX XML XHTML, DocBook PDF PostScript B žné systémy Snaha o strukturní

Více

Předmluva k druhému vydání 13. Úvod 17. ČÁST 2 Vytváření dokumentů XML 65

Předmluva k druhému vydání 13. Úvod 17. ČÁST 2 Vytváření dokumentů XML 65 7 Stručný obsah Předmluva k druhému vydání 13 Úvod 17 ČÁST 1 Začínáme 27 Kapitola 1 Proč XML 29 Kapitola 2 Vytváření a zobrazení vašeho prvního dokumentu XML 45 ČÁST 2 Vytváření dokumentů XML 65 Kapitola

Více

Výukový materiál KA č.4 Spolupráce se ZŠ

Výukový materiál KA č.4 Spolupráce se ZŠ Výukový materiál KA č.4 Spolupráce se ZŠ Modul: Téma workshopu: Výpočetní technika Co je to internet? Jak si udělat vlastní www stránku? Vypracovala: Ing. Lenka Hellová Termín workshopu: 30. říjen 2012

Více

HTML XHTML JavaScript PHP ASP.Net Zajímavé odkazy

HTML XHTML JavaScript PHP ASP.Net Zajímavé odkazy V čem se píší web. dokumenty HTML XHTML JavaScript PHP ASP.Net Zajímavé odkazy HTML HTML (HyperText Markup Language, značkovací jazyk pro hypertext) standart pro vytváření stránek v systému aplikací World

Více

Kaskádové styly základy grafiky

Kaskádové styly základy grafiky 1 Kaskádové styly základy grafiky Vymezení pojmů Historie Základy stylů 2 Co je to CSS? Vznik CSS a je možné zařadit přibližně do roku 1997. Pojem CSS by se dal shrnout definicí :"souhrn pravidel a metod

Více

Značkovací jazyky a spol. HTML/XHTML XML JSON YAML Markdown, Texy!

Značkovací jazyky a spol. HTML/XHTML XML JSON YAML Markdown, Texy! Značkovací jazyky a spol. HTML/XHTML XML JSON YAML Markdown, Texy! Značkovací jazyky Angl. termín "MARKUP" ("vyznačování") Smyslem je přidat do textu metainformace: formátovací sémantické Výsledek je prostý

Více

Syntaxe XML XML teorie a praxe značkovacích jazyků (4IZ238)

Syntaxe XML XML teorie a praxe značkovacích jazyků (4IZ238) XML teorie a praxe značkovacích jazyků (4IZ238) Jirka Kosek Poslední modifikace: $Date: 2009/10/01 19:46:33 $ Obsah Základy syntaxe... 3 Elementy a atributy... 4 Znakový model XML... 5 Komentáře... 6 Instrukce

Více

Jak psát bakalářskou práci v DocBooku

Jak psát bakalářskou práci v DocBooku VYSOKÁ ŠKOLA EKONOMICKÁ V PRAZE Fakulta informatiky a statistiky Katedra informačního a znalostního inženýrství Jak psát bakalářskou práci v DocBooku Bakalářská práce Jiří Kosek Vedoucí práce: Prof. Ing.

Více

VY_32_INOVACE_INF3_18. Textové formáty PDF, TXT, RTF, HTML, ODT

VY_32_INOVACE_INF3_18. Textové formáty PDF, TXT, RTF, HTML, ODT VY_32_INOVACE_INF3_18 Textové formáty PDF, TXT, RTF, HTML, ODT Standardem pro textové soubory jsou následující formáty: Rich Text Format (.rtf), Hypertext Markup Language (.html,.htm) Portable Document

Více

Tvorba informačních systémů

Tvorba informačních systémů Tvorba informačních systémů Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2006/2007 c 2006 2007 Michal Krátký Tvorba informačních systémů 1/37 Obsah 8.

Více

XSLT a jmenné prostory

XSLT a jmenné prostory XSLT a jmenné prostory Doplňková prezentace Roman Malo XSLT a jmenné prostory Při využití XSLT nad XML s jmennými prostory je potřeba jednotlivé názvy uzlů (elementy a atributy) uvádět včetně prefixu Prefix

Více

HTML - Úvod. Zpracoval: Petr Lasák

HTML - Úvod. Zpracoval: Petr Lasák HTML - Úvod Zpracoval: Petr Lasák Je značkovací jazyk, popisující obsah HTML stránek Je z rodiny SGML jazyků, jako např. XML, DOCX, XLSX Nejedná se o programovací ale značkovací jazyk Dynamičnost dodávají

Více

X L M L v v Of O f f i f ce 2 0 2 0 0 7 XML OBECNĚ VBA pro Excel Petr Blaha XML v MS Office Michal Theodor

X L M L v v Of O f f i f ce 2 0 2 0 0 7 XML OBECNĚ VBA pro Excel Petr Blaha XML v MS Office Michal Theodor Osnova XML v Office 2007 Michal Theodor XML obecně Co to je XML Příklad XML dokumentu Využití Office Open XML Struktura dokumentu MS Office 2007 Úprava dokumentu MS Office 2007 pomocí XML Přizpůsobení

Více

Kartografická webová aplikace. Přednáška z předmětu Počítačová kartografie (KMA/POK) Otakar Čerba Západočeská univerzita

Kartografická webová aplikace. Přednáška z předmětu Počítačová kartografie (KMA/POK) Otakar Čerba Západočeská univerzita Kartografická webová aplikace Přednáška z předmětu Počítačová kartografie (KMA/POK) Otakar Čerba Západočeská univerzita Datum vzniku dokumentu: 3. 11. 2011 Datum poslední aktualizace: 10. 12. 2011 Cíl

Více

Vývoj Internetových Aplikací

Vývoj Internetových Aplikací 2 Vývoj Internetových Aplikací HTML a CSS Ing. Michal Radecký, Ph.D. www.cs.vsb.cz/radecky HTML a CSS - Tvorba webových stránek - Struktura - Obsah - Vzhled - Funkcionalita zdroj: http://www.99points.info

Více

Mgr. Stěpan Stěpanov, 2013

Mgr. Stěpan Stěpanov, 2013 Mgr. Stěpan Stěpanov, 2013 Abstrakt V tomto kurzu se seznámíme se základními pojmy HTML, klíčovými pravidly pro práci se značkami a atributy a strukturou dokumentu. Také se dozvíte, jak a v čem lze vytvářet

Více

Obsah přednášky. XML DOM SAX XPath XSL transformace 1/46

Obsah přednášky. XML DOM SAX XPath XSL transformace 1/46 Obsah přednášky XML DOM SAX XPath XSL transformace 1/46 Co je XML? XML je meziplatformní, softwarově a hardwarově nezávislý a standardizovaný nástroj pro přenos informace 2/46 Co je XML? EXtensible Markup

Více

Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky. Dokumentace k programu MMDoc

Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky. Dokumentace k programu MMDoc Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky Dokumentace k programu MMDoc Vypracoval: Petr Dvořák Datum: 15.prosince 2005 1. Úvod 1.1. Účel tohoto dokumentu

Více

Analýza dat a modelování. Speciální struktury

Analýza dat a modelování. Speciální struktury Analýza dat a modelování Speciální struktury XML extensible Markup Language jazyk pro popis struktury dat (zejména se používá pro dokumenty) výrazná podobnost s HTML proč? protože má stejný původ v jazyce

Více

Alena Malovaná, MAL305

Alena Malovaná, MAL305 Alena Malovaná, MAL305 GML WFS WMF Geografický značkovací jazyk (Geographic Markup Language - GML) Jedná se o velmi rozšířený standard pro popis geodat umožňující sdílení i integraci dat. Jeho základem

Více

PHP PHP je skriptovací programovací jazyk dynamických internetových stránek PHP je nezávislý na platformě

PHP PHP je skriptovací programovací jazyk dynamických internetových stránek PHP je nezávislý na platformě PHP PHP původně znamenalo Personal Home Page a vzniklo v roce 1996, od té doby prošlo velkými změnami a nyní tato zkratka znamená Hypertext Preprocessor. PHP je skriptovací programovací jazyk, určený především

Více

X36DSV 3. cvičení. XML (extensible Markup Language) JavaScript. AJAX (Asynchronous JavaScript and XML) X36DSV. 2007/10 ver.2.0 1

X36DSV 3. cvičení. XML (extensible Markup Language) JavaScript. AJAX (Asynchronous JavaScript and XML) X36DSV. 2007/10 ver.2.0 1 3. cvičení XML (extensible Markup Language) JavaScript AJAX (Asynchronous JavaScript and XML) 2007/10 ver.2.0 1 XML podmnožina SGML (Standard Generalized Markup Language) popis dat (rozdíl oproti HTML)

Více

Rozšiřitelný editor XML dokumentů. Tomáš Diviš

Rozšiřitelný editor XML dokumentů. Tomáš Diviš České vysoké učení technické v Praze Fakulta elektrotechnická ČVUT FEL katedra počítačů Diplomová práce Rozšiřitelný editor XML dokumentů Tomáš Diviš Vedoucí práce: Ing. Martin Kačer Studijní program:

Více

13. Vytváření webových stránek

13. Vytváření webových stránek 13. Vytváření webových stránek značkovací jazyk HTML, základní členění dokumentu, odkazy, tabulky, seznamy, obrázky, HTML editory Značkovací jazyk HTML HTML - Hypertext markup Language (hypertextový značkovací

Více

Základy XML struktura dokumentu (včetně testových otázek)

Základy XML struktura dokumentu (včetně testových otázek) Základy XML struktura dokumentu (včetně testových otázek) Otakar Čerba Oddělení geomatiky Katedra matematiky Fakulta aplikovaných věd Západočeská univerzita v Plzni Přednáška z předmětu Počítačová kartografie

Více

Tvorba webu. Úvod a základní principy. Martin Urza

Tvorba webu. Úvod a základní principy. Martin Urza Tvorba webu Úvod a základní principy Martin Urza World Wide Web (WWW) World Wide Web (doslova celosvětová pavučina ) je označení pro mnoho dokumentů rozmístěných na různých serverech po celém světě. Tyto

Více

Název modulu: Tvorba webu pomocí XHTML a CSS začátečníci

Název modulu: Tvorba webu pomocí XHTML a CSS začátečníci Název modulu: Označení: C7 Stručná charakteristika modulu Modul vznikl za účelem úvodního seznámení zájemců o problematiku tvorby moderních webových stránek podle standardů W3C. Zahrnuje základní nezbytné

Více

Publikování map na webu - WMS

Publikování map na webu - WMS Semestrální práce z předmětu Kartografická polygrafie a reprografie Publikování map na webu - WMS Autor: Ondřej Dohnal, Martina Černohorská Editor: Filip Dvořáček Praha, duben 2010 Katedra mapování a kartografie

Více

1 Webový server, instalace PHP a MySQL 13

1 Webový server, instalace PHP a MySQL 13 Úvod 11 1 Webový server, instalace PHP a MySQL 13 Princip funkce webové aplikace 13 PHP 14 Principy tvorby a správy webového serveru a vývojářského počítače 14 Co je nezbytné k instalaci místního vývojářského

Více

Úvod do databázových systémů B

Úvod do databázových systémů B Úvod do databázových systémů B RNDr. Jan Lánský, Ph.D. 5. přednáška XML Slajdy 2-45 převzaty z Mlýnková, Nečaský: Technologie XML (DBI026, MFF UK) 1 Motivace Místo A Chceme přenést informaci Místo B 2

Více

22. Tvorba webových stránek

22. Tvorba webových stránek 22. Tvorba webových stránek Webové stránky jsou spolu s elektronickou poštou nejpoužívanější prostředky internetu. Brouzdáme li internetem používáme nějaký prohlížeč. To, co vidíme na obrazovce v prohlížeči

Více

M4 PDF rozšíření. Modul pro PrestaShop. http://www.presta-addons.com

M4 PDF rozšíření. Modul pro PrestaShop. http://www.presta-addons.com M4 PDF rozšíření Modul pro PrestaShop http://www.presta-addons.com Obsah Úvod... 2 Vlastnosti... 2 Jak modul funguje... 2 Zdroje dat... 3 Šablony... 4 A. Označení šablon... 4 B. Funkce Smarty... 5 C. Definice

Více

Základy HTML. Autor: Palito

Základy HTML. Autor: Palito Základy HTML Autor: Palito Zobrazení zdrojového kódu Zobrazení zdrojového kódu Každá stránka je na disku nebo na serveru uložena ve formě zdrojového kódu. Ten kód je psaný v jazyce HTML. Když si chcete

Více

Příklad buňka tabulky

Příklad buňka tabulky Realizováno za finanční podpory ESF a státního rozpočtu ČR v rámci v projektu Zkvalitnění a rozšíření možností studia na TUL pro studenty se SVP reg. č. CZ.1.07/2.2.00/29.0011 Pojmenované šablony Pojmenované

Více

Základy WWW publikování

Základy WWW publikování Ing. Igor Kopetschke Oddělení aplikované informatiky Ústav nových technologií a aplikované informatiky Fakulta mechatroniky a mezioborových inženýrských studií Technická univerzita v Liberci Email : igor.kopetschke@tul.cz

Více

Další XML technologie

Další XML technologie XML teorie a praxe značkovacích jazyků (4IZ238) Jirka Kosek Poslední modifikace: $Date: 2012/05/17 18:58:55 $ Obsah Odkazy... 3 Odkazy v rámci jednoho dokumentu... 4 XLink (XML Linking Language)... 5 XLink

Více

XSLT pomocí JavaScriptu v Mozille (... Opeře a Safari)

XSLT pomocí JavaScriptu v Mozille (... Opeře a Safari) XSLT a JavaScript Autor: Petr Dvořák (http://joshis.iprofil.cz/) Úvod Dokumenty XML (můžeme rovnou říct, že narozdíl od dokumentů (X)HTML) nenesou žádnou informaci, která by prohlížeči sdělila, jakým způsobem

Více

Dotazování nad XML daty a jazyk XPath

Dotazování nad XML daty a jazyk XPath 4 TVEZEWXYHMNR LSTVSKVEQY-RJSVQEXMOENITSHTSVSZ RETVSNIOXIQRERGSZER Q ^)ZVSTWO LSWSGM PR LSJSRHYEVS^TS XYLPEZR LSQ WXE4VEL] 4VELE)9-RZIWXYNIQIHSZE% FYHSYGRSWXM Dotazování nad XML daty a jazyk XPath BI-TWA

Více

XML snadno a rychle Martin Kuba, ÚVT MU

XML snadno a rychle Martin Kuba, ÚVT MU XML snadno a rychle Martin Kuba, ÚVT MU Ve filmu Adéla ještě nevečeřela se americký detektiv naučí plynně česky během cesty vlakem z knihy s názvem Česky snadno a rychle. Bohužel, takto efektivní učebnice

Více

HROMADNÉ ÚPRAVY NAJÍT A NAHRADIT

HROMADNÉ ÚPRAVY NAJÍT A NAHRADIT HROMADNÉ ÚPRAVY NAJÍT A NAHRADIT Funkce Najít a nahradit slouží k rychlému vyhledávání určitých slov a jejich nahrazování jinými slovy. Lze hledat i určité varianty slov a nahrazovat je buď hromadně (všechny

Více

Validace souborů DS3

Validace souborů DS3 Validace souborů DS3 Verze: 1.33 1. Rozsah...1 1.1 Identifikace systému...1 1.2 Přehled systému...1 2. Přehled verzí a změny v nich...1 3. Použité dokumenty...2 4. Shrnutí údajů o programovém vybavení...4

Více

Vstupní data pro program Deformace ve formátu XML

Vstupní data pro program Deformace ve formátu XML geocaktualizace:22.11.2004 Vstupní data pro program Deformace ve formátu XML Pro formát vstupních dat je využit jazyk XML pro popis strukturovaných dat. Formát je definován v souladu s definicí jazyka

Více

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu

VÝUKOVÝ MATERIÁL. Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632 Číslo projektu VÝUKOVÝ MATERIÁL Identifikační údaje školy Vyšší odborná škola a Střední škola, Varnsdorf, příspěvková organizace Bratislavská 2166, 407 47 Varnsdorf, IČO: 18383874 www.vosassvdf.cz, tel. +420412372632

Více

Dnešní téma. Oblasti standardizace v ICT. Oblasti standardizace v ICT. Oblasti standardizace v ICT

Dnešní téma. Oblasti standardizace v ICT. Oblasti standardizace v ICT. Oblasti standardizace v ICT Dnešní téma Oblasti standardizace v ICT Případové studie standardizace v ICT: 1) Znakové sady 2) Jazyk 1. technická infrastruktura transfer a komunikace informací, přístup k informacím, sdílení zdrojů

Více

Principy XQuery. funkcionální jazyk vše je výraz, jehož vyhodnocením vznikne určitá hodnota základní typy stejné jako v XML Schema:

Principy XQuery. funkcionální jazyk vše je výraz, jehož vyhodnocením vznikne určitá hodnota základní typy stejné jako v XML Schema: Realizováno za finanční podpory ESF a státního rozpočtu ČR v rámci v projektu Zkvalitnění a rozšíření možností studia na TUL pro studenty se SVP reg. č. CZ.1.07/2.2.00/29.0011 XQuery XQuery dotazovací

Více

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita Aktivní webové stránky Úvod: - statické webové stránky: pevně vytvořený kód HTML uložený na serveru, ke kterému se přistupuje obvykle pomocí protokolu HTTP (HTTPS - zabezpečený). Je možno používat i různé

Více

Co je HTML. 1. Párový tag má začátek a konec: 2. Nepárový tag nemá ukončovací značku:

Co je HTML. 1. Párový tag má začátek a konec: 2. Nepárový tag nemá ukončovací značku: Co je HTML HTML HyperText Markup Language je značkovací jazyk pro tvorbu www stránek. Jako například Český jazyk má svá slova, tak i HTML obsahuje slova, neboli tagy (značky), které dávají vlastnímu obsahu

Více

Tvorba webových stránek

Tvorba webových stránek Tvorba webových stránek Kaskádové styly Úprava vzhledu webové stránky pomocí atributů má několik nevýhod a úskalí. Atributy nabízejí málo možností úprav. Obtížně se sjednocují změny na různých částech

Více

2 PŘÍKLAD IMPORTU ZATÍŽENÍ Z XML

2 PŘÍKLAD IMPORTU ZATÍŽENÍ Z XML ROZHRANÍ ESA XML Ing. Richard Vondráček SCIA CZ, s. r. o., Thákurova 3, 160 00 Praha 6 www.scia.cz 1 OTEVŘENÝ FORMÁT Jednou z mnoha užitečných vlastností programu ESA PT je podpora otevřeného rozhraní

Více

ANOTACE vytvořených/inovovaných materiálů

ANOTACE vytvořených/inovovaných materiálů ANOTACE vytvořených/inovovaných materiálů Číslo projektu Číslo a název šablony klíčové aktivity Tematická oblast Formát Druh učebního materiálu Druh interaktivity CZ.1.07/1.5.00/34.0722 III/2 Inovace a

Více

3 MOŽNÉ PŘÍSTUPY K TVORBĚ APLIKACÍ NAD SVG DOKUMENTY

3 MOŽNÉ PŘÍSTUPY K TVORBĚ APLIKACÍ NAD SVG DOKUMENTY 3 MOŽNÉ PŘÍSTUPY K TVORBĚ APLIKACÍ NAD SVG DOKUMENTY 3.1 Tenký a tlustý klient Klientské aplikace nad XML dokumenty v prostředí internetu se dají rozdělit na dvě skupiny: tenký klient a tlustý klient.

Více

Gymnázium Vysoké Mýto nám. Vaňorného 163, 566 01 Vysoké Mýto

Gymnázium Vysoké Mýto nám. Vaňorného 163, 566 01 Vysoké Mýto Gymnázium Vysoké Mýto nám. Vaňorného 163, 566 01 Vysoké Mýto Registrační číslo projektu Šablona Autor Název materiálu / Druh CZ.1.07/1.5.00/34.0951 III/2 INOVACE A ZKVALITNĚNÍ VÝUKY PROSTŘEDNICTVÍM ICT

Více

Pokyny k vypracování závěrečné maturitní práce

Pokyny k vypracování závěrečné maturitní práce Pokyny k vypracování závěrečné maturitní práce Závěrečná maturitní práce je autorské dílo žáků maturitních ročníků vymezené ve školském zákoně č. 56/2004 Sb., formálně a procesně vymezené ve vyhlášce MŠMT

Více

Michal Krátký. Tvorba informačních systémů, 2008/2009. Katedra informatiky VŠB Technická univerzita Ostrava. Tvorba informačních systémů

Michal Krátký. Tvorba informačních systémů, 2008/2009. Katedra informatiky VŠB Technická univerzita Ostrava. Tvorba informačních systémů Tvorba informačních systémů 1/46 Tvorba informačních systémů Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2008/2009 Tvorba informačních systémů 2/46 Obsah

Více

Tvorba informačních systémů

Tvorba informačních systémů Tvorba informačních systémů Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2006/2007 c 2006 2008 Michal Krátký Tvorba informačních systémů 1/46 Obsah 8.

Více

Software602 Form Designer

Software602 Form Designer Software602 Form Designer Javascriptový vyhodnocovací mechanismus výrazů Aktualizováno: 17. 3. 2017 Software602 a.s. Hornokrčská 15 140 00 Praha 4 tel: 222 011 602 web: www.602.cz e-mail: info@602.cz ID

Více

GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím

GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER váš partner na cestě od dat k informacím globtech spol. s r.o. karlovo náměstí 17 c, praha 2 tel.: +420 221 986 390 info@globtech.cz

Více

Typy souborů ve STATISTICA. Tento článek poslouží jako přehled hlavních typů souborů v programu

Typy souborů ve STATISTICA. Tento článek poslouží jako přehled hlavních typů souborů v programu StatSoft Typy souborů ve STATISTICA Tento článek poslouží jako přehled hlavních typů souborů v programu STATISTICA, ukáže Vám jejich možnosti a tím Vám dovolí využívat program efektivněji. Jistě jste již

Více

TÉMATICKÝ OKRUH Softwarové inženýrství

TÉMATICKÝ OKRUH Softwarové inženýrství TÉMATICKÝ OKRUH Softwarové inženýrství Číslo otázky : 23. Otázka : Datový model XML, dotazovací jazyky nad XML daty Obsah : 1 Úvod o XML 2 Vztah XML a databáze 2.1 Databázové systémy s podporou XML 2.2

Více

Příprava dokumentů textovým procesorem II.

Příprava dokumentů textovým procesorem II. Příprava dokumentů textovým procesorem II. Zpracování textu v textovém procesoru Microsoft Word 2007 Petr Včelák vcelak@kiv.zcu.cz Katedra informatiky a výpočetní techniky, Fakulta aplikovaných věd, Západočeská

Více

Tvorba WWW stránek. Mojmír Volf mojmir.volf@tul.cz https://www.nti.tul.cz/wiki/wikiuser:mojmir.volf 485 353 675

Tvorba WWW stránek. Mojmír Volf mojmir.volf@tul.cz https://www.nti.tul.cz/wiki/wikiuser:mojmir.volf 485 353 675 Tvorba WWW stránek Mojmír Volf mojmir.volf@tul.cz https://www.nti.tul.cz/wiki/wikiuser:mojmir.volf 485 353 675 Zdroje KRUG: Web design - nenuťte uživatele přemýšlet.. Computer Press, 2003. PROKOP M.: CSS

Více

KAPITOLA 3 - ZPRACOVÁNÍ TEXTU

KAPITOLA 3 - ZPRACOVÁNÍ TEXTU KAPITOLA 3 - ZPRACOVÁNÍ TEXTU KLÍČOVÉ POJMY textové editory formát textu tabulka grafické objekty odrážky a číslování odstavec CÍLE KAPITOLY Pracovat s textovými dokumenty a ukládat je v souborech různého

Více

O projektu Nasazení OpenOffice.org v praxi

O projektu Nasazení OpenOffice.org v praxi O projektu Nasazení OpenOffice.org v praxi Filip Molčan molcanf@openoffice.org Konference EurOpen Hotel Relax, Moninec - 18. 5. 2005 Obsah prezentace Minulost a současnost OpenOffice.org Představení projektu

Více

(X)HTML, CSS a jquery

(X)HTML, CSS a jquery Prezentační vrstva webové aplikace (X)HTML, CSS a jquery jquery Java Scriptová knihovna Ing. Martin Dostal (X)HTML první stránka Textový soubor s příponou.htm nebo.html: moje

Více

Formátování pomocí stylů

Formátování pomocí stylů Styly a šablony Styly, šablony a témata Formátování dokumentu pomocí standardních nástrojů (přímé formátování) (Podokno úloh Zobrazit formátování): textu jsou přiřazeny parametry (font, velikost, barva,

Více

Gymnázium Vysoké Mýto nám. Vaňorného 163, 566 01 Vysoké Mýto

Gymnázium Vysoké Mýto nám. Vaňorného 163, 566 01 Vysoké Mýto Gymnázium Vysoké Mýto nám. Vaňorného 163, 566 01 Vysoké Mýto Registrační číslo projektu Šablona Autor Název materiálu / Druh CZ.1.07/1.5.00/34.0951 III/2 INOVACE A ZKVALITNĚNÍ VÝUKY PROSTŘEDNICTVÍM ICT

Více

Microsoft Office Word 2003

Microsoft Office Word 2003 Microsoft Office Word 2003 Školení učitelů na základní škole Meteorologická Maturitní projekt SSPŠ 2013/2013 Vojtěch Dušek 4.B 1 Obsah 1 Obsah... 2 2 Seznam obrázků... 3 3 Základy programu PowerPoint...

Více

14. Jazyk HTML (vývoj, principy, funkce, kostra stránky). Jazyk XML, XHTML. Algoritmizace - cyklus for, while a do while, implementace v jazyce

14. Jazyk HTML (vývoj, principy, funkce, kostra stránky). Jazyk XML, XHTML. Algoritmizace - cyklus for, while a do while, implementace v jazyce 4. Jazyk HTML (vývoj, principy, funkce, kostra stránky). Jazyk XML, XHTML. Algoritmizace - cyklus for, while a do while, implementace v jazyce PHP. HyperText Markup Language Z Wikipedie, otevřené encyklopedie

Více

Obecný popis struktury souborů a rozhraní pro třetí strany společného technického zařízení správců daně (Podatelny EPO)

Obecný popis struktury souborů a rozhraní pro třetí strany společného technického zařízení správců daně (Podatelny EPO) Obecný popis struktury souborů a rozhraní pro třetí strany společného technického zařízení správců daně (Podatelny EPO) Verze 1.6 Strana 1 (celkem 20) Popis struktury souborů Základní společnou vlastností

Více

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Maturitní otázky z předmětu PROGRAMOVÁNÍ Wichterlovo gymnázium, Ostrava-Poruba, příspěvková organizace Maturitní otázky z předmětu PROGRAMOVÁNÍ 1. Algoritmus a jeho vlastnosti algoritmus a jeho vlastnosti, formy zápisu algoritmu ověřování správnosti

Více

Zadání maturitní práce ve školním roce 2016/2017

Zadání maturitní práce ve školním roce 2016/2017 Zadání maturitní práce ve školním roce 2016/2017 vydané podle 15 odst. 1 vyhlášky č. 177/2009 Sb., o bližších podmínkách ukončování vzdělávání ve středních školách maturitní zkouškou, ve znění pozdějších

Více