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



Podobné dokumenty
Podpora XML v.net. Podpora XML v.net. nezávislý publicista. Jirka Kosek.

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

KAPITOLA 6. XML, XPath a XSLT. Podpora XML v prohlížečích. XML DOM v IE

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

Programování v jazyce JavaScript

Cílem kapitoly je seznámit studenta se seznamem a stromem. Jejich konstrukci, užití a základní vlastnosti.

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

XML terminologie a charakteristiky. Roman Malo

PRINCIPY OPERAČNÍCH SYSTÉMŮ

Práce se soubory opakování

NSWI096 - INTERNET JavaScript

MBI - technologická realizace modelu

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

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

1. Programování proti rozhraní

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

1 Úvod do kompilátorů

1 Nejkratší cesta grafem

Profilová část maturitní zkoušky 2013/2014

Architektura informačních systémů. - dílčí architektury - strategické řízení taktické řízení. operativní řízení a provozu. Globální architektura

Algoritmy a datové struktury

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

Architektura softwarových systémů

Profilová část maturitní zkoušky 2017/2018

PRG036 Technologie XML

7.5 Diagram tříd pokročilé techniky

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

Jemný úvod do spracovania XML

Dotazování nad stromem abstraktní syntaxe

Komprese a dotazování nad XML dokumenty

Tvorba informačních systémů

7.5 Diagram tříd pokročilé techniky

Základy objektové orientace I. Únor 2010

Při studiu tohoto bloku se předpokládá, že student je zvládá základy programování v jazyce Java s využitím vývojového prostředí NetBeans.

Úvod z historie. Kompilátory. Kompilace / Kompilátor Compile / Compiler. Pojem kompilátoru. Úvod z historie

VÝVOJ INTERNETOVÝCH APLIKACÍ - VIA

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

Stromy, haldy, prioritní fronty

Základní datové struktury

Analýza a Návrh. Analýza

DATABÁZOVÉ SYSTÉMY. Metodický list č. 1

UJO Framework. revoluční architektura beans. verze

1. Dědičnost a polymorfismus

Technické informace. PA152,Implementace databázových systémů 4 / 25. Projekty. pary/pa152/ Pavel Rychlý

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

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320 M A T U R I T N Í T É M A T A P Ř E D M Ě T U

xrays optimalizační nástroj

Amortizovaná složitost. Prioritní fronty, haldy (binární, d- regulární, binomiální, Fibonacciho), operace nad nimi a jejich složitost

1 Webový server, instalace PHP a MySQL 13

Modely datové. Další úrovní je logická úroveň Databázové modely Relační, Síťový, Hierarchický. Na fyzické úrovni se jedná o množinu souborů.

Rozhraní SAX, SAX vs. SAX2. Jaroslav Ciml

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

Michal Krátký, Miroslav Beneš

7. Geografické informační systémy.

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

Tento studijní blok má za cíl pokračovat v základních prvcích jazyka Java. Konkrétně bude věnována pozornost rozhraním a výjimkám.

Využití OOP v praxi -- Knihovna PHP -- Interval.cz

GUI. Systémová integrace pro desktopové aplikace

Virtuální počítač. Uživatelský program Překladač programovacího jazyka Operační systém Interpret makroinstrukcí Procesor. PGS K.

1. Webové služby. K čemu slouží? 2. RPC Web Service. 3. SOA Web Service. 4. RESTful Web services

Dědění, polymorfismus

Lexikální analýza Teorie programovacích jazyků

Popis B2B rozhraní pro elektronickou neschopenku

Projekt JetConf REST API pro vzdálenou správu

Business Intelligence

Ukládání a vyhledávání XML dat

Datové typy a struktury

základy xml strana 1/34 autor: Ilja Kraval

ADMINISTRACE POČÍTAČOVÝCH SÍTÍ. OPC Server

Android 100% Java telefon. Petr Musil

Tvorba informačních systémů

Základní datové struktury III: Stromy, haldy

Logický datový model VF XML DTM DMVS

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

STAVEBNÍ VÝROBA. Stavební práce (cena) potřebné materiály pracovníci pro práci potřebné stroje ostatní potřeby. Zjednodušený datový model:

Kolaborativní aplikace

Automaty a gramatiky(bi-aag) Motivace. 1. Základní pojmy. 2 domácí úkoly po 6 bodech 3 testy za bodů celkem 40 bodů

GEOGRAFICKÉ INFORMAČNÍ SYSTÉMY 6

CMS LARS VIVO VERZE 1.2 Z POHLEDU VIVOJÁŘE

Úvod do Groovy pro Java experty

Google Web Toolkit. Martin Šurkovský, SUR března Katedra informatiky

autoři: Rudolf Bayer, Ed McCreight všechny vnější uzly (listy) mají stejnou hloubku ADS (abstraktní datové struktury)

Přijímací zkouška - informatika

Softwarové komponenty a Internet

Střední průmyslová škola elektrotechnická Praha 10, V Úžlabině 320

Integrovaný informační systém Státní pokladny (IISSP) Dokumentace API - integrační dokumentace

Databázové patterny. RNDr. Ondřej Zýka

Portál úředníka. Lubomír Forejtek

7 Jazyk UML (Unified Modeling Language)

JavaScript v praxi: Sokoban (5. přednáška)

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

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

Digitální technická mapa ČR Architektura CAGI

Semestrální práce: Mashup. Observatory Star Explorer

Implementace LL(1) překladů

Výměnný formát XML DTM DMVS PK

Dynamicky vázané metody. Pozdní vazba, virtuální metody

KMA/PDB. Karel Janečka. Tvorba materiálů byla podpořena z prostředků projektu FRVŠ č. F0584/2011/F1d

Počítačová Podpora Studia. Přednáška 5 Úvod do html a některých souvisejících IT. Web jako platforma pro vývoj aplikací.

Transkript:

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ů Softwarová infrastruktura XML aplikace 2

XML parser Základní softwarová aplikace pro práci s XML dokumenty syntaktický analyzátor validující, nevalidující Nezbytná komponenta jiných programů (procesorů) pro zpracování XML dokumentů Založen na různých rozhraních XML aplikace 3

Rozhraní pro práci s XML API (Application Program Interface) Kolekce metod a pravidel pro práci s XML dokumenty Nástroj pro automatizaci aktivit nad XML dokumenty XML aplikace 4

Princip API XML dokument XML parser API Program XML aplikace 5

Typy rozhraní Událostně orientované (Event-based) založené na identifikaci událostí flexibilnější, přizpůsobitelné SAX Stromově orientované (Tree-based) rozklad XML dokumentu na strom náročnější na implementaci DOM XML aplikace 6

Zpracování XML dokumentu Algoritmy implementované pro zpracování XML dokumentů postupně zpracovávají dokument postupem zleva do hloubky Založeno na stromech Časová složitost odpovídá počtu uzlů XML aplikace 7

Stromy uzlů Hierarchické uspořádání všech uzlů (případně elementů) v rámci dokumentu Základ pro řadu XML aplikací a přístup k jednotlivým částem stromu Stromy lze interpretovat pomocí stromových gramatik (bezkontextové gramatiky) Interpretace stromu je zobrazení, které přiřazuje každému uzlu stromu některý z nonterminálních symbolů XML aplikace 8

SAX Simple API for XML Verze 1,2 Umožňuje zpracování pomocí rozpoznání jednotlivých událostí při zpracování XML dat Proudové zpracování Vhodné pro nevalidační parsery PHP XML Parser http://cz2.php.net/manual/en/ref.xml.php XML aplikace 9

Zpracování XML přes SAX Postupné rozpoznávání událostí (events) počátek dokumentu konec dokumentu počáteční značka elementu koncovou značka elementu znaková data další dle implementace Vázání událostí na handlery (event handler) Rozpoznání událostí a vyvolání navázaných funkcí činí parser XML aplikace 10

Schéma zpracování SAX XML aplikace 11

Vznik událostí XML aplikace 12

Výhody SAX Jednoduché použití Rychlé zpracování Implementačně nenáročné Okamžité přerušení práce při chybě Postupné zpracování proudu XML aplikace 13

Nevýhody SAX Potřeba přiřazení programového kódu k událostem Nemožnost dynamické změny dokumentu XML aplikace 14

DOM Document Object Model W3C, 3. level Objektově orientovaný přístup Stromově orientované rozhraní Metody pracují nad celým stromem XML aplikace 15

Zpracování XML přes DOM Parser vytvoří v paměti strom Existují předdefinované metody pro přístup k jednotlivým uzlům v rámci stromu Při chybě není možné zpracovat ani část dokumentu XML aplikace 16

Výhody DOM Dynamické zpracování Možnost opakování operací Přímý přístup k jednotlivým uzlům Objektově orientovaný přístup Jednotné metody v různých implementacích Optimální pro vyhledávání a validaci XML aplikace 17

Nevýhody DOM Prostorově náročné Při větších dokumentech může být pomalejší Některé jednodušší operace vyžadují těžkopádné programové konstrukce XML aplikace 18

Ukázka DOM (PHP) $dom = new DOMDocument(); $dom->loadxml($data); $root = $dom->documentelement; $knihy = $root->getelementsbytagname('kniha'); foreach ($knihy as $kniha) { $kc = $kniha->getattribute('kat_cislo'); $nazev = $kniha->getelementsbytagname('nazev')->item(0)->nodevalue; } print "Kniha s kc ".$kc." ma nazev ".$nazev.".<br/>"; XML aplikace 19

Implementace DOM Hierarchie tříd Kolekce metod Stejný programátorský pohled Možná nestandardní rozšíření XML aplikace 20

XML aplikace 21

Strom tříd XML aplikace 22

Práce s uzly získání uzlů a hodnot Vlastnosti nodetype nodename nodevalue parentnode childnodes firstchild lastchild previoussibling nextsibling Metody getelementbyid getelementsbytagname haschildnodes XML aplikace 23

Práce s uzly modifikace Metody insertbefore replacechild removechild appendchild clonenode normalize XML aplikace 24

Elementové uzly Vlastnosti tagname Metody getattribute setattribute removeattribute getattributenode setattributenode removeattributenode Další viz http://cz2.php.net/manual/en/ref.dom.php http://www.w3.org/tr/2004/rec-dom-level-3-core-20040407/c XML aplikace 25

Práce s třídami Základem je super třída uzlů Výběr uzlů podle typu či názvu Zpracování v rovině self či posun do jiné roviny (potomci, následníci, sourozenci ) Postupně se mění množina dostupných metod podle podtřídy se kterou pracujeme Potřeba udržování stavové informace o kontextovém uzlu XML aplikace 26

JDOM Java rozhraní pro XML Speciálně pro Javu Objektově orientované Částečně srovnatelné s běžným DOM XML aplikace 27

Děkuji za pozornost malo@pef.mendelu.cz