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="http://www.wrox.com/images/wrox_logo100.gif"> 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=http:// 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ú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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1

24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) HODINOVÁ DOTACE: 1 24-2-2 PROMĚNNÉ, KONSTANTY A DATOVÉ TYPY TEORIE AUTOR DOKUMENTU: MGR. MARTINA SUKOVÁ DATUM VYTVOŘENÍ: 23.7.2013 KLÍČOVÁ AKTIVITA: 02 UČIVO: STUDIJNÍ OBOR: PROGRAMOVÁNÍ 2. ROČNÍK (PRG2) INFORMAČNÍ TECHNOLOGIE

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

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

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

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

Specifikace exportního rozhraní z aplikace

Specifikace exportního rozhraní z aplikace EIME [Export Interface of MultiEstate] verze 1 1/13 Specifikace exportního rozhraní z aplikace MultiEstate Obsah 1. Úvod...2 1.1 Přístup k rozhraní...2 2. Konfigurace rozhraní...2 2.1 Popis struktury konfigurace...2

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

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

Š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

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

(X)HTML, CSS a jquery

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

Více

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

Principy objektově orientovaného programování

Principy objektově orientovaného programování Principy objektově orientovaného programování Třídy a objekty 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 C E T

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

Algoritmizace a programování

Algoritmizace a programování Algoritmizace a programování Typy Základní (primitivní) datové typy Deklarace Verze pro akademický rok 2012/2013 1 Typy v jazyce Java Základní datové typy (primitivní datové typy) Celočíselné byte, short,

Více

10 Balíčky, grafické znázornění tříd, základy zapozdření

10 Balíčky, grafické znázornění tříd, základy zapozdření 10 Balíčky, grafické znázornění tříd, základy zapozdření Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost příkazům balíčkům, grafickému

Více

Využití XML v DB aplikacích

Využití XML v DB aplikacích Využití XML v DB aplikacích Michal Kopecký Výběr ze slajdů k 7. přednášce předmětu Databázové Aplikace (DBI026) na MFF UK Komunikace aplikace s okolím Databázová aplikace potřebuje často komunikovat s

Více

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech

7 Formátovaný výstup, třídy, objekty, pole, chyby v programech 7 Formátovaný výstup, třídy, objekty, pole, chyby v programech Studijní cíl Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost formátovanému výstupu,

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

Metody tvorby ontologií a sémantický web. Martin Malčík, Rostislav Miarka

Metody tvorby ontologií a sémantický web. Martin Malčík, Rostislav Miarka Metody tvorby ontologií a sémantický web Martin Malčík, Rostislav Miarka Obsah Reprezentace znalostí Ontologie a sémantický web Tvorba ontologií Hierarchie znalostí (D.R.Tobin) Data jakékoliv znakové řetězce

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

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

Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy

Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy Úvod do programování Michal Krátký 1,Jiří Dvorský 1 1 Katedra informatiky VŠB Technická univerzita Ostrava Úvod do programování, 2004/2005 Procesor Procesorem je objekt, který vykonává algoritmem popisovanou

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

HTML - Úvod. Zpracoval: Petr Lasák

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

Více

Webová služba. Popis. Dostupné operace. add_subscriber_groups

Webová služba. Popis. Dostupné operace. add_subscriber_groups Popis Webová služba Webová služba umožnuje komunikovat se systémem CentralNews přes protokol http. Přístup k systému CentralNews je chráněn loginem a heslem. Navíc je nutné zaslat api klíč, který definuje

Více

Základy jazyka C# Obsah přednášky. Architektura.NET Historie Vlastnosti jazyka C# Datové typy Příkazy Prostory jmen Třídy, rozhraní

Základy jazyka C# Obsah přednášky. Architektura.NET Historie Vlastnosti jazyka C# Datové typy Příkazy Prostory jmen Třídy, rozhraní Základy jazyka C# 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 Obsah přednášky Architektura.NET Historie Vlastnosti

Více

Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky DIPLOMOVÁ PRÁCE

Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky DIPLOMOVÁ PRÁCE Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky a výpočetní techniky DIPLOMOVÁ PRÁCE Plzeň, 2006 Jan Kupka Západočeská univerzita v Plzni Fakulta aplikovaných věd Katedra informatiky

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

ANT. Aplikační programování v Javě (BI-APJ) - 1 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha

ANT. Aplikační programování v Javě (BI-APJ) - 1 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha ANT Aplikační programování v Javě (BI-APJ) - 1 Ing. Jiří Daněček Katedra softwarového inženýrství Fakulta informačních technologií ČVUT Praha Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Více

Knihovna XmlLib TXV 003 63.01 první vydání prosinec 2010 změny vyhrazeny

Knihovna XmlLib TXV 003 63.01 první vydání prosinec 2010 změny vyhrazeny Knihovna XmlLib TXV 003 63.01 první vydání prosinec 2010 změny vyhrazeny 1 TXV 003 63.01 Historie změn Datum Vydání Popis změn Prosinec 2010 1 První vydání, popis odpovídá XmlLib_v13 OBSAH 1 Úvod...3 2

Více

POSTUP PRO VYTVOŘENÍ STRUKTUR PRO UKLÁDÁNÍ RDF DAT V ORACLE

POSTUP PRO VYTVOŘENÍ STRUKTUR PRO UKLÁDÁNÍ RDF DAT V ORACLE POSTUP PRO VYTVOŘENÍ STRUKTUR PRO UKLÁDÁNÍ RDF DAT V ORACLE Upozornění: Pro práci s RDF Oracle daty je třeba mít nainstalován Oracle Spatial Resource Description Framework (RDF). 1. Vytvoření tabulkového

Více

Datové struktury obsah přednášky 1. Úvod 2. Třídy Type-wrapper (obalový typ) pro primitivní typy automatické převody 3. Automatické převody mezi

Datové struktury obsah přednášky 1. Úvod 2. Třídy Type-wrapper (obalový typ) pro primitivní typy automatické převody 3. Automatické převody mezi Datové struktury obsah přednášky 1. Úvod 2. Třídy Type-wrapper (obalový typ) pro primitivní typy automatické převody 3. Automatické převody mezi primitivními a obalovými typy 4. Třídy odkazující sama na

Více

Mgr. Vlastislav Kučera přednáška č. 1

Mgr. Vlastislav Kučera přednáška č. 1 Mgr. Vlastislav Kučera přednáška č. 1 jazyk (x)html kaskádové styly Castro, E.: HTML, XHTML a CSS. CPress, 2007 Písek, S.: HTML a XHTML, začínáme programovat. Grada Publishing, 2003 Wempen, F.: HTML a

Více

Python XML a Web 1 PGS 2012 23.2.2012

Python XML a Web 1 PGS 2012 23.2.2012 Python XML a Web 1 Obsah XML Validace DTD a XSD Práce s XML - SAX a DOM Python a XML Tvorba XML bez použití knihoven Knihovna PyXML SAX Knihovna PyXML DOM Knihovna LXML validace DTD a XSD 2 XML extensible

Více

Mgr. Vlastislav Kučera přednáška č. 1

Mgr. Vlastislav Kučera přednáška č. 1 Mgr. Vlastislav Kučera přednáška č. 1 jazyk HTML5 CSS3 HTML5 a CSS3: CASTRO, E. HTML5 a CSS3. Computer press, 2012 GOLDSTEIN, A., LAZARIS, L. a WEYL, E. HTML5 a CSS3 pro webové designéry. Brno: Zoner Press,

Více

Tabulka symbolů. Vazba (binding) Vazba - příklad. Deklarace a definice. Miroslav Beneš Dušan Kolář

Tabulka symbolů. Vazba (binding) Vazba - příklad. Deklarace a definice. Miroslav Beneš Dušan Kolář Vazba (binding) Tabulka symbolů Miroslav Beneš Dušan Kolář vazba = spojení mezi entitou a vlastností okamžik vazby (binding time) při návrhu jazyka při implementaci jazyka během překladu/spojování/zavádění

Více

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

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

Více

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

Knihovna XmlLib TXV 003 63.01 druhé vydání říjen 2012 změny vyhrazeny

Knihovna XmlLib TXV 003 63.01 druhé vydání říjen 2012 změny vyhrazeny Knihovna XmlLib TXV 003 63.01 druhé vydání říjen 2012 změny vyhrazeny 1 TXV 003 63.01 Historie změn Datum Vydání Popis změn Prosinec 2010 1 První vydání, popis odpovídá XmlLib_v13 Říjen 2012 2 Druhé vydání,

Více

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

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

Více

Vývoj Internetových Aplikací

Vývoj Internetových Aplikací 5 Vývoj Internetových Aplikací AJAX, JSON, XML Ing. Michal Radecký, Ph.D. www.cs.vsb.cz/radecky Co je to AJAX - Asynchronous JavaScript and XML - Kombinace technologií, která umožňuje měnit části webové

Více

Objektově orientované programování 1 XOBO1. Autor: Doc. Ing. František Huňka, CSc.

Objektově orientované programování 1 XOBO1. Autor: Doc. Ing. František Huňka, CSc. Objektově orientované programování 1 XOBO1 Autor: Doc. Ing. František Huňka, CSc. 1 Seznam kapitol 1 Základní pojmy...3 1.1 Úvod do tříd a objektů...3 1.2 Vývojové prostředí...7 1.3 Jednotný modelovací

Více

Vstupní data pro program Deformace ve formátu XML

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

Více

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

Datové struktury. alg12 1

Datové struktury. alg12 1 Datové struktury Jedna z klasických knih o programování (autor prof. Wirth) má název Algorithms + Data structures = Programs Datová struktura je množina dat (prvků, složek, datových objektů), pro kterou

Více