UNIVERZITA PARDUBICE. Fakulta elektrotechniky a informatiky. Programový generátor trendů Václav Bárta

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

Download "UNIVERZITA PARDUBICE. Fakulta elektrotechniky a informatiky. Programový generátor trendů Václav Bárta"

Transkript

1 UNIVERZITA PARDUBICE Fakulta elektrotechniky a informatiky Programový generátor trendů Václav Bárta Bakalářská práce 2011

2

3

4 Prohlášení autora Prohlašuji, že jsem tuto práci vypracoval samostatně. Veškeré literární prameny a informace, které jsem v práci využil, jsou uvedeny v seznamu použité literatury. Byl jsem seznámen s tím, že se na moji práci vztahují práva a povinnosti vyplývající ze zákona č. 121/2000 Sb., autorský zákon, zejména se skutečností, že Univerzita Pardubice má právo na uzavření licenční smlouvy o užití této práce jako školního díla podle 60 odst. 1 autorského zákona, a s tím, že pokud dojde k užití této práce mnou nebo bude poskytnuta licence o užití jinému subjektu, je Univerzita Pardubice oprávněna ode mne požadovat přiměřený příspěvek na úhradu nákladů, které na vytvoření díla vynaložila, a to podle okolností až do jejich skutečné výše. Souhlasím s prezenčním zpřístupněním své práce v Univerzitní knihovně. V Pardubicích dne Václav Bárta

5 Poděkování Na tomto místě bych rád v první řadě poděkoval vedoucímu své bakalářské práce panu Ing. Karlu Šimerdovi za pomoc a cenné rady, které mi poskytl nejenom v souvislosti s touto prací. Dále slečně Veronice Dufkové za korektury a nejen za ně. Následně pak i celé rodině a přátelům za jejich podporu a trpělivost.

6 Anotace Bakalářská práce pojednává o implementaci aplikace generující trendy s možností rušení a zobrazení těchto trendů. Součástí práce je seznámení s problematikou trendů, jejich generování a rušení, popis formátu XML a s ním souvisejícími technologiemi, dále popis metod zpracování XML dokumentů v jazyce Java a popis vývoje aplikace. Aplikace byla vytvořena s využitím těchto technologií: XML, XSD, XSLT, JAXB, Java, JFreeChart, Swing. Klíčová slova generátor, trend, rušení, xml, xsd, java aplikace, jaxb, jfreechart. Title Software trend generator. Annotation This bachelor work deals with implementation of application which generates trends. Application enables jamming and displaying of these trends. Bachelor work includes introduction to trends, their generating and jamming, description of the XML format and related technologies. Bachelor work also deals with description of methods of processing XML documents in programing language Java, and description of evolving of the application. This application was created by using these technologies: XML, XSD, XSLT, JAXB, Java, JFreeChart, Swing. Keywords generator, trend, jam, xml, xsd, java application, jaxb, jfreechart.

7 Obsah Seznam zkratek... 8 Seznam obrázků... 9 Seznam tabulek Úvod Trendy Definice a využití Programový generátor trendů Zadávání a generování Implementovaná rozdělení pravděpodobnosti Alternativní Binomické Gamma Hypergeometrické Normální Poissonovo Rovnoměrné Trojúhelníkové XML Obecně Struktura XML souboru Porovnání s binárními formáty DTD, XSD schémata DTD XSD XPath XSLT Validace XML souborů Návrh vlastních schémat Práce s XML soubory XML a Java Parsery... 25

8 4.2 JAXP, JDOM SAX DOM JWSDP, StAX, JAXB Implementace Balíčky tříd a jejich vztahy Trendy Rušení Realný čas Graf Vzájemné vztahy JFreeChart Generování v reálném čase Statické a dynamické třídy rušení, singleton Swingová aplikace Závěr Literatura Příloha A XSD schéma pro vstupní trendy Příloha B XSD schéma pro výstupní trendy 1. varianta Příloha C XSD schéma pro výstupní trendy 2. varianta Příloha D Popis instalace, nastavení vývojového prostředí... 44

9 Seznam zkratek XML DTD XSD RNG XPath XSLT UTF-8 DOM SAX StAX JAXP JAXB XJC JDOM JWSDP SWING Extensible Markup Language Document Type Definition XML Schema Definition RelaxNG XML Path Language Extensible Stylesheet Language Transformations UCS Transformation Format Document Object Model Simple API for XML Streaming API for XML Java Architecture for XML Procesing Java Architecture for XML Binding XML to Java Compiler není oficiálně akronym 1 (neoficiálně Java Document Object Model) Java Web Services Developer Pack API for providing a graphical user interface (GUI) for Java programs 1 Is JDOM an acronym? Nope. Just like JDBC is not officially an acronym, neither is JDOM. This ensures we comply with Sun's trademark policies as explained at 8

10 Seznam obrázků Obrázek 1 - Teplotní trendy Historická minima a maxima Obrázek 2 - Alternativní rušení Obrázek 3 - Binomické rušení Obrázek 4 - Gamma rušení Obrázek 5 - Hypergeometricke rušení Obrázek 6 - Normální rušení Obrázek 7 - Poissonovo rušení Obrázek 8 - Rovnoměrné rušení Obrázek 9 - Trojúhelníkové rušení Obrázek 10 - XML soubor Obrázek 11 - DTD schéma Obrázek 12 - XSD schéma Obrázek 13 - RNG schéma Obrázek 14 - XSLT Obrázek 15 Schéma pro vstupní trend design A Obrázek 16 - Schéma pro výstupní trend design B Obrázek 17 - Schéma pro výstupní trend - design C Obrázek 18 - JAXB Obrázek 19 XJC převod z XSD schéma pro výstupní trendy (Příloha B) Obrázek 20 - Trendy a převodník Obrázek 21 - Rušení Obrázek 22 - Převod trendu v reálném čase Obrázek 23 - Vytvoření grafu z trendů Obrázek 24 - Vzájemné vztahy tříd Obrázek 25 - Statická třída JRuseni Obrázek 26 - Okno aplikace Seznam tabulek Tabulka 1 - Typy DOM uzlů Tabulka 2 - XJC prvky

11 1 Úvod Ve své bakalářské práci se budu zabývat vytvořením programového generátoru trendů náhrady fyzických senzorů. Cílem práce je realizace softwarového generátoru časových trendů podle scénářů zadaných lomenou čarou, pro trendy, jednotlivé trendy budou mít zobrazitelný výstup, pro trendy bude možno zapnout rušení. Vstupní a výstupní trendy budou využívat formát XML, cílem práce je též návrh schémat pro tyto dokumenty. Práce obsahuje část teoretickou a praktickou. Teoretická část se zaměřuje na vysvětlení pojmu trend a proces jeho generování, součástí jsou popisy rušení a konkrétních rozdělení pravděpodobností, z nichž jsou generovány. Dále seznamuje se značkovacím jazykem XML a jeho strukturou, porovnává ho s binárními formáty, zabývá se schémovými jazyky (DTD, XSD, RNG) používanými pro omezení XML dokumentů dle požadavků a s tím související validací XML dokumentů, dalšími jazyky souvisejícími s XML dotazovacím jazykem XPath a stylovacím jazykem XSLT. Opomenuty nejsou ani techniky zpracování XML dokumentů obecně i specificky pro programovací jazyk Java. Popsány jsou různé typy parserů lišící se přístupem jak k XML dokumentům, tak k jejich reprezentaci v paměti. Praktická část se zaměřuje na konkrétní realizaci programového generátoru trendů, a tedy popisuje jak naprogramované třídy, jejich vzájemné vztahy a jejich účel, ale i algoritmy použité pro zarušení průběhu a postupy pro generování trendů v reálném čase. 10

12 2 Trendy 2.1 Definice a využití Trend je určité směřování v čase, typickým příkladem trendu je vývoj ceny akcií na burze, jejich denní prodej nebo nákup, teplota, tlak, vlhkost, rosný bod a další. Trendem může být vývoj jakékoli sledované hodnoty v čase. Vygenerovaný trend lze použít jako náhrada reálných vstupních dat pro aplikace, které zobrazují, analyzují, ukládají či jinak využívají vstupní data měnící se v čase. Body trendu je možno vygenerovat najednou či průběžně. Průběžné generování trendu odpovídá situaci, kdy trend neznáme dopředu a postupně získáváme nové hodnoty. Vygenerování celého trendu odpovídá situaci, kdy je nám trend dopředu známý celý průběh trendu můžeme zpracovávat najednou. Obrázek 1 - Teplotní trendy Historická minima a maxima Programový generátor trendů Účelem generátoru trendů je vytvořit na základě trendů zadaných lomenou čarou podrobnější trendy s možností zarušení průběhu. Např. vstupní XML soubor popisuje trend obsahující teploty naměřené v rozmezí jedné hodiny, a programový generátor trendů z něj vytvoří trend sestávající se z hodnot s odstupem jedné minuty. Takto vygenerovaný trend lze dále použít pro různé účely. 2 Zdrojová data: 11

13 2.3 Zadávání a generování Trend je určen veličinou a jednotlivými body trendu. Body jsou zadány hodnotou a časem, kdy hodnota nastala. Body lze opatřit textovým popisem. Generování výstupního trendu bez rušení je doplněním bodů na spojnice mezi body vstupního trendu tzv. lomené čáry. V případě rušení je hodnota každého dopočteného bodu trendu určena součtem vypočtené hodnoty a vygenerovaného rušení z daného rozdělení pravděpodobnosti. Rušení je realizováno jako pseudonáhodná veličina spadající do některého z rozdělení pravděpodobnosti. 2.4 Implementovaná rozdělení pravděpodobnosti Alternativní Náhodný pokus má jen dva možné výsledky a pravděpodobnost výsledků je stejná. Využití je v libovolné dvoustavové situaci např. při hodu mincí jsou možnými výsledky panna a orel a pravděpodobnost obou výsledků je teoreticky shodná. Konkrétní implementace: Funkce má 2 parametry reprezentující možné výsledky, návratová hodnota funkce je rovna jednomu z nich. Alternativní rozdělení návratových hodnot je zajištěno použitím funkce java.util.random.nextboolean(). Obrázek 2 - Alternativní rušení (Nezarušená hodnota 25, Minimum -10, Maximum 10) Binomické Řada náhodných pokusů délky X. Každý pokus má dva možné výsledky 0 a 1 a ve všech pokusech je pravděpodobnost hodnoty 1 stejná. Binomické rozdělení je rozdělení nové náhodné veličiny, která je definována jako počet těchto pokusů s výsledkem 1. Jedná se tedy o četnost výskytu náhodného jevu v X nezávislých pokusech. Konkrétní implementace: Funkce má 3 parametry reprezentující minimální výsledek, maximální výsledek a pravděpodobnost jevu, návratová hodnota funkce je rovna 12

14 součtu minimálního výsledku a hodnoty z binomického rozdělení pro počet pokusů rovný rozdílu maximálního a minimálního výsledku. Obrázek 3 - Binomické rušení (Nezarušená hodnota 25, Minimum -5, Maximum 15, Odchylka 0.2) Gamma Gamma rozdělení se obvykle používá pro výpočty pojistné škody, dešťových srážek, pro zkoumání proměnných, které mohou mít asymetrické rozdělení, případně v geologii při analýze obsahu některých kovů v rudních blocích. Zdrojem algoritmu pro výpočet hodnoty z gamma rozdělení je Vladislav Vyshemirsky 3. Obrázek 4 - Gamma rušení (Nezarušená hodnota 25, Minimum -5, Maximum 15, Odchylka 0.2)

15 2.4.4 Hypergeometrické Hypergeometrické rozdělení má výsledek řady náhodných pokusů délky X, ve které je výsledek následujícího pokusu závislý na pokusu předcházejícím. Typickým příkladem je výběr prvků bez vracení. Konkrétní implementace: Funkce má 4 parametry reprezentující minimální hodnotu, maximální hodnotu, počet prvků a počet vyhovujících prvků. Počet výběrů prvků je určen jako rozdíl maximální a minimální hodnoty. Návratová hodnota je rovna součtu minimální hodnoty a počtu vybraných vyhovujících prvků s hypergeometrickým rozdělením. 4 Obrázek 5 - Hypergeometricke rušení (Nezarušená hodnota 25, Minimum -5, Maximum 10, Prvků 30, Vyhovujících 10) Normální Normální rozdělení je velmi důležité, protože se nejčastěji vyskytuje, mnoho jiných rozdělení se mu blíží a řada jiných rozdělení se jím dá nahradit. 5 Normálního (Gaussova) rozdělení nabývají náhodné chyby, některé fyzikální a technické veličiny či náhodné veličiny v ekonomii. Normální rozdělení je symetrické kolem střední hodnoty, hustota má tvar zvonu s maximem ve střední hodnotě, okraje rozdělení konvergují k ose x. Konkrétní implementace: Funkce má 3 parametry reprezentující střední hodnotu, odchylku a pro zpřesnění výpočtu přepínač sin/cos. Návratová hodnota je vypočtena pomocí Box-Müllerovy transformace 6 za pomoci vygenerovaných hodnot z rovnoměrného rozdělení pravděpodobnosti

16 Obrázek 6 - Normální rušení (Nezarušená hodnota 25, Střed 0, Odchylka 10) Poissonovo Poissonovo rozdělení je tzv. rozdělení řídkých jevů, vyjadřuje počet jevů s malou pravděpodobností výskytu v určitém časovém/objemovém kvantu. Často se využívá pro aproximaci binomického rozdělení při velkém počtu pokusů a malé pravděpodobnosti výskytu jevu (při více jak třiceti pokusech). Poissonovo rozdělení mají i odhady příchodů zákazníků, počet automobilů projíždějících konkrétním místem, počet telefonních hovorů v call centru, počet mutací v úseku DNA či počet branek během fotbalového zápasu. 7 Zdrojem algoritmu pro výpočet hodnoty z Poissonova rozdělení je Donald E. Knuth 8. Obrázek 7 - Poissonovo rušení (Nezarušená hodnota 25, Minimum 2, Odchylka 0.5)

17 2.4.7 Rovnoměrné Rovnoměrného rozdělení nabývají například chyby při zaokrouhlování čísel, chyby při odečítání údajů z lineárních měřicích přístrojů, doby čekání na uskutečnění jevu opakujícího se v pravidelných intervalech. 9 Náhodný pokus má X možných výsledků, které jsou všechny stejně pravděpodobné. Hodnota rušení R z intervalu omezeného dolní mezí D a horní mezí H je rovna D + (H - D) * <0,1>. Konkrétní implementace: Funkce má 2 parametry reprezentující minimální a maximální možnou hodnotu, návratová hodnota funkce je z rozmezí určeného těmito parametry, rovnoměrné rozdělení návratových hodnot je zajištěno použitím funkce java.util.random.nextdouble() která vrátí hodnotu z intervalu od 0 do 1 včetně z rovnoměrného rozdělení pravděpodobnosti. Obrázek 8 - Rovnoměrné rušení (Nezarušená hodnota 25, Minimum -10, Maximum 10) Trojúhelníkové Typickým využitím je popis populace na základě neúplných či nedostatečně rozsáhlých údajů. Je založena na znalosti minima, maxima a odhadu modální hodnoty. Je užitečná v případech, kde jsou vztahy mezi veličinami známé, ale přesná data jsou vzácná/drahá. Používá se jako náhrada Beta distribuce v PERT, CPM a dalších nástrojích pro správu projektů. Zdroj algoritmu pro výpočet hodnoty z trojúhelníkového rozdělení je Brighton Webs Ltd

18 Obrázek 9 - Trojúhelníkové rušení (Nezarušená hodnota 25, Minimum -5, Maximum 10, Střed 0) 17

19 3 XML 3.1 Obecně XML rozšiřitelný značkovací jazyk je jedním z nejdůležitějších standardů pro výměnu strukturovaných dat. XML popisuje data nezávisle na platformě ve formě čitelné i lidem. Této univerzálnosti dosahuje použitým formátem dat, jedná se o textové informace a tedy XML soubor je souborem textovým. Textem jsou jak značky, tak samotná data, a součástí souboru je hlavička informující o použitém kódování znaků. 3.2 Struktura XML souboru XML soubor tvoří stromovou strukturu začínající deklarací (druhá verze jazyka, kódování znaků) s jedním kořenovým elementem a libovolným počtem vnořených elementů. Každý element je ohraničený tagy a musí být uzavřený (u prázdných elementů je možno využít zkrácené formy). Element může obsahovat další atributy hodnota atributu je uzavřená do uvozovek. V XML souboru je nutné důsledně dodržovat nepřekrývání tagů (nekřížení). Název elementu musí začínat písmenem či podtržítkem; povoleny jsou: písmena, číslice, pomlčky, tečky, podtržítka; zakázány jsou: mezery, při použití jmenných prostorů se používá dvojtečka. Obrázek 10 - XML soubor 3.3 Porovnání s binárními formáty Oproti binárním formátům netrpí XML formát omezeným rozsahem čísel, k uchovávání záporných čísel nepotřebuje doplňkový kód a při ukládání čísel odpadají starosti s pořadím bajtů v závislosti na big-endian/little-endian na různých platformách (závisí jak hardware, tak software). XML je otevřeným formátem, značky jsou doplnitelné podle potřeby, mají pevnou gramatiku (stejně jako HTML) proto lze oproti binárním formátům snadno kontrolovat strukturu a částečně i obsah XML souborů. Tomu odpovídá i skutečnost, že název značky popisuje význam uložených dat (dle autora dokumentu), což je hlavním rozdílem oproti HTML, kde značka určuje, jak se obsah zobrazí. Binární formáty nejsou srozumitelné bez detailní znalosti vnitřní struktury formátu. 18

20 Nevýhodou je výrazně větší velikost XML souboru oproti binárnímu souboru při ukládání stejných dat, z toho plyne omezení použití XML formátu pro data s rozsáhlými bitovými sekvencemi není vhodný pro ukládání audiovizuálních dat, také není optimální pro značně obsáhlé dokumenty (stovky MB). Dle Herouta se jedná o řádový rozdíl v neprospěch XML souborů. 3.4 DTD, XSD schémata Pomocí schémových jazyků (též schémat) se definuje nový značkovací jazyk. (HEROUT, 2007) Význam schémat spočívá v omezení možností XML podle našich požadavků. Tedy v XML souboru mohou být pouze elementy popsané v příslušném schématu. Tato omezení snižují pravděpodobnost chyb, umožňují lepší kontrolu dat nad rámec prostého formátování dokumentu a usnadňují další práci s daty obsaženými v souboru DTD DTD definice typu dokumentu jde o první schémový jazyk, v dnešní době již vytlačován novějšími jazyky, nemá nejlepší pověst Je považován za největší chybu ve vývoji XML. (HEROUT, 2007) Jedinou výhodou DTD je množství aplikací, které tento jazyk podporují, nevýhody převažují a tento jazyk není vhodný pro datově orientované dokumenty. Mezi nevýhody patří zcela odlišná syntaxe, která znesnadňuje kontrolu správnosti DTD souborů, nemožnost popsat datové typy a absence podpory jmenných prostorů. Obrázek 11 - DTD schéma XSD XSD definice schématu XML jedná se o významný a široce podporovaný schémový jazyk. Oproti DTD dodržuje jazyk XSD konvence XML, což umožňuje snadnou validaci, umožňuje definici vlastních datových typů a podporuje jmenné prostory. Nevýhodou jazyku XSD je složitá specifikace a skutečnost, že u jednodušších XML dokumentů může přesáhnout velikost definičního XSD souboru velikost XML souboru. Obrázek 12 - XSD schéma je XSD schéma popisující XML soubor na Obrázek 10 - XML soubor. 19

21 Obrázek 12 - XSD schéma Konkurenty jazyku XSD jsou především RNG a částečně jazyk Schematron. Jazyk Schematron je v současnosti spíše doplněním jazyků XSD a RNG, jeho síla spočívá v možnosti kontroly obsahu elementů za pomoci jazyka XPath. Obrázek 13 - RNG schéma 3.5 XPath Dotazovací jazyk XPath se používá k identifikaci částí XML souboru. Hlavními kritérii, která XPath používá při odkazování, jsou pozice, relativní pozice, typ a obsah elementu/atributu. Výrazy XPath mohou odkazovat např. na první výskyt elementu, na element obsahující zadaný řetězec nebo na konkrétní atribut. Výrazy XPath nacházejí 20

22 uplatnění při vyhledání a výběru konkrétních elementů ze vstupního souboru, které mají být dále zpracovány využívá se při XSL transformaci. 3.6 XSLT Jednou z výhod XML je důsledné oddělení obsahu od zobrazení, o tom, jak se data reprezentovaná v souboru zobrazí, XML nic neříká, o vzhled se starají stylové jazyky. XSLT je v podstatě šablonou stylu, kterou XSLT procesor porovná s elementy XML souboru. V případě, že je nalezena shoda (pomocí XPath), je zapsaná příslušná část vstupního souboru ve formě určené šablonou do výstupního souboru. Tímto způsobem lze vstupní XML soubor převést do různých formátů např. XML soubor s jinou strukturou, HTML soubor, PDF, RTF, prostý text a další. Obrázek 14 - XSLT Tato nezávislost umožňuje dvě zajímavé aplikace můžeme pro jeden XML soubor mít více transformačních šablon a vhodnou volit podle požadované formy výstupu, a tedy zobrazení přizpůsobit účelu (webové stránky, tisk, PDF, přenosná zařízení, uložení, ), nebo můžeme pro více XML souborů mít stejnou šablonu a tímto způsobem sjednotit jejich zobrazení. 3.7 Validace XML souborů XML soubor lze snadno ověřovat nezávisle na programu, který bude soubor dále zpracovávat. Toto umožňuje kontrolu dat externím nástrojem a tedy i možnost jednodušší datové vrstvy aplikace, která XML soubor načítá. Odpovědnost za kontrolu dat má jejich poskytovatel, pokud XML soubor neprojde validací, je oprava žádána po poskytovateli toto je výhodné pro strukturovanou výměnu informací mezi aplikacemi. Úrovně validace jsou: 1) správná strukturovanost (nekřížení značek, jejich ukončení atd.) 2) správná množina definovaných značek (v DTD/XSD schématu) ve správném pořadí 3) správnost datových typů (XSD schéma) 21

23 3.8 Návrh vlastních schémat Pro návrh schémat trendů jsem se rozhodl využít jazyk XSD, jehož podpora je ve vývojovém prostředí NetBeans (6.9.1) zajištěna pomocí doplňku XML Schema and WDSL, a jenž mi umožní mapování do tříd pomocí JAXB viz část JWSDP, StAX, JAXB. Obrázek 15 Schéma pro vstupní trend design A Schéma pro vstupní trendy (viz příloha A) jsem navrhl s ohledem na požadované vlastnosti programového generátoru trendu. Vstupní XML soubor popisuje <1, ) trendů, 22

24 tyto trendy se skládají z 2 a více bodů, údaje o požadované výstupní četnosti bodů a názvu trendu. Dále obsahuje vstupní soubor údaje o jednotce, ve které jsou zadané hodnoty bodů, volitelně údaje o rušení a údaje pro zobrazení. Rušení je definováno pomocí typu rušení a vstupních parametrů nutných pro vygenerování daného rušení. Element Sestava umožňuje seskupení více trendů do jedné výstupní sestavy. (Obrázek 1 znázorňující teplotní trendy odpovídá dvěma seskupeným trendům se stejnou jednotkou ve stejné časové výseči.) Obrázek 16 - Schéma pro výstupní trend design B Pro výstupní trendy jsem navrhl dvě schémata první využívá hierarchický model vhodný pro znázornění celého trendu (viz příloha B), druhé je zaměřeno na dynamický výstup bodů trendu (viz příloha C). Schéma hierarchického modelu je velmi podobné schématu vstupních trendů, liší se pouze absencí údajů o rušení. Výstupní XML soubor podle dynamického schématu se skládá z jednoho bodu a volitelně z údajů popisujících trend (stejné jako u hierarchického schématu). To, do kterého trendu bod patří, pokud neobsahuje informace o trendu, určují atributy s informacemi o sestavě a názvu. 23

25 Obrázek 17 - Schéma pro výstupní trend - design C 3.9 Práce s XML soubory Výhodou formátu XML je snadné ověření XML dokumentů pokud je při načítání XML dokumentu validací zjištěna chyba (úroveň validace závisí např. na dostupnosti XSD souboru), s dokumentem se dále nepracuje, odpovědnost za data v XML dokumentu náleží subjektu, který XML dokument vytvořil. Toto umožňuje značné zjednodušení datové vrstvy aplikace proti aplikacím využívajícím jiné způsoby načítání dat. 24

26 4 XML a Java 4.1 Parsery Parser je nástroj, který načte a rozdělí XML dokument na jednotlivé části elementy, atributy, hodnoty. Parsery v libovolném programovacím jazyku by měli umožňovat načtení XML dokumentu ze souboru nebo vstupního proudu. Při načítání by mělo automaticky docházet ke kontrole správné struktury dokumentu, volitelně i k validaci proti schématu. Během čtení by měl zpracovat nejen části dokumentu ale i pomocná data z XML dokumentu (např. komentáře). Parser by měl poskytovat rozhraní pro přístup k načtenému dokumentu tzv. infosetu dále se pracuje přímo s elementy, atributy a hodnotami nikoliv s jejich pouhou textovou reprezentací. Parsery lze rozdělit podle rozhraní na 2 skupiny. První jsou parsery s proudovým zpracováním, druhá jsou parsery se stromovou reprezentací. Mezi parsery s proudovým zpracováním patří SAX a StAX. Stromovou reprezentaci využívají DOM a JAXB. 4.2 JAXP, JDOM JAXP a JDOM jsou rozhraní parserů pro Javu. JAXP je začleněno do Java Core API, definuje rozhraní pro práci s XML dokumenty, sjednocuje používání existujících parserů a umožňuje stejný způsob práce pro odlišné způsoby zpracování XML dokumentů. Využíváme-li rozhraní JAXP, jsme odstíněni od drobných odlišností parserů a jejich verzí. (HEROUT, 2007) JDOM není začleněno do Java Core API, zjednodušuje obecné DOM rozhraní, je navržen přímo pro Javu a tedy používá její typické vlastnosti (kolekce, přetěžování metod). JDOM dokáže číst ze SAX i DOM zdrojů a také odesílat výsledky jako DOM strom či SAX proud. 4.3 SAX Rozhraní pro SAX jsou součásti Java Core API, běžně se využívá varianta odstíněná přes JAXP. SAX zpracovává XML dokument proudově, tedy pracuje s částmi XML dokumentu při jejich načtení dochází k událostem, program na tyto události reaguje odpovídajícími metodami. V SAX není možnost návratu k již načteným částem dokumentu v průběhu parsování, v případě potřeby je nutno znovu zahájit parsování od začátku. Výhodou SAX parserů je nízká paměťová náročnost a obvykle i vyšší rychlost při zpracovávání XML dokumentů, to umožňuje načtení rozsáhlých XML dokumentů (takových, se kterými mohou mít DOM parsery potíže). 25

27 4.4 DOM Rozhraní pro DOM jsou součásti Java Core API, stejně jako u SAX se běžně využívá varianta odstíněná přes JAXP. DOM načítá celý XML dokument do paměti ve formě stromová reprezentace, jednotlivé uzly stromu jsou objekty (tzv. nody). Typy uzlů jsou uvedeny níže v Tabulka 1. Nevýhodou DOM jsou vysoké paměťové nároky a pomalejší načítání větších XML dokumentů. Výhodou je možnost opakovaného přístupu k již načteným částem při zpracování údajů můžeme libovolně vracet, přeskakovat nepotřebné části, tj. obecné se pohybovat po stromu. (HEROUT, 2007). V paměti lze XML dokument upravit a pomocí DOM zapsat do souboru. Tabulka 1 - Typy DOM uzlů 11 Typ uzlu Popis Potomci Document Reprezentuje celý dokument Element (jeden), ProcessingInstruction, Comment, DocumentType DocumentFragment Reprezentuje odlehčenou část dokumentu - fragment Element, ProcessingInstruction, Comment, Text, CDATASection, EntityReference DocumentTypev Rozhraní pro entity definované v - dokumentu ProcessingInstruction Instrukce pro zpracování - EntityReference Reprezentuje referenci na entitu Element, ProcessingInstruction, Comment, Text, CDATASection, EntityReference Element Reprezentuje jeden element Element, Text, Comment, ProcessingInstruction, CDATASection, EntityReference Attr Reprezentuje jeden atribut Text, EntityReference Text Text v elementu či atributu - CDATASection Reprezentuje v dokumentu sekci - CDATA, nezpracovává ji parser Comment Komentář - Entity Reprezentuje jednu entitu Element, ProcessingInstruction, Comment, Text, CDATASection, EntityReference Notation Notace deklarovaná v DTD - 11 Překlad z tutoriálu 26

28 4.5 JWSDP, StAX, JAXB JWSDP obsahuje důležité technologie pro webové služby, mezi nimi se mimo jiné nacházejí i StAX a JAXB. Od verze Javy 1.6 se tyto technologie nacházejí již v Java Core API. StAX (dříve také znám jako JSR 173, Zephyr či SJSXP) je rozhraní pro sekvenční čtení a zápis XML dokumentů. StAX nabízí dvě možnosti jak přistupovat k XML dokumentům kurzorově a událostně. Jedná se o velmi rychlé a jednoduché rozhraní, které umí XML dokumenty jak načítat tak vytvářet. Stejně jako SAX může být využíván pro načtení rozsáhlých XML dokumentů, ale práce s textovým obsahem je jednoduší. StAX načítá XML dokument na vyžádání (pamatuje si poslední pozici) na rozdíl od SAX, kde je nutné načíst celý dokument. StAX nevaliduje XML dokumenty a případné uvedené schéma ignoruje. Jeho jednoduchost je výhodou i při zápisu XML dokumentů pomocí StAX je možné vytvořit XML dokumenty značně větší než pomocí DOM. JAXB se liší od dříve zmíněných parserů. XML dokument je načten a přemapován do odpovídajících tříd využívají se detailní informace z XSD schéma popisujícího dokument k automatickému vygenerování odpovídajících tříd. JAXB je vhodné pokud dopředu známe XSD schéma, XML dokument je strukturovaný (případně s opakujícími se informacemi), dokument je potřeba načítat a upravovat a pokud dokument není příliš velký. Výhodou JAXB přístupu je skutečnost, že po načtení dokumentu (unmarshall) již pracujeme odstínění od XML pouze s třídami v Javě. Načtený objekt lze snadno upravovat (např. setry a getry) a validovat. Opačný proces se nazývá marshall, jedná se o převedení dat z tříd zpět do XML dokumentu. Obrázek 18 - JAXB 27

29 Generování tříd z XSD schéma má na starosti schema compiler (XJC), tento převod je jednorázový, dále se pracuje s takto vytvořenými třídami. Níže uvedená Tabulka 2 zachycuje některé příklady mapování prvků z XSD schéma Tabulka 2 - XJC prvky XSD prvek xsd:string xsd:datetime xsd:double xsd:unsignedint xsd:boolean xsd:anysimpletype xsd:decimal Java prvek java.lang.string javax.xml.datatype.xmlgregoriancalendar double long boolean java.lang.object/ java.lang.string java.math.bigdecimal Obrázek 19 XJC převod z XSD schéma pro výstupní trendy (Příloha B) 28

30 Konkrétní implementace: Pro zpracování XML dokumentů jsem zvolil JAXB na základě toho, že byly splněny podmínky, při kterých je použití JAXB výhodné XML dokumenty jsou strukturované, aplikace je bude načítat, upravovat a ukládat, a jejich XSD schémata jsou známá dopředu. Obrázek 19 ukazuje, jak vypadají vygenerované třídy pro dříve výstupní schéma (grafická reprezentace schématu viz Obrázek 16). Součástí vygenerovaných tříd je i třída ObjectFactory jejím účelem je tvoření nových instancí mapovaných tříd. Třídy jsem samozřejmě vygeneroval i pro vstupní schéma. Tyto vytvořené třídy využívám ve vlastních třídách, jejichž popis následuje v části Implementace. 29

31 5 Implementace Programový generátor trendů jsem implementoval dle zásad objektově orientovaného programování za pomoci vývojových iteračních cyklů. Třídy jsou seskupeny v balíčcích a jejich metody jsou okomentovány dle pravidel javadoc. 5.1 Balíčky tříd a jejich vztahy Trendy Balíček trendy (odpovídá první iteraci převod vstupního trendu na výstupní) obsahuje třídy JGTrend, VstupniBodComparator a JPrevodZeVstupuNaVystup. Obrázek 20 - Trendy a převodník Třída JGTrend se stará o interakce s vstupním a výstupním XML souborem, vytváří pro jednotlivé trendy převodníky (instance třídy JPrevodZeVstupuNaVystup) a obsahuje proceduru pro převedení trendů. 30

32 Třída JPrevodZeVstupuNaVystup se stará o samotný převod jednoho trendu včetně rušení. Převod probíhá postupně - mezi jednotlivými vstupními body je vygenerován odpovídající počet výstupní bodů se zadanou četností, jejich hodnota je dopočtena ze spojnic hodnot mezi body a případné hodnoty rušení z daného rozdělení pravděpodobnosti. Třída VstupniBodComparator slouží k setřídění kolekce vstupních bodů podle času Rušení Balíček ruseni obsahuje interface RuseniInterface, abstraktní třídu RuseniAbstract, která implementuje RuseniInterface, a potomky třídy RuseniAbstract pro jednotlivá rušení RovnomerneRuseni, NormalniRuseni, AlternativniRuseni a další. Obrázek 21 - Rušení RuseniInterface obsahuje pouze funkci generujruseni(), která vygeneruje hodnotu spadající do rozdělení pravděpodobnosti dle konkrétního implementovaného rozdělení. Abstraktní třída RuseniAbstract umožňuje vybrat správnou třídu (jednoho z potomků) za běhu programu. Třídy AlternativniRuseni, BinomickeRuseni, GammaRuseni, NormalniRuseni, HypergeometrickeRuseni, PoissonovoRuseni, RovnomerneRuseni a TrojuhelnikoveRuseni jsou potomky třídy RuseniAbstract, pro vygenerování rušení obsahují instance třídy Random a v zděděné funkci generujruseni() algoritmus pro dané rozdělení. 31

33 5.1.3 Realný čas Balíček realtime (odpovídá druhé iteraci převod vstupu na výstup postupně v čase) obsahuje třídy JGTrendVRealnemCaseActionListener, JGTrendVRealnemCase, JPrevodZeVstupuNaVystupVRealnemCase a JSestava. Obrázek 22 - Převod trendu v reálném čase 32

34 Třída JGTrendVRealnemCase je potomkem třídy JGTrend, rozšiřuje její možnosti o seskupení trendů do sestav (instancí JSestava) a o generování výstupních trendů v čase. K tomu využívá časovač (instanci třídy Timer); procedury startcasovac() a stopcasovac() a posluchač událostí časovače JGTrendVRealnemCaseActionListener. Posluchač událostí je asociován s instancí JGTrendVRealnemCase, ve své proceduře actionperformed() volá funkci generujvrealnemcase() asociované instance a zastavuje časovač při dosažení konce všech sestav. Funkce generujvrealnemcase() generuje body pro uplynulý časový úsek pro všechny sestavy, její návratová hodnota je rovna true dokud nejsou sestavy u konce. Třída JSestava seskupuje trendy (resp. Jejich převodníky pro reálný čas) náležící do stejné sestavy (instance třídy JPrevodZeVstupuNaVystupVRealnemCase), obsahuje atributy potřebné pro převod v reálném čase počátek a konec trendů v sestavě; poměr času; aktuální čas v průběhu převodu. Stejně jako třída JGTrendVRealnemCase obsahuje funkci generujvrealnemcase(), která generuje body pro uplynulý časový úsek pro všechny trendy sestavy, její návratová hodnota je rovna true dokud nejsou sestavy u konce. Třída JPrevodZeVstupuNaVystupVRealnemCase je potomkem třídy JPrevodZeVstupuNaVystup, rozšiřuje její možnosti o převod trendu v reálném čase. Toho je dosaženo LinkedListem nastalých bodů trendu a atributem obsahujícím informaci o změně. Samotný převod realizuje funkce aktualizace(), jejímž parametrem je kalendářní údaj místo v trendu ke kterému má být trend vygenerován; návratová hodnota je rovna true dokud není trend u konce Graf Balíček gui (odpovídá třetí iteraci postupné zobrazení převedeného trendu pomocí knihovny JFreeChart) obsahuje třídy JGUIActionListener, JGUISestava a JGUITrend. 33

35 Obrázek 23 - Vytvoření grafu z trendů Třída JGUISestava se stará o převedení trendů sestavy (instance třídy JGUITrend) na grafy (instance třídy JFreeChart). Funkce vytvorgraf() kompletuje datové řady jednotlivých trendů (instance třídy TimePeriodValues) do jednoho grafu, trendy jsou odlišeny barevně včetně legendy; trendy mají vlastí osy a popisky veličin. Aktualizaci grafu v reálném čase obstarává posluchač událostí časovače JGUIActionListener. Posluchač událostí JGUIActionListener naslouchá stejnému časovači jako posluchač událostí JGTrendVRealnemCaseActionListene; je asociován s instancí JGUISestava; ve své proceduře actionperformed() volá proceduru aktualizace() asociované instance. Procedura aktualizace() doplní datové řady trendů o nově vygenerované body vzniklé pomocí funkce aktualizace() třídy JPrevodZeVstupuNaVystupVRealnemCase. Třída JGUITrend převádí nastalé body trendu získané z převodníku (instance JPrevodZeVstupuNaVystupVRealnemCase) do formy datové řady. 34

36 5.1.5 Vzájemné vztahy Pro lepší orientaci popisuje níže uvedený obrázek (Obrázek 24) asociace a dědičnosti výše zmíněných tříd. Obrázek 24 - Vzájemné vztahy tříd 5.2 JFreeChart JFreeChart je knihovna pro tvorbu grafů napsaná v jazyce Java, dostupná pod LGPL licencí. Tato knihovna implementuje mnoho typů grafů, grafy podporují Swingové komponenty a převod na vektorovou či bitmapovou grafiku. JFreeChart lze 35

37 použít v aplikacích, appletech, servletech a JSP. 12 Aktuální a tedy i použitou verzí knihovny je , dále je nutno použít knihovnu JCommon (verze ). Konkrétní implementace: Použil jsem graf typu TimeSeriesChart typ grafu používaný pro kolekce dat reprezentující čas (osa X) a hodnotu (osa Y). V případě sestavy s více trendy obsahuje vytvořený graf odpovídající počet Y os pro hodnoty bodů v trendech. Jednotlivé trendy jsem odlišil barevně a orientaci usnadňuje legenda. Pro zobrazení grafu jsem využil Swingové komponenty. Zobrazení v reálném čase je řešeno přidáním nově nastalých bodů do kolekce zdrojových dat pro graf. 5.3 Generování v reálném čase První důležitou hodnotou je odstup bodů v trendu je určen ve vstupním XML dokumentu. Druhou důležitou hodnotou je poměr reálného času proti času generovaného trendu tento poměr určuje proměnná pomercasu v třídě JSestava pro všechny trendy zahrnuté v dané sestavě. V navržené podobě je minimální odstup mezi body v trendu 1 sekunda, výchozí přepočet pro sestavy je 1 sekunda reálného času rovna 3600 sekundám (1 hodině) v sestavě. V současné podobě nelze pracovat v řádu menším, než jsou sekundy, granularita časovače je 1 milisekunda, takže případná modifikace je možná, pro práci v nanosekundách by bylo nutno implementovat nanosekundový časovač s nižší granularitou. Časovače trendů jsou použity nejen pro JGTrendVRealnemCaseActionListener starající se o pravidelné generování bodů, ale i pro JGUIActionListener mající na starosti aktualizaci výstupního grafu zachycujícího průběh trendů. 5.4 Statické a dynamické třídy rušení, singleton V části Implementovaná rozdělení pravděpodobnosti jsou popsány algoritmy pro generování hodnot z těchto rozdělení. Původně jsem implementoval tyto algoritmy do statických metod třídy JRuseni (viz Obrázek 25). Výhodou byla možnost využívat metody bez potřeby instance této třídy. Později jsem se rozhodl přiklonit k dynamickým třídám a využití polymorfismu vzhledem k lepším možnostem znovupoužití zdrojového kódu a snadnější rozšiřitelnosti o další rozdělení pravděpodobnosti. Toho je dosaženo pomocí abstraktní třídy implementující rozhraní obsahující metodu pro získání hodnoty rušení (viz Obrázek 21). Další zvažovanou možnosti byl návrhový vzor singleton, ale vzhledem k jeho problematické implementaci v jazyce Java jsem od této možnosti upustil

38 5.5 Swingová aplikace Obrázek 25 - Statická třída JRuseni Obrázek 26 - Okno aplikace 37

39 Pro implementaci GUI jsem použil Swing v kombinaci s JFreeChart knihovnou pro vykreslení průběhu trendů. Hlavním ovládacím prvkem je aplikační menu obsahující položky seřazené dle kategorií. V nabídce Soubor se nacházejí metody pro načtení a uložení XML dokumentů, a pro ukončení aplikace. V nabídce Trendy jsou metody pro spuštění a zastavení generování trendu, pro generování celého trendu najednou, dále metoda pro transformaci vstupního trendu pomocí XSLT do HTML dokumentu a jeho následné zobrazení. V nabídce Trendy je též dynamicky generovaná struktura informující o aktuálních nastaveních poměrů časů pro jednotlivé sestavy a obsahující metodu pro zobrazení dialogu umožňujícího změnit tyto poměry v průběhu generování. V nabídce Informace jsou metody pro zobrazení informací o aplikaci a pro zobrazení nápovědy. Samotné vykreslení průběhu grafu je realizováno na swingovou komponentu JTabbedPane, pro sestavy ze vstupního trendu je vytvářen odpovídající počet záložek, každá z nich obsahuje právě jeden JFreeChart graf zachycující průběh generovaných trendů. Graf je generován třídou JGUISestava z balíčku gui. Swingová aplikace je umístěna v balíčku gui.swing. Součástí balíčku jsou kromě hlavní třídy JGTrendGUI i třídy PomerCasuDialog, InformaceDialog, XSLTDialog a XMLFileFilter. PomerCasuDialog je třída implementující dialog pro změnu poměru reálného času ke generovanému v sestavách, třída InformacDialog zobrazuje informace o aplikaci, třída XSLTDialog má na starosti XSLT transformaci XML dokumentu a jeho zobrazení ve formě HTML a třída XMLFileFilter slouží pro odfiltrování nevyhovujících souborů při načítání akceptovány jsou pouze soubory s příponou xml. 38

40 6 Závěr Tato bakalářská práce měla za cíl realizaci softwarového generátoru časových trendů podle scénářů zadaných lomenou čarou. V teoretické části jsem popsal pojem trend, věnoval jsem pozornost popisu procesu generování hodnot a s tím souvisejícím rušením a tedy jsem popsal jednotlivá rozdělení pravděpodobnosti včetně algoritmů. Dále jsem v teoretické části shrnul informace o XML formátu a k němu přidružením technologiím jako jsou schémové jazyky (DTD, XSD, RNG), dotazovací jazyk XPath, transformační jazyk XSLT. Neopomněl jsem ani obecné informace o práci s XML dokumenty a jejich validaci. Posléze jsem zpracoval přehled integrace technologie XML do jazyka Java, který zahrnuje popis parserů a rozhraní implementovaných v Javě (SAX, DOM, StAX, JAXB, JAXP, JDOM). V praktické části jsem realizoval programový generátoru trendů splňující kritéria zadání, jeho vývoj probíhal v iteračních cyklech s využitím technik z OOP ve vývojovém prostředí NetBeans Součástí realizace jsou XSD schémata pro XML dokumenty trendů, zdrojové kódy v jazyce Java tvořící dohromady Java aplikaci postavenou nad Swingem a JFreeChartem a dokumentace k aplikaci. Aplikace generuje trendy v reálném čase a zobrazuje jejich průběh. V implementaci generování v reálném čase je prostor pro případné zjemnění granularity při případném využití nanosekundových časovačů. Byť nad rámec zadání, považuji za neúspěch nefunkčnost XSLT transformace v aplikaci i přes skutečnost že ve vývojovém prostředí je XSL šablona validována a otestována nad stejným XML dokumentem. Osobním přínosem této práce pro mě byla možnost projít vývojovým cyklem aplikace v jazyce Java. Dále jsem se seznámil s velkým množstvím nových technologií, např. XSD, XSLT, XPath, JAXB a měl jsem možnost aplikovat znalosti a postupy z oblasti OOP. 39

41 Literatura GUNDERLOY, Mike Z kodéra vývojářem : Nástroje a techniky pro opravdové programátory. Brno : Computer Press, ISBN HEROUT, Pavel Java a XML. České Budějovice : Kopp, ISBN PAGE-JONES, Meilir Základy objektově orientovaného návrhu v UML. Praha : Grada, ISBN X. PATTON, Ron Testování softwaru. Brno : Computer Press, ISBN PECINOVSKÝ, Rudolf Návrhové vzory : 33 vzorových postupů pro objektové programování. rno : Computer Press, ISBN

42 Příloha A XSD schéma pro vstupní trendy <?xml version="1.0" encoding="utf-8"?> <xsd:schema xmlns:xsd=" targetnamespace=" xmlns:tns=" elementformdefault="qualified"> <xsd:element name="jgtrend-vstup"> <xsd:complextype> <xsd:sequence maxoccurs="unbounded"> <xsd:element name="trend"> <xsd:complextype> <xsd:sequence> <xsd:element name="nazev" type="xsd:string"/> <xsd:element name="osamin" type="xsd:int"/> <xsd:element name="osamax" type="xsd:int"/> <xsd:element name="jednotka" type="xsd:string"/> <xsd:element name="cetnost" type="xsd:int"/> <xsd:element name="sestava" type="xsd:int"/> <xsd:element name="ruseni" minoccurs="0"> <xsd:complextype> <xsd:sequence> <xsd:element name="typ" type="xsd:string"/> <xsd:element name="min" minoccurs="0" type="xsd:double"/> <xsd:element name="stred" minoccurs="0" type="xsd:double"/> <xsd:element name="max" minoccurs="0" type="xsd:double"/> <xsd:element name="odchylka" minoccurs="0" type="xsd:double"/> </xsd:sequence> </xsd:complextype> </xsd:element> <xsd:element name="prubeh"> <xsd:complextype> <xsd:sequence maxoccurs="unbounded" minoccurs="2"> <xsd:element name="bod"> <xsd:complextype> <xsd:sequence> <xsd:element name="cas" type="xsd:datetime"/> <xsd:element name="hodnota" type="xsd:double"/> <xsd:element name="popisek" type="xsd:string"/> </xsd:sequence> </xsd:complextype> </xsd:element> </xsd:sequence> </xsd:complextype> </xsd:element> </xsd:sequence> </xsd:complextype> </xsd:element> </xsd:sequence> </xsd:complextype> </xsd:element> </xsd:schema> 41

43 Příloha B XSD schéma pro výstupní trendy 1. varianta <?xml version="1.0" encoding="utf-8"?> <xsd:schema xmlns:xsd=" targetnamespace=" xmlns:tns=" elementformdefault="qualified"> <xsd:element name="jgtrend-vystup"> <xsd:complextype> <xsd:sequence maxoccurs="unbounded" minoccurs="1"> <xsd:element name="trend"> <xsd:complextype> <xsd:sequence> <xsd:element name="nazev" type="xsd:string"> </xsd:element> <xsd:element name="osamin" type="xsd:int"/> <xsd:element name="osamax" type="xsd:int"/> <xsd:element name="jednotka" type="xsd:string"> </xsd:element> <xsd:element name="sestava" type="xsd:int"/> <xsd:element name="prubeh"> <xsd:complextype> <xsd:sequence minoccurs="2" maxoccurs="unbounded"> <xsd:element name="bod"> <xsd:complextype> <xsd:sequence> <xsd:element name="hodnota" type="xsd:double"> </xsd:element> <xsd:element name="popisek" type="xsd:string"/> <xsd:element name="cas" type="xsd:datetime"/> </xsd:sequence> </xsd:complextype> </xsd:element> </xsd:sequence> </xsd:complextype> </xsd:element> </xsd:sequence> </xsd:complextype> </xsd:element> </xsd:sequence> </xsd:complextype> </xsd:element> </xsd:schema> 42

44 Příloha C XSD schéma pro výstupní trendy 2. varianta <?xml version="1.0" encoding="windows-1250"?> <xsd:schema xmlns:xsd=" targetnamespace=" xmlns:tns=" elementformdefault="qualified"> <xsd:element name="jgtrend-vystup-prubezny"> <xsd:complextype> <xsd:sequence> <xsd:element name="trend" minoccurs="0"> <xsd:complextype> <xsd:sequence> <xsd:element name="osamin" type="xsd:int"/> <xsd:element name="osamax" type="xsd:int"/> <xsd:element name="jednotka" type="xsd:string"/> <xsd:element name="název" type="xsd:string"/> <xsd:element name="sestava" type="xsd:int"/> </xsd:sequence> </xsd:complextype> </xsd:element> <xsd:element name="bod"> <xsd:complextype> <xsd:sequence> <xsd:element name="hodnota" type="xsd:double"/> <xsd:element name="popisek" type="xsd:string"/> <xsd:element name="cas" type="xsd:datetime"/> </xsd:sequence> </xsd:complextype> </xsd:element> </xsd:sequence> <xsd:attribute name="sestava" type="xsd:int" use="required"/> <xsd:attribute name="název" type="xsd:string" use="required"/> </xsd:complextype> </xsd:element> </xsd:schema> 43

45 Příloha D Popis instalace, nastavení vývojového prostředí Vývojové prostředí NetBeans IDE s JDK 6. V menu Tools -> Libraries přidat do Class Libraries knihovnu JCommon jcommon a knihovnu JFreeChart jfreechart Pro práci s XML, XSD a XSLT v menu Tools -> Plugins nainstalovat plugin XML Schema and WSDL (verze 1.3 pro NetBeans IDE 6.9.1, Build ). Aplikace Pro spuštění aplikace je potřeba JRE 6. Na přiloženém CD jsou umístěny jak instalační soubory pro vývojové prostředí a knihovny, tak zdrojové kódy aplikace, javadoc nápověda a XML/XSD/XSLT dokumenty. 44

POLOPROVOZ ZNALOSTNÍ DATABÁZE INTERPI DOKUMENTACE

POLOPROVOZ ZNALOSTNÍ DATABÁZE INTERPI DOKUMENTACE POLOPROVOZ ZNALOSTNÍ DATABÁZE INTERPI DOKUMENTACE INTERPI Interoperabilita v paměťových institucích Program aplikovaného výzkumu a vývoje národní kulturní identity (NAKI) (DF11P01OVV023) Zpracovali: Marie

Více

Práce se soubory opakování

Práce se soubory opakování Práce se soubory Práce se soubory opakování Nízko-úrovňové (C-čkové) API. fopen(), fread(), fwrite(), fclose() S daty se manipuluje přes řetězce. Manipulace s celým souborem najednou. fpassthru(), readfile()

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

XML Š ABLONY A JEJICH INTEGRACE V LCMS XML TEMPLATES AND THEIN INTEGRATION IN LCMS

XML Š ABLONY A JEJICH INTEGRACE V LCMS XML TEMPLATES AND THEIN INTEGRATION IN LCMS XML Š ABLONY A JEJICH INTEGRACE V LCMS XML TEMPLATES AND THEIN INTEGRATION IN LCMS Roman MALO - Arnošt MOTYČKA This paper is oriented to discussion about using markup language XML and its features in LCMS

Více

Architektura aplikace

Architektura aplikace Architektura aplikace MARBES-JIRA plugin Tým: GRSS Členové: František Schneider Jaroslav Ráb Lukáš Gemela Jaromír Staněk Upravil Verze dokumentu Datum F. Schneider 1.0 25.3.2012 F. Schneider 2.0 25.4.2012

Více

XML terminologie a charakteristiky. Roman Malo

XML terminologie a charakteristiky. Roman Malo XML terminologie a charakteristiky Roman Malo XML extensible Markup Language (rozšiřitelný značkovací jazyk) Verze 1.0, 1.1 http://www.w3.org/xml Rozdíly v podpoře různých znakových sad a práci s řídícími

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

UNIVERZITA PARDUBICE. Fakulta elektrotechniky a informatiky. Informační systém realitní kanceláře Jan Šimůnek

UNIVERZITA PARDUBICE. Fakulta elektrotechniky a informatiky. Informační systém realitní kanceláře Jan Šimůnek UNIVERZITA PARDUBICE Fakulta elektrotechniky a informatiky Informační systém realitní kanceláře Jan Šimůnek Bakalářská práce 2011 Prohlášení autora Prohlašuji, že jsem tuto práci vypracoval samostatně.

Více

Rozhraní pro práci s XML dokumenty. Roman Malo

Rozhraní pro práci s XML dokumenty. Roman Malo Rozhraní pro práci s XML dokumenty Roman Malo Práce s XML dokumenty Datově a dokumentově orientované XML dokumenty Problém preference elementů a atributů Strom elementů Strom uzlů Základní zpracování dokumentů

Více

MATURITNÍ PRÁCE dokumentace

MATURITNÍ PRÁCE dokumentace MATURITNÍ PRÁCE dokumentace Jídelníček SŠIEŘ pro Android Martin Bartoň školní rok: 2012/2013 obor: třída: Počítačové systémy PS4.A ABSTRAKT Práce je zaměřená na problematiku tvorby Android aplikací,

Více

Servlety a JSP. Petr Adámek, petr.adamek@ibacz.eu

Servlety a JSP. Petr Adámek, petr.adamek@ibacz.eu Servlety a JSP Petr Adámek, petr.adamek@ibacz.eu Úvod Rekapitulace vstupních znalostí Standardy Nástroje (Běhové prostředí, nástroje pro vývoj) Servlety JSP JSP značky EL (Expression Language) Internacionalizace

Více

Unstructured data pre-processing using Snowball language

Unstructured data pre-processing using Snowball language Unstructured data pre-processing using Snowball language Předzpracování nestrukturovaných dat pomocí jazyka Snowball Bc. Pavel Řezníček, doc. Ing. František Dařena, PhD., Ústav informatiky, Provozně ekonomická

Více

Teoretické minimum z PJV

Teoretické minimum z PJV Teoretické minimum z PJV Pozn.: následující text popisuje vlastnosti jazyka Java zjednodušeně pouze pro potřeby výuky. Třída Zavádí se v programu deklarací třídy což je část programu od klíčových slov

Více

Databáze hudebních rodokmenů

Databáze hudebních rodokmenů České vysoké učení technické v Praze Fakulta elektrotechnická Bakalářská práce Databáze hudebních rodokmenů Martin Sůkal Vedoucí práce: Ing. Michal Valenta, Ph.D. Studijní program: Elektrotechnika a informatika

Více

Java a XML. 10/26/09 1/7 Java a XML

Java a XML. 10/26/09 1/7 Java a XML Java a XML Java i XML jsou přenositelné V javě existuje podpora pro práci s XML, nejčastější akce prováděné při zpracování XML: načítání XML elementů generování nových elementů nebo úprava starého zápis

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

Microsoft Office 2003 Souhrnný technický dokument white paper

Microsoft Office 2003 Souhrnný technický dokument white paper Microsoft Office 2003 Souhrnný technický dokument white paper Přehled inteligentních klientských aplikací založených na sadě Microsoft Office 2003 System Publikováno: Duben 2003 Shrnutí: Inteligentní klienti

Více

Globální architektura ROS

Globální architektura ROS Verze: 1.1 Obsah: 1. Vymezení cílů dokumentu... 4 2. Pojmy a zkratky... 5 3. Procesní architektura...10 3.1. Upřesnění struktury dokumentu:...10 3.2. Postup tvorby a použité metodiky...10 3.3. Základní

Více

API pro práci s XML. Jirka Kosek. Poslední modifikace: $Date: 2014/12/17 17:15:28 $ Copyright 2001-2014 Jiří Kosek

API pro práci s XML. Jirka Kosek. Poslední modifikace: $Date: 2014/12/17 17:15:28 $ Copyright 2001-2014 Jiří Kosek Jirka Kosek Poslední modifikace: $Date: 2014/12/17 17:15:28 $ Obsah Úvod... 3 Parsery XML... 4 Rozhraní pro přístup k dokumentu XML... 5 Další charakteristiky parseru... 6 Sekvenční čtení... 7 Push parsery...

Více

Univerzita Pardubice Fakulta elektrotechniky a informatiky

Univerzita Pardubice Fakulta elektrotechniky a informatiky Univerzita Pardubice Fakulta elektrotechniky a informatiky Podpora kreslení všech typů značek liniového charakteru v AutoCADu podle ČSN 01 3411 v jazyce C# Luděk Špetla Bakalářská práce 2009 Prohlašuji:

Více

Univerzita Pardubice Dopravní fakulta Jana Pernera

Univerzita Pardubice Dopravní fakulta Jana Pernera Univerzita Pardubice Dopravní fakulta Jana Pernera Technicko ekonomické a ekologické zhodnocení pohonu na LPG vozidla Škoda Octavia 1,6 55 kw Josef Shejbal Bakalářská práce 2009 Prohlašuji: Tuto práci

Více

KONFIGURACE SILNIČNÍCH KŘIŽOVATEK

KONFIGURACE SILNIČNÍCH KŘIŽOVATEK Mendelova zemědělská a lesnická univerzita v Brně Agronomická fakulta Ústav techniky a automobilové dopravy KONFIGURACE SILNIČNÍCH KŘIŽOVATEK Bakalářská práce Brno 2006 Vedoucí bakalářské práce: Doc. Ing.

Více

Požadavky pro výběrová řízení TerraBus ESB/G2x

Požadavky pro výběrová řízení TerraBus ESB/G2x Dokument: Převod dat TerraBus ESB/G2x Požadavky pro výběrová řízení TerraBus ESB/G2x Obsah 1. Účel dokumentu... 2 2. Použité termíny a zkratky... 2 3. Požadavky... 3 Účel dokumentu Účelem tohoto dokumentu

Více

Office 2007 Styles Autor: Jakub Oppelt Vedoucí práce: Ing. Václav Novák, CSc. Školní rok: 2009 10

Office 2007 Styles Autor: Jakub Oppelt Vedoucí práce: Ing. Václav Novák, CSc. Školní rok: 2009 10 Office 2007 Styles Autor: Jakub Oppelt Vedoucí práce: Ing. Václav Novák, CSc. Školní rok: 2009 10 Abstrakt Tato práce se zabývá novým grafickým uživatelským rozhraním, který se objevil s nástupem Microsoft

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

Univerzita Pardubice Fakulta ekonomicko-správní. Hodnocení použitelnosti webových geografických informačních systémů. Bc.

Univerzita Pardubice Fakulta ekonomicko-správní. Hodnocení použitelnosti webových geografických informačních systémů. Bc. Univerzita Pardubice Fakulta ekonomicko-správní Hodnocení použitelnosti webových geografických informačních systémů Bc. Martin Jedlička Diplomová práce 2009 Prohlášení autora Prohlašuji: Tuto práci jsem

Více

Sem vložte zadání Vaší práce.

Sem vložte zadání Vaší práce. Sem vložte zadání Vaší práce. České vysoké učení technické v Praze Fakulta informačních technologií Katedra softwarového inženýrství Bakalářská práce Tvorba formulářů z popisu v XML s použitím knihovny

Více

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

ZPRACOVÁNÍ NEURČITÝCH ÚDAJŮ V DATABÁZÍCH

ZPRACOVÁNÍ NEURČITÝCH ÚDAJŮ V DATABÁZÍCH 0. Obsah Strana 1 z 12 VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA STROJNÍHO INŽENÝRSTVÍ ÚSTAV AUTOMATIZACE A INFORMATIKY FACULTY OF MECHANICAL ENGINEERING INSTITUTE OF AUTOMATION

Více

Dotazování nad stromem abstraktní syntaxe

Dotazování nad stromem abstraktní syntaxe Fakulta jaderná a fyzikáln inºenýrská ƒeské vysoké u ení technické v Praze 3.6.2010 Osnova while 1 Reprezentace programu 2 AST a Java 3 Vyhledávání v AST 4 Aplikace body if expr Jak reprezentovat program

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

Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML

Webové služby a XML. Obsah přednášky. Co jsou to webové služby. Co jsou to webové služby. Webové služby a XML Obsah přednášky Webové služby a XML Miroslav Beneš Co jsou to webové služby Architektura webových služeb SOAP SOAP a Java SOAP a PHP SOAP a C# Webové služby a XML 2 Co jsou to webové služby rozhraní k

Více

Návrh aplikace. Project Westpon. Inteligentní simulátor budov. Martin Mudra, Jan Smejkal, Onřej Macoszek, Marek Žehra, Jiří Slivárich

Návrh aplikace. Project Westpon. Inteligentní simulátor budov. Martin Mudra, Jan Smejkal, Onřej Macoszek, Marek Žehra, Jiří Slivárich Návrh aplikace Project Westpon Inteligentní simulátor budov Martin Mudra, Jan Smejkal, Onřej Macoszek, Marek Žehra, Jiří Slivárich . Úvod.. Účel dokumentu Tento dokument má za účel detailně popsat návrh

Více

Obsah. Seznámení s prostředím Excelu. Poděkování 25 O přiloženém CD 26 Co je na CD 26 Použití CD 26 Systémové požadavky 26 Podpora 27

Obsah. Seznámení s prostředím Excelu. Poděkování 25 O přiloženém CD 26 Co je na CD 26 Použití CD 26 Systémové požadavky 26 Podpora 27 Obsah Poděkování 25 O přiloženém CD 26 Co je na CD 26 Použití CD 26 Systémové požadavky 26 Podpora 27 Konvence použité v této knize 28 Textové konvence 28 Grafické konvence 28 ČÁST 1 Seznámení s prostředím

Více

Práce s velkými sestavami

Práce s velkými sestavami Práce s velkými sestavami Číslo publikace spse01650 Práce s velkými sestavami Číslo publikace spse01650 Poznámky a omezení vlastnických práv Tento software a související dokumentace je majetkem společnosti

Více

Obsah. Předmluva 13. 1. Začínáme: překlad, spuštění a ladění 27

Obsah. Předmluva 13. 1. Začínáme: překlad, spuštění a ladění 27 Obsah Předmluva 13 Předmluva k druhému vydání 13 Předmluva k prvnímu vydání 14 Pro koho je tato kniha určena 15 Co v této knize najdete? 16 Poznámky k platformě 18 Jiné knihy 19 Konvence používané v knize

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

XML. Aleš Keprt 29.11.2005

XML. Aleš Keprt 29.11.2005 XML Aleš Keprt 29.11.2005 značkovací jazyk pro obecné použití pro vytváření speciálních značkovacích jazyků Nejčastější použití: výměna dat (při komunikaci) na internetu (společně nebo místo HTML) Je to

Více

NEXIS 32 rel. 3.50. Generátor fází výstavby TDA mikro

NEXIS 32 rel. 3.50. Generátor fází výstavby TDA mikro SCIA CZ, s. r. o. Slavíčkova 1a 638 00 Brno tel. 545 193 526 545 193 535 fax 545 193 533 E-mail info.brno@scia.cz www.scia.cz Systém programů pro projektování prutových a stěnodeskových konstrukcí NEXIS

Více

EXTRAKT z technické specifikace ISO

EXTRAKT z technické specifikace ISO EXTRAKT z technické specifikace ISO Extrakt nenahrazuje samotnou technickou normu, je pouze informativním materiálem o normě. Inteligentní dopravní systémy Dopravní a cestovní informace předávané prostřednictvím

Více

PRG036 Technologie XML

PRG036 Technologie XML PRG036 Technologie XML Přednáší: Irena Mlýnková (mlynkova@ksi.mff.cuni.cz) Martin Nečaský (necasky@ksi.mff.cuni.cz) LS 2010 Stránka přednášky: http://www.ksi.mff.cuni.cz/~mlynkova/prg036/ 1 Osnova předmětu

Více

Nástroj WebMaker TXV 003 28.01 první vydání Únor 2009 změny vyhrazeny

Nástroj WebMaker TXV 003 28.01 první vydání Únor 2009 změny vyhrazeny Nástroj WebMaker TXV 003 28.01 první vydání Únor 2009 změny vyhrazeny 1 TXV 003 28.01 Historie změn Datum Vydání Popis změn Únor 2009 1 První verze (odpovídá stavu nástroje ve verzi 1.6.2) Obsah 1 Úvod...3

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

NSWI096 - INTERNET JavaScript

NSWI096 - INTERNET JavaScript NSWI096 - INTERNET JavaScript Mgr. Petr Lasák JAVASCRIPT JAK SE DNES POUŽÍVÁ Skriptovací (interpretovaný) jazyk Umožňuje interaktivitu Použití: Dialogy Kontrola dat ve formulářích Změny v (X)HTML dokumentu

Více

Helios RED a Internetový obchod

Helios RED a Internetový obchod (pracovní verze!) Helios RED a Internetový obchod Obsah dokumetace: 1. Úvod 2. Evidované údaje na skladové kartě 3. Přenos skladových karet z Helios RED do e-shopu 4. Přenos objednávek z e-shopu do Helios

Více

Infrastruktura UML. Modelování struktury v UML. Superstruktura UML. Notace objektů. Diagramy objektů

Infrastruktura UML. Modelování struktury v UML. Superstruktura UML. Notace objektů. Diagramy objektů Infrastruktura UML v UML Karel Richta listopad 2011 Richta: B101TMM - v UML 2 Superstruktura UML Směr pohledu na systém dle UML Diagramy popisující strukturu diagramy tříd, objektů, kompozitní struktury,

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

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

UNIVERZITA PARDUBICE DOPRAVNÍ FAKULTA JANA PERNERA

UNIVERZITA PARDUBICE DOPRAVNÍ FAKULTA JANA PERNERA UNIVERZITA PARDUBICE DOPRAVNÍ FAKULTA JANA PERNERA SOFTWAROVÁ PODPORA PRO TECHNICKOU PŘÍPRAVU PROJEKTU V ELEKTRIZACI ŽELEZNIC PRAHA A.S. BC. LUKÁŠ HRON DIPLOMOVÁ PRÁCE 2008 Souhrn Tato práce si klade

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

X33EJA Web Services. Martin Ptáček, KOMIX s.r.o.

X33EJA Web Services. Martin Ptáček, KOMIX s.r.o. X33EJA Web Services Martin Ptáček, KOMIX s.r.o. ptacek@komix.cz Copyright 2007 KOMIX Copyright s.r.o. 2007 KOMIX s.r.o. 1. Obsah Historie Co jsou Web Services? Co je to SOA? JAX-WS (Java API for XML Web

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

Univerzita Pardubice Fakulta ekonomicko-správní Ústav systémového inženýrství a informatiky

Univerzita Pardubice Fakulta ekonomicko-správní Ústav systémového inženýrství a informatiky Univerzita Pardubice Fakulta ekonomicko-správní Ústav systémového inženýrství a informatiky Datová podpora na úrovni kontaktního pracoviště Úřadu práce pro státní sociální podporu Josef Hájek Bakalářská

Více

Databázový systém Matylda

Databázový systém Matylda Databázový systém Matylda Návrh softwarového projektu Vývojový tým Předpokládaný počet řešitelů: 5 Vedoucí: Mgr. Martin Nečaský Ph.D. Motivace V současné době se mnoho nákupů odehrává v internetových obchodech.

Více

Tabulkové processory MS Excel (OpenOffice Calc)

Tabulkové processory MS Excel (OpenOffice Calc) Maturitní téma: Tabulkové processory MS Excel (OpenOffice Calc) Charakteristika tabulkového editoru Tabulkový editor (sprematuritníadsheet) se používá všude tam, kde je třeba zpracovávat data uspořádaná

Více

2. Konceptuální model dat, E-R konceptuální model

2. Konceptuální model dat, E-R konceptuální model 2. Konceptuální model dat, E-R konceptuální model Úvod Databázový model souhrn prostředků, pojmů a metod, jak na logické úrovni popsat data a jejich strukturu výsledkem je databázové schéma. Databázové

Více

Nástroje a frameworky pro automatizovaný vývoj. Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/

Nástroje a frameworky pro automatizovaný vývoj. Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/ Nástroje a frameworky pro automatizovaný vývoj Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/ Proces vývoje webové aplikace Předepsaná adresářová struktura. Kompilace zdrojových kódů.

Více

Toto zadání je podepsané děkanem a vedoucím katedry, po obhajobě).

Toto zadání je podepsané děkanem a vedoucím katedry, po obhajobě). Na tomto místě bude oficiální zadání vaší práce Toto zadání je podepsané děkanem a vedoucím katedry, musíte si ho vyzvednout na studiijním oddělení Katedry počítačů na Karlově náměstí, v jedné odevzdané

Více

Jemný úvod do spracovania XML

Jemný úvod do spracovania XML Jemný úvod do spracovania XML XML štandardy - nevyhnutná súčasť moderného SW, - umožňujú lepšiu integráciu rôznych aplikácií, - štruktúrovanie údajov (typovanie, pomenovanie polí,...) - vysoká flexibilita

Více

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA INFORMAČNÍCH TECHNOLOGIÍ ÚSTAV POČÍTAČOVÉ GRAFIKY A MULTIMÉDIÍ FACULTY OF INFORMATION TECHNOLOGY DEPARTMENT OF COMPUTER GRAPHICS AND

Více

Kolaborativní aplikace

Kolaborativní aplikace Kolaborativní aplikace Michal Máčel Vema, a. s. Okružní 3a, 638 00 Brno - Lesná, macel@vema.cz Tomáš Hruška Fakulta informačních technologií Vysokého učení technického v Brně, Ústav informačních systémů,

Více

1 Úvod do kompilátorů

1 Úvod do kompilátorů 1 Úvod do kompilátorů 1.1 Úvodem několik slov Tyto texty obsahují úvod do návrhu programovacích jazyků a problematiky překladu programů. Téma pokrývá oblasti zahrnující lexikální analýzu (scanning), regulární

Více

Servisně orientovaná architektura a její aplikace v systémech sledování a řízení výroby

Servisně orientovaná architektura a její aplikace v systémech sledování a řízení výroby Servisně orientovaná architektura a její aplikace v systémech sledování a řízení výroby Marek Rychlý Vysoké učení technické v Brně Fakulta informačních technologií Ústav informačních systémů VII. ročník

Více

Technologie Java. Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/

Technologie Java. Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/ Technologie Java Jaroslav Žáček jaroslav.zacek@osu.cz http://www1.osu.cz/~zacek/ Trocha historie Java vznikla v roce 1995 jak minimalistický programovací jazyk (211 tříd). Syntaxe vycházela z C/C++. V

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

Bakalářská práce Transkripční software pro trénování ASR systémů

Bakalářská práce Transkripční software pro trénování ASR systémů Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky Bakalářská práce Transkripční software pro trénování ASR systémů Plzeň, 2012 Tomáš Kubový Prohlášení Prohlašuji,

Více

INFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE. Ing. Jaroslav Adamus. Gymnázium, SOŠ a VOŠ Ledeč nad Sázavou

INFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE. Ing. Jaroslav Adamus. Gymnázium, SOŠ a VOŠ Ledeč nad Sázavou INFORMAČNÍ A KOMUNIKAČNÍ TECHNOLOGIE Ing. Jaroslav Adamus Gymnázium, SOŠ a VOŠ Ledeč nad Sázavou REFERENČNÍ MODEL ISO/OSI VY_32_INOVACE_09_3_05_IT Gymnázium, SOŠ a VOŠ Ledeč nad Sázavou PROTOKOLY: jsou

Více

ELEKTRONICKÁ PORODNÍ KNIHA POPIS APLIKACE Michal Huptych, Petr Janků, Lenka Lhotská

ELEKTRONICKÁ PORODNÍ KNIHA POPIS APLIKACE Michal Huptych, Petr Janků, Lenka Lhotská ELEKTRONICKÁ PORODNÍ KNIHA POPIS APLIKACE Michal Huptych, Petr Janků, Lenka Lhotská Anotace Tento příspěvek popisuje aplikaci, která je převodem tzv. porodní knihy do elektronické podoby. Aplikace vzniká

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

Novinky verze SPIRIT 2015

Novinky verze SPIRIT 2015 Novinky verze SPIRIT 2015 Ostění pro okna a dveře (ZAK) Ve SPIRITu můžete použít každý ZAK komponent přímo z Prohlížeče komponentů způsobem drag and drop, kromě ostění oken a dveří. Ve SPIRITu 2015 máte

Více

Projekt inovace vzdělávání na SOŠ a SOU Horky nad Jizerou. Pokyny pro zpracování ročníkové práce z předmětu FIKTIVNÍ FIRMA. Verze 1.

Projekt inovace vzdělávání na SOŠ a SOU Horky nad Jizerou. Pokyny pro zpracování ročníkové práce z předmětu FIKTIVNÍ FIRMA. Verze 1. Projekt inovace vzdělávání na SOŠ a SOU Horky nad Jizerou Pokyny pro zpracování ročníkové práce z předmětu FIKTIVNÍ FIRMA Verze 1.1 Tento projekt byl spolufinancován Evropským sociálním fondem a státním

Více

NÁVRH A REALIZACE WWW PREZENTACE ČKR

NÁVRH A REALIZACE WWW PREZENTACE ČKR NÁVRH A REALIZACE WWW PREZENTACE ČKR Šárka Ocelková Ústav výpočetní techniky MU v Brně, Botanická 68a, 602 00 Brno, ČR E-mail: ocelkova@ics.muni.cz Abstrakt U zrodu www prezentace České konference rektorů

Více

EXTRAKT z mezinárodní normy Extrakt nenahrazuje samotnou technickou normu, je pouze informativním materiálem o normě.

EXTRAKT z mezinárodní normy Extrakt nenahrazuje samotnou technickou normu, je pouze informativním materiálem o normě. EXTRAKT z mezinárodní normy Extrakt nenahrazuje samotnou technickou normu, je pouze informativním materiálem o normě. Inteligentní dopravní systémy (ITS) Označení poloh pro geografické databáze Část 3:

Více

Webové služby. Martin Sochor

Webové služby. Martin Sochor Webové služby Martin Sochor Webové služby způsob komunikace dvou aplikací přes Web binární zprávy (CORBA) blokovány proxy servery a firewally masivní využití XML protokol SOAP + jazyk pro popis služeb

Více

Gymnázium, Praha 6, Arabská 14. Loydova patnáctka. Dokumentace ročníkového projektu. Předmět: Programování Vyučující: Ing. Tomáš Obdržálek Třída: 1.

Gymnázium, Praha 6, Arabská 14. Loydova patnáctka. Dokumentace ročníkového projektu. Předmět: Programování Vyučující: Ing. Tomáš Obdržálek Třída: 1. Gymnázium, Praha 6, Arabská 14 Loydova patnáctka Dokumentace ročníkového projektu Předmět: Programování Vyučující: Ing. Tomáš Obdržálek Třída: 1.E Jan Zaoral květen 2014 1. Úvod 1.1. Anotace Česky Cílem

Více

Systém pro automatizaci srovnávání produktů konkurence

Systém pro automatizaci srovnávání produktů konkurence Mendelova univerzita v Brně Provozně ekonomická fakulta Systém pro automatizaci srovnávání produktů konkurence Bakalářská práce Vedoucí práce: Ing. Ondřej Popelka, Ph.D. Pavel Řezníček Brno 2013 List

Více

Modelování webových služeb v UML

Modelování webových služeb v UML Modelování webových služeb v UML Jaromír Šveřepa LBMS, s.r.o. Abstrakt: Tento příspěvek se zaměřuje na praktický postup pro identifikaci potřeby webové služby, modelování způsobu jejího použití, popřípadě

Více

Semináˇr Java X J2EE Semináˇr Java X p.1/23

Semináˇr Java X J2EE Semináˇr Java X p.1/23 Seminář Java X J2EE Seminář Java X p.1/23 J2EE Složitost obchodních aplikací robusní, distribuované, spolehlivé aplikace s transakcemi na straně serveru, klientské aplikace co nejjednodušší Snaha : Návrh,

Více

Klíčová slova: OOP, konstruktor, destruktor, třída, objekt, atribut, metoda

Klíčová slova: OOP, konstruktor, destruktor, třída, objekt, atribut, metoda Anotace sady: Úvod do objektově orientovaného programování, VY_32_INOVACE_PRG_OOP_01 Autor: Blanka Sadovská Klíčová slova: OOP, konstruktor, destruktor, třída, objekt, atribut, metoda Druh učebního materiálu:

Více

RELAČNÍ DATABÁZOVÉ SYSTÉMY

RELAČNÍ DATABÁZOVÉ SYSTÉMY RELAČNÍ DATABÁZOVÉ SYSTÉMY VÝPIS KONTROLNÍCH OTÁZEK S ODPOVĚDMI: Základní pojmy databázové technologie: 1. Uveďte základní aspekty pro vymezení jednotlivých přístupů ke zpracování hromadných dat: Pro vymezení

Více

Úvod do Web Services

Úvod do Web Services Úvod do Web Services Základy webových služeb a jejich implementace na platformě OS/2 Jarda Kačer jarda@kacer.biz Český Warpstock 2008 Brno, 20.-21.9.2008 Co je to webová služba? Část business logiky přístupná

Více

10. blok Logický návrh databáze

10. blok Logický návrh databáze 10. blok Logický návrh databáze Studijní cíl Tento blok je věnován převodu konceptuálního návrhu databáze na návrh logický. Blok se věnuje tvorbě tabulek na základě entit z konceptuálního modelu a dále

Více

EXTRAKT z mezinárodní normy

EXTRAKT z mezinárodní normy EXTRAKT z mezinárodní normy Extrakt nenahrazuje samotnou technickou normu, je pouze informativním ICS 03.220.01; 35.240.60 materiálem o normě. Inteligentní dopravní systémy Požadavky na ITS centrální datové

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

Na tomto místě bude oficiální zadání vaší práce

Na tomto místě bude oficiální zadání vaší práce Na tomto místě bude oficiální zadání vaší práce Toto zadání je podepsané děkanem a vedoucím katedry, musíte si ho vyzvednout na studijním oddělení Katedry počítačů na Karlově náměstí, v jedné odevzdané

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

Studentská tvůrčí a odborná činnost STOČ 2015

Studentská tvůrčí a odborná činnost STOČ 2015 Studentská tvůrčí a odborná činnost STOČ 2015 NÁVRH A REALIZACE ALGORITMU PRO SYSTÉM LIMITNÍHO OZAŘOVÁNÍ David OCZKA Vysoká škola báňská - Technická univerzita Ostrava Fakulta elektrotechniky a informatiky

Více

Editor pro vizualizaci interiérů bytů

Editor pro vizualizaci interiérů bytů České vysoké učení technické v Praze Fakulta elektrotechnická Katedra počítačové grafiky a interakce Bakalářská práce Editor pro vizualizaci interiérů bytů Dominik Vondráček Vedoucí práce: Ing. David Sedláček

Více

Realizace komunikačního profilu a uživatelského rozhraní pro generátor síťového provozu

Realizace komunikačního profilu a uživatelského rozhraní pro generátor síťového provozu Mendelova univerzita v Brně Provozně ekonomická fakulta Realizace komunikačního profilu a uživatelského rozhraní pro generátor síťového provozu Diplomová práce Vedoucí práce: Ing. Petr Zach Bc. Rudolf

Více

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ 1) PROGRAM, ZDROJOVÝ KÓD, PŘEKLAD PROGRAMU 3 2) HISTORIE TVORBY PROGRAMŮ 3 3) SYNTAXE A SÉMANTIKA 3 4) SPECIFIKACE

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

Uživatelský manuál programu WZORKY. pro vyčítání historických databank. z regulátorů PROMOS line 2

Uživatelský manuál programu WZORKY. pro vyčítání historických databank. z regulátorů PROMOS line 2 PROMOS line 2 Uživatelský manuál programu WZORKY pro vyčítání historických databank z regulátorů PROMOS line 2 Jaselská 177, 280 02 Kolín 3 tel./fax: 321 727753 verze 1.0 09/02 2002 sdružení ELSACO 11.9.2002

Více

Tady bude oficiální zadání práce.

Tady bude oficiální zadání práce. Tady bude oficiální zadání práce. 2 České vysoké učení technické v Praze Fakulta elektrotechnická Bakalářská práce Generátor řídkých matic Tomáš Bílek Vedoucí práce: Ing. Ivan Šimeček, Ph.D. Studijní program:

Více

Překladač XSL šablon

Překladač XSL šablon Překladač XSL šablon Marek Běhálek Katedra informatiky, FEI, VŠB Technická Univerzita Ostrava 17. listopadu 15, 708 33, Ostrava-Poruba Marek.Behalek@vsb.cz Abstrakt. Jazyk XML definuje, jak vytvářet sebepopisující

Více

Převod prostorových dat katastru nemovitostí do formátu shapefile

Převod prostorových dat katastru nemovitostí do formátu shapefile GIS Ostrava 2009 25. - 28. 1. 2009, Ostrava Převod prostorových dat katastru nemovitostí do formátu shapefile Karel Janečka1, Petr Souček2 1Katedra matematiky, Fakulta aplikovaných věd, ZČU v Plzni, Univerzitní

Více

GEOGRAFICKÉ INFORMAČNÍ SYSTÉMY 6

GEOGRAFICKÉ INFORMAČNÍ SYSTÉMY 6 UNIVERZITA TOMÁŠE BATI VE ZLÍNĚ FAKULTA APLIKOVANÉ INFORMATIKY GEOGRAFICKÉ INFORMAČNÍ SYSTÉMY 6 Lubomír Vašek Zlín 2013 Obsah... 3 1. Základní pojmy... 3 2. Princip rastrové reprezentace... 3 2.1 Užívané

Více

EXTRAKT z české technické normy Extrakt nenahrazuje samotnou technickou normu, je pouze informativním materiálem o normě

EXTRAKT z české technické normy Extrakt nenahrazuje samotnou technickou normu, je pouze informativním materiálem o normě EXTRAKT z české technické normy Extrakt nenahrazuje samotnou technickou normu, je pouze informativním materiálem o normě ICS 35.240.60, 43.080.20, 45.060.01 Veřejná doprava osob Pracovní rozhraní pro informace

Více

KAPITOLA 3. Architektura aplikací na frameworku Rails. V této kapitole: modely, pohledy, řadiče.

KAPITOLA 3. Architektura aplikací na frameworku Rails. V této kapitole: modely, pohledy, řadiče. KAPITOLA 3 Architektura aplikací na frameworku Rails V této kapitole: modely, pohledy, řadiče. 58 Část I: Začínáme Jedna ze zajímavých vlastností frameworku Rails spočívá v tom, že klade docela závažná

Více