1. Jazyk XML a formát jeho dokumentů

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

Download "1. Jazyk XML a formát jeho dokumentů"

Transkript

1 1 OOP_11 Java a XML

2 Obsah 2 1. Jazyk XML a formát jeho dokumentů 2. Využití DTD (Document Type Definition) při tvorbě gramatiky dokumentu XML 3. Zpracování a ověření platnosti dokumentu XML objektového modelu DOM (Document Object Model) 4. Jmenné prostory XML vyloučení nejednoznačnosti

3 1. Jazyk XML a formát jeho dokumentů 3 XML extensible Markup Language podobně jako XHTML odvozen od SGML (Stardard Generalized Markup Language) SGML jazyk pro popis a definici dat navržený, tak, aby se informace daly zpracovávat jako objekty, ne jako posloupnost znaků. SGML nesmírně flexibilní a výkonný avšak jeho použití složité a náročné.

4 Jazyk XML 4 XML navržen pro popis (vyjádření) dat nezávislé na platformě. XML je rozšiřitelný, samo-popisný a konzistentní. XML poskytuje rovněž metadata dají přenášeným datům širší kontext Data lze vložit do kontextu pomocí obklopujících značek, které definují datovou strukturu a poskytují dodatečné informace a atributy. XHTML omezuje uživatele, klade důraz na způsob prezentace v určitém kontextu

5 Atributy Osnova 5 <kniha> <nazev zanr= roman >Dáma s kaméliemi</nazev> <autor narodnost= fr >Alexandre Dumas ml.</autor> <nakladatelstvi>melantrich</nakladatelstvi> <rok>1981</rok> <kapitola>i</kapitola> <odstavec> </odstavec> <odstavec> </odstavec> <kapitola>ii</kapitola>... Elementy </kniha>

6 <?xml version="1.0" encoding= iso iso ?> Osnova 6 <book> <title>professional Java Programming</title> <author>brett Spell</author> <publisher>wrox Press</publisher> XML <tableofcontents showpagenumbers="yes"> // atribut showpagenumbers <tocentry tocentry>printing</ >Printing</tocEntry tocentry> <tocentry tocentry>cut And Paste</tocEntry tocentry> <tocentry tocentry>drag And Drop</tocEntry tocentry> </tableofcontents tableofcontents> </book>

7 <HTML> <CENTER> <H1>Professional Java Programming</H1> </CENTER> <H4>Brett Spell</H4> <B> <H3>Table Of Contents</H3> <LI>Printing</LI> <LI>Cut and Paste</LI> <LI>Drag and Drop</LI> </B> <H4>Wrox Press</H4> <IMG ALT="Wrox Logo" SRC=" HTML Osnova 7 </HTML>

8 XML nebo XHTML (HTML) 8 HTML je kombinací dat a instrukcí pro zobrazení v prohlížeči zobrazovací instrukce vyjádřeny formou formátovacích značek <CENTER> <H1> data HTML jsou v úzké vazbě s formátovacími značkami objektově orientovaný návrh, úzká vazba nežádoucí (omezuje opětovné použití) různé formáty v prohlížeči a např. černobílém tisku hypertextové odkazy ztrácí smysl v tištěné podobě - nahrazena např. poznámkou pod čarou

9 XML nebo XHTML (HTML) 9 Dokumenty HTML: neobsahují žádné informace pro vlastní popis dat (metadata) nemusí být správně uspořádány Jazyk XML: popisuje pouze data neobsahuje žádné informace o tom, jak zobrazit data strukturu dokumentu může definovat sám uživatel definuje způsob tvorby dokumentů a způsob jejich zpracování a výměny

10 Správně uspořádané dokumenty (well-formed) 10 každá počáteční značka musí mít koncovou značku (kromě prázdného elementu) hodnoty atributů musí být v uvozovkách speciální znaky používané k definici značek (tagů), jsou označeny jako rezervované znaky - & ; značky musí být do sebe vnořeny (jako bloky programu)

11 Element - atribut 11 Každá dvojice značek (počáteční a koncová) se označuje jako element. <jmeno_elementu> </jmeno_elementu> každý element může obsahovat další informace atributy atribut je součástí elementu a skládá se z názvu atributu a přiřazené hodnoty v uvozovkách narodnost= ceska

12 1 <?xml version = "1.0"?> 2 3 <!-- article.xml --> 4 <!-- Article structured with XML --> 5 6 <article> 7 8 <title>simple XML</title> 9 10 <date>july 15, 2003</date> <author> 13 <firstname>carpenter Carpenter</firstName> 14 <lastname>cal Cal</lastName> 15 </author> <summary>xml is pretty easy.</summary> <content>once you have mastered m XHTML, XML is easily 20 learned. You must remember that XML is not for 21 displaying information but for managing information. 22 </content> </article> article.xml Osnova 12

13 Rezervované znaky předdefinované znakové entity 13 Název menší než Znak < Sekvence změny < větší než > > apostrof &apos; uvozovka &qout; znak & & &

14 Znakové entity 14 Character reference Odkazují se na znaky v ISO/IEC 10646, které nejsou přímo přístupné ze vstupního zařízení zápis je následující: 1. Desítková reprezentace znaku: &#[0-9]; např. řetězec &#64 představuje zavináč 2. Hexadecimální reprezentace znaku: &#x[0-9a-fa-f]; např. &#x40 představuje opět znak zavináč

15 Použití XML 15 Popis dat přenášených mezi aplikacemi EJB deskriptory zavádění (deployment descriptors) je to vlastně konfigurační soubor, který popisuje způsob použití objektu modelu Enterptise JavaBeans. Serializované objekty byly z pohledu serveru neobyčejně pohodlným médiem, uživatelé posuzovali jejich užitečnost z hlediska možností jejich editace. XML snadno čitelný jak pro lidi, tak pro stroje.

16 Kořenové elementy 16 dodržení syntaktických pravidel navržených konsorciem W3C dokument obsahuje jeden nebo více elementů, přičemž jeden z nich je tzv. kořenový element (root element). kořenový element musí obsahovat všechny ostatní elementy

17 Osnova 17 <? <? <? <?xml xml xml xml version version version version='1.0' ='1.0' ='1.0' ='1.0' encoding encoding encoding encoding=' =' =' ='iso iso iso iso '?> 2'?> 2'?> 2'?> <slovnik slovnik slovnik slovnik> <nazev nazev nazev nazev>česko esko esko esko-anglický slovn anglický slovn anglický slovn anglický slovník</ k</ k</ k</nazev nazev nazev nazev> <slovo> <slovo> <slovo> <slovo> <cesky cesky cesky cesky>jablko</ >jablko</ >jablko</ >jablko</cesky cesky cesky cesky> <anglicky> <anglicky> <anglicky> <anglicky>apple apple apple apple</anglicky> </anglicky> </anglicky> </anglicky> <dalsi dalsi dalsi dalsi_vyznam vyznam vyznam vyznam>rajsk >rajsk >rajsk >rajské</ </ </ </dalsi dalsi dalsi dalsi_vyznam vyznam vyznam vyznam> <anglicky> <anglicky> <anglicky> <anglicky>tomato tomato tomato tomato</anglicky> </anglicky> </anglicky> </anglicky> <dalsi dalsi dalsi dalsi_vyznam vyznam vyznam vyznam>jablo >jablo >jablo >jabloň</ </ </ </dalsi dalsi dalsi dalsi_vyznam vyznam vyznam vyznam> <anglicky> <anglicky> <anglicky> <anglicky>appletree appletree appletree appletree</anglicky> </anglicky> </anglicky> </anglicky> </slovo> </slovo> </slovo> </slovo> <slovo> <slovo> <slovo> <slovo> <cesky cesky cesky cesky>jahod >jahod >jahod >jahod <koncovka> <koncovka> <koncovka> <koncovka>-a</koncovka> a</koncovka> a</koncovka> a</koncovka> <koncovka> <koncovka> <koncovka> <koncovka>-ový ový ový ový</koncovka> </koncovka> </koncovka> </koncovka> </ </ </ </cesky cesky cesky cesky> <anglicky> <anglicky> <anglicky> <anglicky>strawberry strawberry strawberry strawberry</anglicky> </anglicky> </anglicky> </anglicky> </slovo> </slovo> </slovo> </slovo> <slovo> <slovo> <slovo> <slovo> <cesky cesky cesky cesky>malin >malin >malin >malin <koncovka> <koncovka> <koncovka> <koncovka>-a</koncovka> a</koncovka> a</koncovka> a</koncovka> <koncovka> <koncovka> <koncovka> <koncovka>-ový ový ový ový</koncovka> </koncovka> </koncovka> </koncovka> </ </ </ </cesky cesky cesky cesky> <anglicky> <anglicky> <anglicky> <anglicky>raspberry raspberry raspberry raspberry</anglicky> </anglicky> </anglicky> </anglicky> </slovo> </slovo> </slovo> </slovo> </ </ </ </slovnik slovnik slovnik slovnik>

18 Osnova 18 <?xml version="1.0" encoding=" ="utf utf-8"?> <!DOCTYPE kucharka SYSTEM "kucharka" kucharka.dtd dtd"> <kucharka kucharka> <recept cislo="r01"> <nazev kategorie="zelenina" autor="jani janiäťka ka">t ">TÄ Ä stoviny se špenĂ penăˇtem</ tem</nazev nazev> <doba_pripravy pripravy>30 minut</doba_pripravy pripravy> <ingredience>400g tä stovin (farfalle farfalle)</ingredience> <ingredience>250g mraĺľ ĹľenĂ enă ho špenĂ penăˇtu (drcenă( drcenă nebo listy)</ingredience> <ingredience>150g tvrdă ho să ra ra</ingredience> <ingredience>100ml smetany na vaĺ enă enă</ingredience> <ingredience>4 strouĺľ Ĺľky ÄŤesneku esneku</ingredience> <ingredience>sĺś Ĺśl</ingredience> <ingredience>bilă bilă pepĺ </ingredience> <postup>tä Ä stoviny uvaĺ Ăme podle năˇvodu na obale. Ĺ penăˇt podusăme do rozmraĺľ ĹľenĂ enă osolăme me, opepĺ Ăme a pĺ idă idăˇme rozlisovană ÄŤesnek esnek. Nastrouháme să r. UvaĹ enă enă tä stoviny smăchă chăˇme se špenĂ penăˇtem. Zalejeme smetanou na vaĺ enă enă, zasypeme să rem a krăˇtce povaĺ Ăme me. &chut& chut; </postup> </recept> <recept cislo="r02"> <nazev kategorie="zelenina">tä Ä stoviny s rajäťaty aty a zelenă mi fazolkami</nazev nazev> <doba_pripravy pripravy>30 minut</doba_pripravy pripravy> <ingredience>400g tä stovin (farfalle farfalle)</ingredience> <ingredience>200g zelenă ch fazolek (mĺśĺľ( Ŝžou bă t i mraĺľ ĹľenĂ enă )</ingredience> <ingredience>4 rajäťata ata (nebo konzerva loupană ch rajäťat at)</ingredience> <ingredience>100g tvrdă ho să ra ra</ingredience> <ingredience>3 strouĺľ Ĺľky ÄŤesneku esneku</ingredience> <ingredience>2 lĺľ ĹľĂce olivovă ho oleje</ingredience> <ingredience>bazalka</ingredience> <ingredience>sĺś Ĺśl</ingredience> <postup>tä Ä stoviny uvaĺ Ăme podle năˇvodu na obale. Fazolky povaĺ Ăme 3 minuty. Na rozpăˇlenă lenă m oleji osmaĺľ ĹľĂme ÄŤesnek nakrăˇjenă jenă na plăˇtky tky. PĹ idăp idăˇme fazolky a krăˇtce povaĺ Ăme me. Pak pĺ idă idăˇme oloupan㡠rajäťata ata, bazalku podle chuti a prohĺ ejeme ejeme. ZamĂchĂ chăˇme tä stoviny stoviny. Na taliĺ Ă posypeme nastrouhană m să rem rem. &chut chut; </postup> </recept> </kucharka kucharka>

19 Součásti dokumentu XML 19 do kořenového elementu mohou být vkládány další elementy (s atributy nebo bez nich) vnořené elementy pak mohou obsahovat text nebo další elementy prázdný element: <elementpriklad></elementpriklad> <elementpriklad/> oddíl CDATA analyzátor (parser) nikdy neanalyzuje <![CDATA[... ]]>

20 2. Využití DTD (Document Type Definition) při tvorbě gramatiky dokumentu XML 20 Je výhodné nejen deklarovat množinu elementů, které lze v rámci dokumentu použít, ale i způsob použití těchto elementů gramatika dokumentu XML = soubor pravidel o způsobu použití elementů DTD = soubor elementů a vztahů mezi nimi a to umožní: ověřit, zda dokument obsahuje všechny potřebné údaje, zda jsou data kompletní a zda dokument neobsahuje žádná cizí data popis jaká data dokument obsahuje a jak je lze zpracovat (pro jiné spolupracovníky, partnery)

21 Gramatika DTD 21 Definice typu dokumentu: sada instrukcí určující, jaké elementy může daný dokument obsahovat jaké atributy mohou elementy mít v jakém pořadí musí být v dokumentu uvedeny Cílem DTD je umožnit analyzátorům jazyka XML zjistit validitu dokumentu pro spojení dokumentu s příslušným DTD souborem slouží deklarace DOCTYPE

22 DOCTYPE 22 DOCTYPE požaduje: název kořenového elementu na který bude definice DTD aplikována identifikátor SYSTEM nebo PUBLIC URL (Uniform Resource Identifier jednotné označování zdrojů), které určuje umístění definice DTD

23 Definování elementů 23 Možný obsah elementu: prázdný element nesmí obsahovat žádný obsah element element může obsahovat určené dceřinné elementy smíšený element může obsahovat směs dceřinných elementů a analyzovaných znakových dat (#PCDATA) libovolný element může obsahovat jakýkoli správně uspořádaný obsah. Prázdný a libovolný obsah je deklarován pomocí klíčových slov EMPTY a ANY. <!ELEMENT BezDat EMPTY> <!ELEMENT Cokoli ANY>

24 <?xml version = "1.0"?> Osnova 24 <!-- Business letter formatted with XML --> <!DOCTYPE letter SYSTEM "letter.dtd " letter.dtd"> <letter> <contact type = "from"> <name>john Doe</name> <address1>123 Main St.</address1> <address2></address2> <city>anytown Anytown</city> <state>anystate Anystate</state> <zip>12345</zip> <phone> </phone> <flag gender = "M"/> </contact> <contact type = "to"> <name>joe Schmoe</name> <address1>box 12345</address1> <address2>15 Any Ave.</address2> <city>othertown Othertown</city> <state>otherstate Otherstate</state> <zip>67890</zip> <phone> </phone> <flag gender = "M"/> </contact>

25 <salutation>dear Sir:</salutation> Osnova 25 <paragraph>it is our privilege to inform you about our new database managed with XML. This new system allows you to reduce the load of your inventory list server by having the client machine perform the work of sorting and filtering the data.</paragraph> <closing>sincerely</closing> <signature>mr. Doe</signature> </letter>

26 <!-- DTD document for letter.xml --> Osnova 26 <!ELEMENT letter ( contact+, salutation, paragraph+, closing, signature )> <!ELEMENT contact ( name, address1, address2, city, state, zip, phone, flag )> <!ATTLIST contact type CDATA #IMPLIED> <!ELEMENT name ( #PCDATA )> <!ELEMENT address1 ( #PCDATA )> <!ELEMENT address2 ( #PCDATA )> <!ELEMENT city ( #PCDATA )> <!ELEMENT state ( #PCDATA )> <!ELEMENT zip ( #PCDATA )> <!ELEMENT phone ( #PCDATA )> <!ELEMENT flag EMPTY> <!ATTLIST flag gender (M F) "M"> <!ELEMENT salutation ( #PCDATA )> <!ELEMENT closing ( #PCDATA )> <!ELEMENT paragraph ( #PCDATA )> <!ELEMENT signature ( #PCDATA )>

27 Definování elementů 27 Elementy se smíšeným obsahem se definují pomocí modelu obsahu (content model). Model obsahu popisuje vnitřní strukturu daného elementu, pořadí vnořených elementů a typ např. #PCDATA libovolná data (parsed character data). <!ELEMENT book (title, author, publisher)> Znak * +? Počet výskytů daného elementu Ani jednou, nebo vícekrát. Jednou, nebo vícekrát. Ani jednou, nebo jen jednou.

28 Závorky a trubky 28 Závorky znak opakování použitý mimo závorky znamená aplikaci na celý výraz v závorce Trubky umožňují nesekvenční uspořádání elementů praxe: za daným elementem může následovat jeden z více možných elementů <ELEMENT book (title publisher tableofcontents overview)> významově znamená nebo

29 Definování atributů elementu 29 <!ELEMENT book (title title, author, publisher, tableofcontents)> <!ELEMENT title (#PCDATA)> <!ELEMENT author (#PCDATA)> <!ELEMENT publisher (#PCDATA)> <!ELEMENT tableofcontents (tocentry tocentry+)> <!ATTLIST tableofcontents showpagenumbers CDATA "yes" yes"> <!ELEMENT tocentry (#PCDATA)> atribut s implicitní hodnotou yes datový typ PCDATA použit při definici elementů a pro analyzovaná znaková data datový typ CDATA oznamuje, že datový atribut podporuje znaková data

30 Klíčová slova 30 #FIXED zabrání překrytí definované implicitní hodnoty v DTD (konstanta) #REQUIRED vyžadovaná hodnota, nutno zadat (implicitní hodnota ztrácí smysl v DTD se nesmí uvádět) #IMPLIED v případě neexistence explicitní hodnoty se předpokládá implicitní hodnota, kterou však určí vyhodnocovací software nikoli DTD

31 Typy atributů 31 Typ atributu CDATA ID IDREF IDREFS ENTITY ENTITIES NMTOKEN NMTOKENS NOTATION Výčtové hodnoty Popis Znaková data řetězec Název jedinečný v rámci daného dokumentu (#IMLPIED, #REQUIRED) Odkaz na element s atributem typu ID se stejným názvem jako tento atribut typu IDREF. Skupina atributů typu IDREF oddělených mezerami. Název předdefinované externí entity. Skupina entit oddělených mezerami. Název (token). Stejná pravidla jako názvy elementů, mohou začínat libovolným povoleným znakem. Skupina tokenů oddělených mezerami. Hodnota tohoto typu musí být jedním z názvů určujících typ zápisu deklarovaného v definici DTD. Hodnota tohoto typu musí být jedním ze skupiny uživatelsky definovaných hodnot.

32 Entity 32 Dokument XML se může skládat z jedné nebo více paměťových jednotek, entit. Entita je jmenné vyjádření určitéčásti dokumentu. Každá entita je identifikovaná svým jménem a má nějaký obsah. Každý XML dokument obsahuje tzv. entitu dokumentu (document entity), která slouží jako počáteční bod pro XML procesor a obsahuje celý dokument. Rozlišujeme dva druhy entit: 1. Vnitřní - interní entity 2. Vnější - externí entity

33 Vnitřní entity 33 definovány pomocí záznamů <!ENTITY> <!- - priklad def. entity v dokumentu XML - - > <!ENTITY currentyear 2007 > <! - - parametrova entita pro definici v DTD - -> <!ENTITY % yesnocancel (yes no cancel ) > Použití: <tocentry>shrnuti roku &currentyear;</tocentry> <!ATTLIST response %yesnocancel; cancel >

34 Vnější entity 34 Uloženy na odděleném místě. K definici vnější entity definovat systémový nebo veřejný identifikátor. <!ENTITY % symbols SYSTEM symbol.ent > definuje parametrovou entitu nazvanou symbols. Její hodnota odpovídá obsahu souboru symbol.ent

35 Shrnutí DTD 35 DTD jsou podrobné a obsažné, mají nedostatky: 1. neodpovídají specifikaci XML nejsou rozšiřitelné a flexibilní 2. omezená typová kontrola dokumentu

36 3. Zpracování a ověření platnosti dokumentu XML pomocí DOM 36 Dokumenty v XML lze snadno analyzovat a také ověřovat jejich validitu (platnost). Analyzátory XML dostupné z mnoha zdrojů, jedním z nich je i technologie JAXP (Java API for XML Processing) balíček javax.xml Analyzátory XML se řídí dvěma standardy SAX (Simple API for XML) a modelem DOM (Document Object Model) navržen W3C konzorciem

37 Objektový model DOM 37 umožňuje analyzovat, ověřovat validitu, případně aktualizovat obsah dokument načtený do paměti je udržován jako hierarchicky uspořádaná kolekce objektů úpravou této kolekce lze změnit nejen strukturu, ale i obsah aktualizovaný dokument pak lze ukládat na jiné místo

38 Objektový model DOM 38 Analyzátor DOM vytvoří v paměti kolekci objektů, které vyjadřují obsah dokumentu. Objekty jsou implementacemi rozhraní definovaných v balíčku org.w3c.dom

39 Analýza procházení dokumentu v modelu DOM 39 Třída DocumentBuilder obsahuje metodu parse(). Metoda parse() vrací obejkt typu Document, který plní úlohu vstupního bodu do vytvořené objektové struktury. Jakmile máte přístup k objektu typu Document, můžete volat metodu getdocumentelement(), která vrací odkaz na kořenový element dokumentu. Následující příklad ukázka využívat třídy balíčku JAXP pro načtení a analýzu dokumentu.

40 Rozhraní Node bázové rozhraní v modelu DOM přístupové metody 40 Název metody getnodevalue() / setnode Value() getattributes() appendchild(), insertbefore(), removechild(), replacechild() getchildtennodes(), getfirstchild(), getlastchild() getnextsiblings(), getprevoiussiblings() haschildnode() getowneddocument() Popis vrací / nastavuje obsah uzlu, žádný uzel null vrací objekt typu NameNodeMap obsahující seznam atributů daného uzlu metody pro aplikace na dceřiné uzly zkoumaného uzlu seznam uzlů, první a poslední předchozí a následující sourozenci daného uzlu boolean Každý objekt typu Node je spojen s určitým dokumentem. Vrací odkaz na instanci typu Document.

41 import javax.xml xml.parsers parsers.*; import org.w3c..w3c.dom dom.*; Osnova 41 public class DOMTest { public static void main(string String[] args) throws Exception { DOMTest dt = new DOMTest(args args[0]); } public DOMTest(String uri) throws Exception { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance newinstance(); factory.setvalidating setvalidating(true true); DocumentBuilder builder = factory.newdocumentbuilder newdocumentbuilder(); Document doc = builder.parse(.parse(uri uri); displaytree(doc. (doc.getdocumentelement getdocumentelement()); } protected void displaytree(node node) { short nodetype = node.getnodetype getnodetype(); switch (nodetype nodetype) { case Node.ELEMENT_NODE: printelement((element) ((Element)node node); break; case Node.TEXT_NODE: printtext((text) ((Text)node node); break;

42 case Node.COMMENT_NODE: printcomment(( ((Comment Comment)node node); break; case Node.CDATA_SECTION_NODE: printcdata(( ((CDATASection CDATASection)node node); break; case Node.ENTITY_REFERENCE_NODE: printentityreference(( ((EntityReference EntityReference)node node); break; case Node.PROCESSING_INSTRUCTION_NODE: printprocessinginstruction( (ProcessingInstruction ProcessingInstruction)node node); break; default: } } Osnova 42 protected void printelement(element node) { Node child; Attr attr; System.out out.print print("<" + node.getnodename getnodename()); NamedNodeMap attrs = node.getattributes getattributes(); int count = attrs.getlength getlength(); for (int i = 0; i < count; i++) { attr = (Attr( Attr)( )(attrs attrs.item item(i)); System.out out.print print(" " + attr.getname getname() + "=\"" "" + attr.getvalue getvalue() + "\""); ""); }

43 System.out out.print print(">"); NodeList children = node.getchildnodes getchildnodes(); count = children.getlength getlength(); for (int i = 0; i < count; i++) { child = children.item item(i); displaytree(child child); } System.out out.print print("</" + node.getnodename getnodename() + ">"); } Osnova 43 protected void printtext(characterdata node) { System.out out.print print(node node.getdata getdata()); } protected void printcomment(comment node) { System.out out.print print("<! ("<!-- --" + node.getdata getdata() + "--" -->"); } protected void printcdata(cdatasection CDATASection node) { System.out out.print print("<![cdata[" + node.getdata getdata() + "]]>"); } protected void printentityreference(entityreference node) { System.out out.print print("&" + node.getnodename getnodename() + ";"); } } protected void printprocessinginstruction(processinginstruction node) { System.out out.print print("<?" + node.gettarget gettarget() + " " + node.getdata getdata() + "?>"); }

44 Úprava předchozího programu 44 místo metody printelement() můžeme použít metodu tostrong(), která plní stejnou funkci jako metody printxxx()

45 import javax.xml xml.parsers parsers.*; import org.w3c..w3c.dom dom.*; Osnova 45 public class DOMTest2 { public static void main(string String[] args) throws Exception { DOMTest2 dt = new DOMTest2(args args[0]); } public DOMTest2(String uri) throws Exception { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance newinstance(); factory.setvalidating setvalidating(true true); DocumentBuilder builder = factory.newdocumentbuilder newdocumentbuilder(); Document doc = builder.parse(.parse(uri uri); System.out out.println println(doc. (doc.getdocumentelement getdocumentelement()); } }

46 Úprava dokumentů v modelu DOM 46 Užití modelu DOM je podobné jako v předchozím příkladě. Postupné procházení dceřiných dokumentů kořenového elementu, až nalezený element odpovídá hledanému, pak se provede příslušná akce. např. chceme atributu showpagenumbers přiřadit hodnotu no

47 <?xml version="1.0"?> Osnova 47 <book book> <title title>professional Java Programming</ </title title> <author author>brett Spell</ </author author> <publisher publisher>wrox Press</ </publisher publisher> <tableofcontents showpagenumbers="yes Yes"> <tocentry tocentry>printing Printing</ </tocentry tocentry> <tocentry tocentry>cut And Paste</tocEntry tocentry> <tocentry tocentry>drag And Drop</tocEntry tocentry> </tableofcontents tableofcontents> </book book>

48 import javax.xml xml.parsers parsers.*; import org.w3c..w3c.dom dom.*; Osnova 48 public class DOMTest3 { public static void main(string String[] args) throws Exception { DOMTest3 dt = new DOMTest3(args args[0]); } public DOMTest3(String uri) throws Exception { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance newinstance(); factory.setvalidating setvalidating(true true); DocumentBuilder builder = factory.newdocumentbuilder newdocumentbuilder(); Document doc = builder.parse(.parse(uri uri); NodeList children = doc.getelementsbytagname getelementsbytagname(" ("tableofcontents tableofcontents"); Element current; int count = children.getlength getlength(); for (int i = 0; i < count; i++) { current = (Element)children children.item item(i); current.setattribute setattribute("showpagenumbers", "no"); "); } } } System.out out.println println(doc. (doc.getdocumentelement getdocumentelement());

49 Vymazání elementu 49 další příklad ukazuje vymazání elementu např. <tableofcontents>

50 import javax.xml xml.parsers parsers.*; import org.w3c..w3c.dom dom.*; Osnova 50 public class DOMTest4 { public static void main(string String[] args) throws Exception { DOMTest4 dt = new DOMTest4(args args[0]); } public DOMTest4(String uri) throws Exception { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance newinstance(); factory.setvalidating setvalidating(true true); DocumentBuilder builder = factory.newdocumentbuilder newdocumentbuilder(); Document doc = builder.parse(.parse(uri uri); NodeList children = doc.getelementsbytagname getelementsbytagname(" ("tableofcontents tableofcontents"); Element current; Element parentelement; int count = children.getlength getlength(); System.out.println println(" ("There " + (count( count==1?" ==1?"is ":"are ") + count + " tableofcontents element"+ (count( count==1?"":"s")); for (int i = 0; i < count; i++) { System.out.println println(" ("Deleting child element number " + (i+1)); current = (Element)children children.item item(i); } } parentelement = (Element)current current.getparentnode getparentnode(); parentelement.removechild removechild(current current); } System.out out.println println(doc. (doc.getdocumentelement getdocumentelement());

51 Tvorba nových uzlů a jejich přidání do stromu 51 principiálně stejný postup jako v předchozích příkladech

52 import javax.xml xml.parsers parsers.*; import org.w3c..w3c.dom dom.*; Osnova 52 public class DOMTest5 { public static void main(string String[] args) throws Exception { DOMTest5 dt = new DOMTest5(args args[0]); } public DOMTest5(String uri) throws Exception { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance newinstance(); factory.setvalidating setvalidating(true true); DocumentBuilder builder = factory.newdocumentbuilder newdocumentbuilder(); Document doc = builder.parse(.parse(uri uri); NodeList children = doc.getelementsbytagname getelementsbytagname(" ("tableofcontents tableofcontents"); Element current = null; int count = children.getlength getlength(); for (int i = 0; i < count; i++) { current = (Element)children children.item item(i); // Get the list of <tocentry tocentry> items NodeList tocitems = current.getelementsbytagname getelementsbytagname(" ("tocentry tocentry");

53 // Obtain a reference to the second one Node secondchild = tocitems.item item(1); // Create a new <tocentry tocentry> element Element newtocitem = doc.createelement createelement(" ("tocentry tocentry"); Osnova 53 // Create a new "Help" text node Text newtext = doc.createtextnode createtextnode("help"); // Make it a child of the new <tocentry tocentry> element // <tocentry < tocentry>help</ >Help</tocEntry tocentry> newtocitem.appendchild appendchild(newtext newtext); // Add the new <tocentry tocentry> element to <tableofcontents< tableofcontents> current.insertbefore insertbefore(newtocitem newtocitem, secondchild); } } System.out out.println println(doc. (doc.getdocumentelement getdocumentelement()); }

54 Vytvoření nového dokumentu 54 Všechny instance typu Document byly vytvořeny pomocí metody parse() Třída DocumentBuilder deklaruje metodu newdocument(), která se dá použít k získání prázdné instance typu Document

55 import javax.xml xml.parsers parsers.*; import org.w3c..w3c.dom dom.*; Osnova 55 public class DOMTest6 { public static void main(string String[] args) throws Exception { DOMTest6 dt = new DOMTest6(); } public DOMTest6() throws Exception { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance newinstance(); factory.setvalidating setvalidating(true true); DocumentBuilder builder = factory.newdocumentbuilder newdocumentbuilder(); Document document = builder.newdocument newdocument(); // Create a new Element object Element rootelement = document.createelement createelement(" ("book book"); // Make it the root element of this new document document.appendchild appendchild(rootelement rootelement); } System.out out.println println(document document.getdocumentelement getdocumentelement()); }

56 4. Jmenné prostory XML vyloučení nejednoznačnosti 56 obsah jednoho DTD souboru lze zahrnout do jiného DTD souboru nutno definovat vnější parametrovou entitu definovat odkaz na ni

57 snacks.dtd snacks.dtd Osnova 57 <!ELEMENT cookies (#PCDATA)> <!ATTLIST cookies haschocolate CDATA yes yes > <!ELEMENT pretzels (#PCDATA)> <!ATTLIST pretzels havesalt CDATA yes yes > browser.dtd browser.dtd <!ELEMENT JavaScript (#PCDATA)> <!ATTLIST JavaScript isenabled CDATA no no > <!ELEMENT cookies (#PCDATA)> <!ATTLIST cookies areaccepted CDATA no no > preferences.dtd preferences.dtd <!ENTITY snacks SYSTEM snacks.dtd snacks.dtd > <!ENTITY browser SYSTEM browser.dtd browser.dtd > %snacks; %browser; soubor preferences.dtd se bude aplikovat na xml soubor neni jasne, ktery element cookies pouzit

58 Jmenný prostor name space 58 Standard jmenného prostoru je postaven na stejném principu jako balíčky tříd v Javě Elementy nejsou spojovány s balíčku, ale s adresou URL (Unified Resource Locator) přiřazení elementu k URL: definovat atribut xmlns (xml name space) a přiřadit mu hodnotu, která odpovídá příslušné adrese URL jmenný prostor můžeme přiřadit každému elementu

59 snacks.dtd snacks.dtd Osnova 59 <!ELEMENT cookies (#PCDATA)> <!ATTLIST cookies haschocolate CDATA yes yes xmlns CDATA #FIXED members.apl.com/javabrewer/snacks/ > <!ELEMENT pretzels (#PCDATA)> <!ATTLIST pretzels havesalt CDATA yes yes > browser.dtd browser.dtd <!ELEMENT JavaScript (#PCDATA)> <!ATTLIST JavaScript isenabled CDATA no no > <!ELEMENT cookies (#PCDATA)> <!ATTLIST cookies areaccepted CDATA no no xmlns CDATA #FIXED members.apl.com/javabrewer/browser/ > preferences.dtd preferences.dtd <!ENTITY snacks SYSTEM snacks.dtd snacks.dtd > <!ENTITY browser SYSTEM browser.dtd browser.dtd > %snacks; %browser; soubor preferences.dtd se bude aplikovat na xml soubor neni jasne, ktery element cookies pouzit

60 Prefix jmenného prostoru 60 Opakování jmenného prostoru může být zdlouhavé a přinášet chyby Prefix jmenného prostoru je alias, který se může spojit s příslušnou URL adresou

61 Příklad 61 <snacks:cookies xmlns:snacks= members.aol.com/javabrewer/snacks/> Tyto kolacky mi velmi chutnaji. <snacks:chips snacks:chips>cokoladove Cokoladove</ </snacks:chips snacks:chips> </snacks:cookies snacks:cookies> Alias jmenného prostoru je definován názvem atributu xmlns, dvojtečkou a názvem aliasu. Jakmile je alias definován, může se každý element uvádět s aliasem

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

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 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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ú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

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

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

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

Úvod do programovacích jazyků (Java)

Úvod do programovacích jazyků (Java) Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích

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

Programování v Javě I. Únor 2009

Programování v Javě I. Únor 2009 Seminář Java Programování v Javě I Radek Kočí Fakulta informačních technologií VUT Únor 2009 Radek Kočí Seminář Java Programování v Javě (1) 1/ 44 Téma přednášky Datové typy Deklarace třídy Modifikátory

Více

14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod.

14.4.2010. Obsah přednášky 7. Základy programování (IZAPR) Přednáška 7. Parametry metod. Parametry, argumenty. Parametry metod. Základy programování (IZAPR) Přednáška 7 Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 229, Náměstí Čs. legií Michael.Bazant@upce.cz Obsah přednášky 7 Parametry metod, předávání

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

Programování v Javě I. Leden 2008

Programování v Javě I. Leden 2008 Seminář Java Programování v Javě I Radek Kočí Fakulta informačních technologií VUT Leden 2008 Radek Kočí Seminář Java Programování v Javě (1) 1/ 45 Téma přednášky Datové typy Deklarace třídy Modifikátory

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

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Řídicí struktury jazyka Java Struktura programu Příkazy jazyka Blok příkazů Logické příkazy Ternární logický operátor Verze pro akademický rok 2012/2013 1 Struktura programu

Více

Rozhraní SAX, SAX vs. SAX2. Jaroslav Ciml

Rozhraní SAX, SAX vs. SAX2. Jaroslav Ciml Rozhraní SAX, SAX vs. SAX2 Jaroslav Ciml Použití SAX - připomenutí Vytvoření instance parseru XMLReader xmlreader = XMLReaderFactory.createXMLReader(); Registrace handleru xmlreader.setcontenthandler(

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

Úvod do programování - Java. Cvičení č.4

Úvod do programování - Java. Cvičení č.4 Úvod do programování - Java Cvičení č.4 1 Sekvence (posloupnost) Sekvence je tvořena posloupností jednoho nebo více příkazů, které se provádějí v pevně daném pořadí. Příkaz se začne provádět až po ukončení

Více

Výčtový typ strana 67

Výčtový typ strana 67 Výčtový typ strana 67 8. Výčtový typ V této kapitole si ukážeme, jak implementovat v Javě statické seznamy konstant (hodnot). Příkladem mohou být dny v týdnu, měsíce v roce, planety obíhající kolem slunce

Více

UJO Framework. revoluční architektura beans. verze 0.80 http://ujoframework.org/

UJO Framework. revoluční architektura beans. verze 0.80 http://ujoframework.org/ UJO Framework revoluční architektura beans verze 0.80 http://ujoframework.org/ Pavel Pone(c), září 2008 Historie rok 2004 upravené objekty z frameworku Cayenne nevýhodou byla špatná typová kontrola rok

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

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

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

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

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

Programování v jazyce JavaScript

Programování v jazyce JavaScript Programování v jazyce JavaScript Katedra softwarového inženýrství Fakulta informačních technologií České vysoké učení technické v Praze Pavel Štěpán, 2011 Skriptování dokumentu BI-JSC Evropský sociální

Více

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007 Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků

Více

NSWI096 - INTERNET. Úvod do HTML

NSWI096 - INTERNET. Úvod do HTML NSWI096 - INTERNET Úvod do HTML XHTML CO TO JE? XML extensible Markup Language Sada pravidel, jak kódovat dokumenty Podle těchto pravidel lze vytvořit nekonečně mnoho různých jazyků HTML HyperText Markup

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

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

7. Datové typy v Javě

7. Datové typy v Javě 7. Datové typy v Javě Primitivní vs. objektové typy Kategorie primitivních typů: integrální, boolean, čísla s pohyblivou řádovou čárkou Pole: deklarace, vytvoření, naplnění, přístup k prvkům, rozsah indexů

Více

PREPROCESOR POKRAČOVÁNÍ

PREPROCESOR POKRAČOVÁNÍ PREPROCESOR POKRAČOVÁNÍ Chybová hlášení V C# podobně jako v C++ existuje direktiva #error, která způsobí vypsání chybového hlášení překladačem a zastavení překladu. jazyk C# navíc nabízí direktivu #warning,

Více

Úvod do aplikací internetu a přehled možností při tvorbě webu

Úvod do aplikací internetu a přehled možností při tvorbě webu CVT6 01a Úvod do aplikací internetu a přehled možností při tvorbě webu Internet a www Internet? Služby www ftp e-mail telnet NetNews konference IM komunikace Chaty Remote Access P2P aplikace Online games

Více

Úvod do XML Technologie

Úvod do XML Technologie 4 TVEZEWXYHMNR LSTVSKVEQY-RJSVQEXMOENITSHTSVSZ RETVSNIOXIQRERGSZER Q ^)ZVSTWO LSWSGM PR LSJSRHYEVS^TS XYLPEZR LSQ WXE4VEL] 4VELE)9-RZIWXYNIQIHSZE% FYHSYGRSWXM Úvod do XML Technologie BI-TWA Peter Vojtáš

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

Úvod do tvorby internetových aplikací

Úvod do tvorby internetových aplikací CVT6 01a Úvod do tvorby internetových aplikací Osnova předmětu (X)HTML a tvorba webu pomocí přímého zápisu kódu Tvorba web designu a skládání stránek z kousků Skriptovací jazyky na webu Návrh software

Více

1. Programování proti rozhraní

1. Programování proti rozhraní 1. Programování proti rozhraní Cíl látky Cílem tohoto bloku je seznámení se s jednou z nejdůležitější programátorskou technikou v objektově orientovaném programování. Tou technikou je využívaní rozhraní

Více

Generické programování

Generické programování Generické programování Od C# verze 2.0 = vytváření kódu s obecným datovým typem Příklad generická metoda, zamění dva parametry: static void Swap(ref T p1, ref T p2) T temp; temp = p1; p1 = p2; p2 =

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

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

Seznamy a iterátory. Kolekce obecně. Rozhraní kolekce. Procházení kolekcí

Seznamy a iterátory. Kolekce obecně. Rozhraní kolekce. Procházení kolekcí Kolekce obecně Seznamy a iterátory doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Kolekce ::= homogenní sada prvků

Více

Distribuované systémy a výpočty (02)

Distribuované systémy a výpočty (02) Distribuované systémy a výpočty (02) p. 1/4 Distribuované systémy a výpočty (02) Jan Janeček katedra počítačů České vysoké učení technické v Praze Distribuované systémy a výpočty (02) p. 2/4 HTML technologie

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

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

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007 Úvod do programovacích jazyků (Java) Michal Krátký 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků

Více

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Struktura programu Vytvoření nové aplikace Struktura programu Základní syntaktické elementy První aplikace Verze pro akademický rok 2012/2013 1 Nová aplikace NetBeans Ve vývojovém

Více

PŘETĚŽOVÁNÍ OPERÁTORŮ

PŘETĚŽOVÁNÍ OPERÁTORŮ PŘETĚŽOVÁNÍ OPERÁTORŮ Jazyk C# podobně jako jazyk C++ umožňuje přetěžovat operátory, tj. rozšířit definice některých standardních operátorů na uživatelem definované typy (třídy a struktury). Stejně jako

Více

Seminář Java II p.1/43

Seminář Java II p.1/43 Seminář Java II Seminář Java II p.1/43 Rekapitulace Java je case sensitive Zdrojový kód (soubor.java) obsahuje jednu veřejnou třídu Třídy jsou organizovány do balíků Hierarchie balíků odpovídá hierarchii

Více

public static void main(string[] args) { System.out.println(new Main().getClass().getAnnotation(Greet.class).text());

public static void main(string[] args) { System.out.println(new Main().getClass().getAnnotation(Greet.class).text()); Anotace a Hibernate Aleš Nosek, Ondřej Vadinský, Daniel Krátký Anotace v Javě Anotace jsou novinkou v Javy verze 5. Anotace umožňují doplnit kód Javy o dodatečné informace. Zapisují se přímo do zdrojového

Více

Java a Caché IV: Manipulace s objekty

Java a Caché IV: Manipulace s objekty 1 z 6 11.1.2007 11:13 přihlašovací jméno heslo Registrace Přihlásit články odkazy aktuality CZJUG konference o portálu přidejte se o nás Vyhledávání Text: najdi Oborový filtr J2ME J2SE J2EE Enterprise

Více

7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd

7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd 7. přednáška - třídy, objekty třídy objekty atributy tříd metody tříd Algoritmizace (Y36ALG), Šumperk - 7. přednáška 1 Třída jako zdroj funkcionality Třída v jazyku Java je programová jednotka tvořená

Více

Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů CZ.1.07/1.3.12/04.0006

Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů CZ.1.07/1.3.12/04.0006 Počítačové laboratoře bez tajemství aneb naučme se učit algoritmizaci a programování s využitím robotů CZ.1.07/1.3.12/04.0006 Lekce 1 Jazyk Java Tento projekt je spolufinancován Evropským sociálním fondem

Více

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007

Michal Krátký. Úvod do programovacích jazyků (Java), 2006/2007 Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2006/2007 c 2006 Michal Krátký Úvod do programovacích jazyků

Více

typová konverze typová inference

typová konverze typová inference Seminář Java Programování v Javě II Radek Kočí Fakulta informačních technologií VUT Únor 2008 Radek Kočí Seminář Java Programování v Javě (2) 1/ 36 Téma přednášky Rozhraní: použití, dědičnost Hierarchie

Více

SOUBORY, VSTUPY A VÝSTUPY POKRAČOVÁNÍ

SOUBORY, VSTUPY A VÝSTUPY POKRAČOVÁNÍ SOUBORY, VSTUPY A VÝSTUPY POKRAČOVÁNÍ Vstupy a výstupy pokračování Kódování textů Texty (řetězce nebo znaky) v jazyce C# jsou v paměti uloženy v kódování označovaném běžně Unicode (kódová stránka 1200).

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

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

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

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

IRAE 07/08 Přednáška č. 1

IRAE 07/08 Přednáška č. 1 Úvod do předmětu OOP Objekt Proč OOP? Literatura, osnova předmětu viz. cvičení Základní prvek OOP sw inženýrství = model reálných objektů (věcí) člověk, auto, okno (ve windows), slovník, = model abstraktní

Více

Obrázek 6.14: Prohlížec nápovedy

Obrázek 6.14: Prohlížec nápovedy JavaHelp Základní popis systému JavaHelp Soucástí vetšiny interaktivních aplikací je nápoveda (help) aplikace v Jave nejsou výjimkou. Systém JavaHelp je napsaný v Jave a je urcený pro aplikace vytvárené

Více

Tvorba jednoduchých WWW stránek. VŠB - Technická univerzita Ostrava Katedra informatiky

Tvorba jednoduchých WWW stránek. VŠB - Technická univerzita Ostrava Katedra informatiky Tvorba jednoduchých WWW stránek RNDr. Daniela Ďuráková VŠB - Technická univerzita Ostrava Katedra informatiky Vznik WWW technologie Vznik - CERN 1989-90, vedoucí projektu Tim Berners-Lee cíl - infrastruktura

Více

Datové typy v Javě. Tomáš Pitner, upravil Marek Šabo

Datové typy v Javě. Tomáš Pitner, upravil Marek Šabo Datové typy v Javě Tomáš Pitner, upravil Marek Šabo Úvod k datovým typům v Javě Existují dvě základní kategorie datových typů: primitivní a objektové Primitivní v proměnné je uložena přímo hodnota např.

Více

Návrh technických pravidel pro tvorbu SIP

Návrh technických pravidel pro tvorbu SIP Návrh technických pravidel pro tvorbu SIP Použití některých elementů XML schématu dle přílohy 3 národního standardu pro elektronické systémy spisové služby verze: 7 Národní standard pro elektronické systémy

Více

Základy HTML (2. přednáška)

Základy HTML (2. přednáška) Základy HTML (2. přednáška) WWW World Wide Web Sestává ze tří stavebních bloků Síť informačních zdrojů Universal Resource Identifier jednotný způsob jak adresovat zdroje, (URL) protokoly pro přístup ke

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

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

Š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

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 3.4.

Univerzita Palackého v Olomouci Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 3.4. Základy programování 4 - C# - 8. cvičení Radek Janoštík Univerzita Palackého v Olomouci 3.4.2017 Radek Janoštík (Univerzita Palackého v Olomouci) Základy programování 4 - C# 3.4.2017 1 / 10 Reakce na úkoly

Více

První kapitola úvod do problematiky

První kapitola úvod do problematiky První kapitola úvod do problematiky Co je to Flex Adobe Flex je ActionSript (AS) framework pro tvorbu Rich Internet Aplications (RIA), tedy knihovna AS tříd pro Flash. Flex používáme k vytvoření SWF souboru

Více

1. Téma 12 - Textové soubory a výjimky

1. Téma 12 - Textové soubory a výjimky 1. Téma 12 - Textové soubory a výjimky Cíl látky Procvičit práci se soubory s využitím výjimek. 1.1. Úvod Program, aby byl programem, my mít nějaké výstupy a vstupy. Velmi častým případem je to, že se

Více

Úvod do programovacích jazyků (Java)

Úvod do programovacích jazyků (Java) Úvod do programovacích jazyků (Java) Michal Krátký Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programovacích jazyků (Java), 2007/2008 c 2006 2008 Michal Krátký Úvod do programovacích

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

RMI Remote Method Invocation

RMI Remote Method Invocation 2. cvičení RMI Remote Method Invocation 2007/09 ver.2.0 1 RMI co to je? vyvolání metody z jiné JVM lokalizace vzdáleného objektu komunikace se vzdálenými objekty přenos objektu v bytecode typicky klient

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

Paměť počítače. alg2 1

Paměť počítače. alg2 1 Paměť počítače Výpočetní proces je posloupnost akcí nad daty uloženými v paměti počítače Data jsou v paměti reprezentována posloupnostmi bitů (bit = 0 nebo 1) Připomeňme: paměť je tvořena řadou 8-mi bitových

Více

Pokud zadání nerozumíte nebo se vám zdá nejednoznačné, zeptejte se. Pište čitelně, nečitelná řešení nebudeme uznávat.

Pokud zadání nerozumíte nebo se vám zdá nejednoznačné, zeptejte se. Pište čitelně, nečitelná řešení nebudeme uznávat. Pokud zadání nerozumíte nebo se vám zdá nejednoznačné, zeptejte se. Pište čitelně, nečitelná řešení nebudeme uznávat. 1. Odkrokujte následující program a s použitím notace z přednášky popište stav paměti

Více

11.5.2012. Obsah přednášky 9. Skrývání informací. Skrývání informací. Zapouzdření. Skrývání informací. Základy programování (IZAPR, IZKPR) Přednáška 9

11.5.2012. Obsah přednášky 9. Skrývání informací. Skrývání informací. Zapouzdření. Skrývání informací. Základy programování (IZAPR, IZKPR) Přednáška 9 Obsah přednášky 9 Základy programování (IZAPR, IZKPR) Přednáška 9 Základy dědičnosti, přístupová práva Ing. Michael Bažant, Ph.D. Katedra softwarových technologií Kancelář č. 03 022, Náměstí Čs. legií

Více

Stream API. Petr Krajča. Základy programovaní 4 (Java) Katedra informatiky Univerzita Palackého v Olomouci

Stream API. Petr Krajča. Základy programovaní 4 (Java) Katedra informatiky Univerzita Palackého v Olomouci Základy programovaní 4 (Java) Stream API Petr Krajča Katedra informatiky Univerzita Palackého v Olomouci Petr Krajča (UP) KMI/ZP4JV 5. listopad, 2014 1 / 10 Stream API Java 8 nový přístup k práci s kolekcemi

Více

Zadání úlohy do projektu z předmětu IPP 2013/2014

Zadání úlohy do projektu z předmětu IPP 2013/2014 Zadání úlohy do projektu z předmětu IPP 2013/2014 Zbyněk Křivka a Dušan Kolář E-mail: {krivka, kolar}@fit.vutbr.cz, {54 114 1313, 54 114 1238} XTD: XML2DDL Zodpovědný cvičící: Ondřej Navrátil(inavra@fit.vutbr.cz)

Více

Konstruktory překladačů

Konstruktory překladačů Konstruktory překladačů Miroslav Beneš Dušan Kolář Konstruktor Lex generátor lexikálních analyzátorů M. E. Lesk, 1975 - pro OS Unix flex - Vern Paxson, 1990 - GNU verze určeno pro generování výstupu v

Více

Uspořádaný seznam nula nebo více elementů, každý je typem ASN.1 (heterogenní seznam) uspořádaný seznam stejných elementů

Uspořádaný seznam nula nebo více elementů, každý je typem ASN.1 (heterogenní seznam) uspořádaný seznam stejných elementů Basic Encoding Roles and ASN.1 ASN.1 je univerzální jazyk pro specifikaci datových typů. Dovoluje definovat nejen typ dat, ale i jejich velikost (rozsah hodnot) a význam. BER (Basic Encoding Roles) je

Více

Algoritmizace prostorových úloh

Algoritmizace prostorových úloh INOVACE BAKALÁŘSKÝCH A MAGISTERSKÝCH STUDIJNÍCH OBORŮ NA HORNICKO-GEOLOGICKÉ FAKULTĚ VYSOKÉ ŠKOLY BÁŇSKÉ - TECHNICKÉ UNIVERZITY OSTRAVA Algoritmizace prostorových úloh Datové struktury Daniela Szturcová

Více

Abstraktní datové typy: zásobník

Abstraktní datové typy: zásobník Abstraktní datové typy: zásobník doc. Ing. Miroslav Beneš, Ph.D. katedra informatiky FEI VŠB-TUO A-1007 / 597 324 213 http://www.cs.vsb.cz/benes Miroslav.Benes@vsb.cz Abstraktní datové typy omezené rozhraní

Více

1. Dědičnost a polymorfismus

1. Dědičnost a polymorfismus 1. Dědičnost a polymorfismus Cíl látky Cílem této kapitoly je představit klíčové pojmy dědičnosti a polymorfismu. Předtím však je nutné se seznámit se základními pojmy zobecnění neboli generalizace. Komentář

Více