XML adatkezelés I. Az SAX szabvány. Dr. Kovács László Miskolci Egyetem Általános Informatikai Tanszék. XML adatok kezelési lehetőségei

Hasonló dokumentumok
34. Elsődleges kulcs megadása XMLSchema-ban Idegen kulcs megadása XMLSchema-ban Típusok kategóriái és saját típus megadásának

XML dokumentumok feldolgozása. DOM, SAX, StAX

XML adatkezelés. A DOM alapú adatkezelés. Dr. Kovács László Répási Tibor kiegészítéseivel

Kivételek kezelése (exception handling) Hibakezelés old style. Kivételkezelés

Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges. Könyvtárhierarhiát fed: Pl.: java/util/scanner.java

Abstract osztályok és interface-ek. 7-dik gyakorlat

Bánsághi Anna

Kivételkezelés, beágyazott osztályok. Nyolcadik gyakorlat

Objektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN

Az emelt szintű. informatika érettségi. programozási feladatainak. megoldása Java nyelven. NetBeans IDE 8.1 környezetben

Programozási nyelvek Java

Vé V g é r g e r h e a h j a tá t s á i s s z s ál á ak a Runnable, Thread

JNDI - alapok. Java Naming and Directory Interface

Java Programozás 11. Ea: MVC modell

Java IX. telkezelés a Java-ban

Kivételkezelés, naplózás. Exception handling, logging

Java IX. telkezelés a Java-ban

Java bevezet o Kab odi L aszl o Kab odi L aszl o Java bevezet o

Segédanyag: Java alkalmazások gyakorlat

Segédanyag: Java alkalmazások gyakorlat

Helyes-e az alábbi kódrészlet? int i = 1; i = i * 3 + 1; int j; j = i + 1; Nem. Igen. Hányféleképpen lehet Javaban megjegyzést írni?

Enterprise JavaBeans 1.4 platform (EJB 2.0)

7. K: JAVA alapok Konzultáció

Adatbázisok webalkalmazásokban

CREATE TABLE student ( id int NOT NULL GENERATED ALWAYS AS IDENTITY PRIMARY KEY, name varchar(100) NOT NULL, address varchar(100) NOT NULL )

Java és web programozás

Hello World Servlet. Készítsünk egy szervletet, amellyel összeadhatunk két számot, és meghívásakor üdvözlőszöveget ír a konzolra.

Java programozási nyelv 4. rész Osztályok II.

Objektumorientált programozás C# nyelven

Java XML kezelés labor

Parsing and Application

Informatika terméktervezőknek

Enterprise JavaBeans. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem. Az Enterprise JavaBeans

Objektumorientált programozás C# nyelven III.

Programozási nyelvek és módszerek Java Thread-ek

Ja J v a a v a há h l á óz ó a z t a i al a ka k l a maz ma á z s á o s k o Socket, URL

Adatbázis alapú rendszerek gyakorlat Adatbázis alapú alkalmazásfejlesztés Java, C# környezetben

Java programozási nyelv

Programozási nyelvek II.: JAVA

Hálózatkezelés. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Hálózatkezelés / 20

Java VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás:

SZÁMÍTÓGÉPES ADATBÁZIS-KEZELÉS. A MySQL adatbáziskezelő PHP folytatás JDBC, ODBC

Webes alkalmazások fejlesztése 8. előadás. Webszolgáltatások megvalósítása (ASP.NET WebAPI)

Programozás BMEKOKAA146. Dr. Bécsi Tamás 5. előadás

Java Programozás 1. Gy: Java alapok. Ismétlés ++

XML dokumentumok feldolgozása Java-ban XML, DTD, XSD, XSLT, JAXP, DOM, SAX, JDOM

Java Programozás 8. Gy: Java alapok. Adatkezelő 4.rész

Java Programozás 4. Gy: Java GUI. Tipper, MVC kalkulátor

Az új be- és kimenet könyvtár

Java és web programozás

BME MOGI Gépészeti informatika 4.

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

Concurrency in Swing

Java Server Pages - JSP. Web Technológiák. Java Server Pages - JSP. JSP lapok életciklusa

Java és web programozás

Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Szoftvertechnológia alapjai Java előadások

Java Programozás 7. Gy: Java alapok. Adatkezelő 3.rész

Gelle Kitti Algoritmusok és adatszerkezetek gyakorlat - 07 Hasítótáblák

I. 288.: Utcai WiFi térkép

OOP: Java 8.Gy: Abstract osztályok, interfészek

JavaServer Pages (JSP) (folytatás)

Java Programozás 9. Gy: Java alapok. Adatkezelő 5.rész

BME MOGI Gépészeti informatika 8.

PHP II. WEB technológiák. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) PHP II / 19

Hello, EJB! Egy egyszerű példa

strings.xml res/values/strings.xml fájlban hozzuk létre a hiányzó string adatforrásainkat A jelenlegi helyett ez álljon: <resources> <string

Java Programozás 3. Gy: Java GUI. Swing, AWT

JEE tutorial. Zsíros Levente, 2012

OOP: Java 11.Gy: Enumok, beágyazott osztályok. 13/1 B ITv: MAN

Objektum orientált programozás Java-ban

Szoftvertechnológia alapjai Java előadások

DINAMIKUS MULTIMÉDIÁS TARTALOM...

Java RMI Áttekintés. A Java RMI. A Java RMI architektúrája. Ficsor Lajos. Általános Infromatikai Tanszék Miskolci Egyetem 1.

Java gyakorlat feladatai e s megolda sai ( )

Programozás I. 1. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

OOP és UML Áttekintés

Objektumorientált programozás C# nyelven

Az XML dokumentumok adatmodellje

Eddig még nem használt vezérlőket is megismerünk: PlaceHolder, RadioButtonList.

Segédanyag: Java alkalmazások gyakorlat

Osztálytervezés és implementációs ajánlások

Osztálytervezés és implementációs ajánlások

OOP: Java 6.Gy: Java osztályok. Definíció, static, túlterhelés

Programozás BMEKOKAA146. Dr. Bécsi Tamás 1. Előadás

WCF, Entity Framework, ASP.NET, WPF 1. WCF service-t (adatbázissal Entity Framework) 2. ASP.NET kliens 3. WPF kliens

Access adatbázis elérése OLE DB-n keresztül

Java és web programozás

Kivételek. A program végrehajtása során ritkán bekövetkező események Nem a fő végrehajtási ág ; logikailag alacsonyabbrendű feladat jelzése

Java II. I A Java programozási nyelv alapelemei

OOP: Java 5.Gy: Osztály, referencia, konstruktor

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás

Grafikus felhasználói felületek. Abstract Window Toolkit, a java.awt és java.awt.event csomagok

OOP: Java 4.Gy: Java osztályok

BME MOGI Gépészeti informatika 1.

3. Határozza meg és írja ki a minta szerint, hogy a forrásállományban hány kémiai elem felfedezési adatai

Osztályok. construct () destruct() $b=new Book(); $b=null; unset ($b); book.php: <?php class Book { private $isbn; public $title;

Programozási technológia

Java programozási nyelv 6. rész Java a gyakorlatban

OOP: Java 8.Gy: Gyakorlás

Átírás:

XML adatkezelés I. Az szabvány Dr. Kovács László Miskolci Egyetem Általános Informatikai Tanszék XML adatok kezelési lehetőségei szövegszerkesztő API XML DOM API XSL XQUERY Az XML dokumentumok feldolgozó felülete = Simple API for XML Az értelmező szekvenciálisan feldolgozza az XML dokumentumot, s minden fontosabb eseményről értesíti a kezelő programot callback mechanizmussal XML feldolgozó startelement Kezelő program endelement

A feldolgozó biztosít egy osztálykönyvtárt, melyen keresztül lehet definiálni és elérhetővé tenni a callback kezelő függvényeket. Java minta környezet Fontosabb lépések: - dokumentum olvasó létrehozása - tartalomkezelő keret létrehozása - az eseménykezelő metódusok létrehozása - hibakezelő metódusok létrehozása <orszagok> <orszag kod="i2"> Alma </orszag> <orszag kod="i2"> Korte </orszag> </orszagok> XML element attribute text Esemény kezelők Esemény érzékelő feldolgozó kapcsolódási felületei: -Parser - DocumentHandler - AttributeList - ErrorHandler - Entity Resolver - Locator - DTDHandler Parser XML Kliens ContentHandler Element Text DocumentHandler AttributeList Entity Resolver

Dokumentum olvasó létrehozása import org.xml.sax.xmlreader; import org.apache.xerces.parsers.parser ;.. public class ERT { public void kezelo(string URI) { XMLReader parser = new Parser();.. public static void main(string[] args) { ERT pdemo = new ERT(); pdemo.kezelo( uri ); Dokumentum értelmezési folyamatának elindítása import org.xml.sax.exception;.. public void kezelo(string URI) { try { XMLReader parser = new Parser(); parser.parse(); catch (Exception e) { Tartalom kezelő keret létrehozása import org.xml.sax.attributes; import org.xml.sax.contenthandler; import org.xml.sax.locator; Class Skezelo implements ContentHandler{ kezelo metodusok public void kezelo(string URI) { XMLReader parser = new Parser(); Skezelo Shand = new Skezelo(); parser.setcontenthandler(shand); parser.parse(uri);

Esemény kezelő metódusok létrehozása Class Skezelo implements ContentHandler{ public void startdocument() { throws Exception (); public void enddocument() { throws Exception (); public void startelement() { throws Exception (); Esemény kezelő metódusok létrehozása - dokumentumban aktuális pozíció - dokumentum kezdete - dokumentum vége - elem kezdete - elem vége - prefix feldolgozás - karakter rész elérés - entity rész - direktivák -névterek - attributumok void startelement(string name, AttributeList atts) Esemény helyének lekérdezése public void setdocumentlocator (Locator loc) { Minden eseménykor meghívódik, megadva az aktuális Locator elemet

Dokumentum kezdetének és végének eseménye public void startdocument () throws Exception{ public void enddocument () throws Exception{ Feldolgozási utasítás eseménye: public void processinginstruction (String feldolgozo, String adat) throws Exception{ Névtér definíció kezdete: public void startprefixmapping (String alias, String névter) throws Exception{ Névtér definíció vége: public void endprefixmapping (String alias) throws Exception{ Elem kezdete: public void startelement (String névtér, String lokálisnév, String teljesnév, Attributes elemjellemzők) throws Exception{ Elem vége: public void endelement (String névtér, String lokálisnév, String teljesnév) throws Exception{

Karakterek észlelése: public void characters (char[] karakterlánc, int kezdőpozíció, int végpozíció) throws Exception{ Átugrott egyedek: public void skippedentity (String név) throws Exception{ mintapélda public static void main(string[] args) { xmlfo xmlfo = new xmlfo(); XML doksi = new XML(); doksi.kezelo("c:\\jdeveloper\\proba1.xml"); import org.xml.sax.exception; import org.xml.sax.xmlreader; public class XML { public void kezelo(string args) { try { XMLReader parser = new Parser(); Skezelo Shand = new Skezelo(); parser.setcontenthandler(shand); parser.parse(args); catch (Exception e) { System.out.println(e.getMessage()); catch (IOException e) { System.out.println(e.getMessage());

import org.xml.sax.attributes; import org.xml.sax.contenthandler; import org.xml.sax.locator; import org.xml.sax.exception; public class Skezelo implements ContentHandler { private Locator loc; public Skezelo() { public void setdocumentlocator (Locator lloc) { this.loc = lloc; public void startdocument() throws Exception { System.out.println("dok. kezdet"); public void enddocument() throws Exception { System.out.println("dok. veg"); public void startprefixmapping(string prefix, String uri) throws Exception { System.out.println("prefix:" + prefix +" : " + uri); public void endprefixmapping(string prefix) throws Exception { System.out.println("prefix vege:" + prefix); public void processinginstruction (String target, String data) throws Exception { System.out.println("Feld. utasitas:" + target); public void startelement (String namespaceuri, String localname, String rawname, Attributes atts) throws Exception { System.out.println ("elemkezdet:"+localname); for (int i=0; i<atts.getlength(); i++ ){ System.out.println(atts.getLocalName(i)+":"+atts.getValue(i));

public void endelement (String namespaceuri, String localname, String rawname) throws Exception { System.out.println("elem vege:"+ localname); public void characters (char[] ch, int start, int length) throws Exception { String ered = new String(); for (int i=start; i<start+length;i++) { ered += ch[i]; System.out.println(ered);