Procesarea documentelor XML in Linux

Documente similare
XML, cuceritorul Sabin-Corneliu Buraga Facultatea de Informatica Universitatea Al.I.Cuza Cuza Iasi infoiasi.ro inf

PowerPoint Presentation

..MINISTERUL EDUCAŢIEI NAȚIONALE ŞI CERCETARII STIINTIFICE UNIVERSITATEA DE VEST DIN TIMIȘOARA.I CENTRUL DE DEZVOLTARE ACADEMICĂ. FIȘA DISCIPLINEI 1.

Slide 1

SIVECO standard template for large documents

FIŞA DISCIPLINEI 1. Date despre program 1.1 Instituţia de învăţământ Universitatea Babeş-Bolyai Cluj-Napoca superior 1.2 Facultatea Matematică şi Info

Entrepreneurship and Technological Management

Microsoft PowerPoint - TDS5-RO.ppt

Microsoft Word - Ansamblul software CRONIS

Testare manuala: situatia in care o persoana initiaza fiecare test, interactioneaza cu el si interpreteaza, analizeaza si raporteaza rezultatele. Test

Microsoft Word - barcan.doc

Elemente de Web design

Introducere în limbajul JavaScript

..MINISTERUL EDUCAŢIEI NAȚIONALE ŞI CERCETARII STIINTIFICE UNIVERSITATEA DE VEST DIN TIMIȘOARA.I CENTRUL DE DEZVOLTARE ACADEMICĂ. FIȘA DISCIPLINEI 1.

Utilizare Internet

Proiectarea Sistemelor Software Complexe

CURS

SEM 12 - Crearea conținutului Web (HTML, CSS, WordPress)

CL2009R0976RO bi_cp 1..1

PowerPoint Presentation

ACADEMIA DE STUDII ECONOMICE DIN BUCUREŞTI Şcoala doctorală de Informatică Economică TEZĂ DE DOCTORAT REZUMAT LIDIA C. BALABAN (BĂJENARU) Titlul tezei

Utilizare Internet

Caraivan George-Alexandru Grupa 431A Interfața driver-kernel la Linux Introducere Deși pentru unii dintre noi acest lucru poate fi o supriză, cei mai

Concepte de bază ale Tehnologiei Informației

PowerPoint Presentation

XWiki

Lucrarea 10

Termeni de utilizare specifici produselor

Ruby on Rails Pop Alexandru Pavel Razvan Calculatoare 4

Microsoft Word - Catalin Vrabie_Elemente de IT paginat VOL. II.doc

..MINISTERUL EDUCAŢIEI NAȚIONALE ŞI CERCETARII STIINTIFICE UNIVERSITATEA DE VEST DIN TIMIȘOARA.I CENTRUL DE DEZVOLTARE ACADEMICĂ. FIȘA DISCIPLINEI 1.

Creational design patterns

Microsoft Word - 04-Cotfas Petru A-Rezumat RO

2 BAZE TEORETICE ALE REȚELELOR DE CALCULATOARE CAPITOLUL 2 BAZE TEORETICE ALE REŢELELOR DE CALCULATOARE 2.1. Necesitatea standardizării (referenţierii

Web Social FSEGA, UBB Lect.univ.dr. Daniel Mican LABORATOR 2. Dezvoltarea blogurilor prin intermediul WordPress.com PREZE

Prezentarea calculatorului

Capitole Speciale de Informatică Curs 1: Extragerea informaţiilor. Modelul boolean şi modelul boolean extins 27 septembrie 2018 Extragerea informaţiil

Slide 1

FIŞA DISCIPLINEI 1. Date despre program 1.1 Instituţia de învăţământ superior Universitatea de Vest din Timișoara 1.2 Facultatea Matematică și Informa

..MINISTERUL EDUCAŢIEI NAȚIONALE ŞI CERCETARII STIINTIFICE UNIVERSITATEA DE VEST DIN TIMIȘOARA.I CENTRUL DE DEZVOLTARE ACADEMICĂ. FIȘA DISCIPLINEI 1.

Biomedical Wi-Fi data transmissons

Tehnici de securitate pe bază de ontologii în sistemele de biblioteci virtuale

Microsoft PowerPoint - Prezentarea_programelor_de_studii_de_licenta_2019

Slide 1

FIŞA DISCIPLINEI 1. Date despre program 1.1 Instituţia de învăţământ superior Universitatea Alexandru Ioan Cuza din Iaşi 1.2 Facultatea Facultatea de

e-learning Agronomie Platforma de e-learning Versiunea: Ghid de utilizare Beneficiar: UNIVERSITATEA DE STIINTE AGRONOMICE SI MEDICINA VETERINARA

Platforma 5. 1 Introducere in MSSQL Introducere Pe parcursul ultimilor ani, se poate observa o cuplare a limbajelor de programare majore cu tipuri de

PLAN DE ÎNVĂŢĂMÂNT

Pentru documentele inițiate de dumneavoastră care necesită antetul cabinetului ministrului, vă rugăm să utilizați acest șablon, completat cu următoare

Microsoft Word - Curs_08.doc

PowerPoint-Präsentation

Laborator 3

Laborator 5 - Paradigme de Programare

FIŞA DISCIPLINEI 1. Date despre program 1.1 Instituţia de învăţământ superior Universitatea Babeş-Bolyai Cluj-Napoca 1.2 Facultatea Matematică şi Info

Interfețe și Protocoale de Comunicații Arduino-Port Paralel Arduino. Laborator 1- Portul Paralel 1 Caracteristici generale Arduino UNO este o placă de

PowerPoint Presentation

..MINISTERUL EDUCAŢIEI NAȚIONALE ŞI CERCETARII STIINTIFICE UNIVERSITATEA DE VEST DIN TIMIȘOARA.I CENTRUL DE DEZVOLTARE ACADEMICĂ. FIŞA DISCIPLINEI (CO

MINISTERUL EDUCAŢIEI AL REPUBLICII MOLDOVA COORDONAT: " " 2017 Nr. de înregistrare a planului de învăţământ UNIVERSITATEA DE STAT DIN MOLDOVA Aprobat:

Procesarea Imaginilor - Laborator 1: Introducere în utilizarea bibliotecii OpenCV 1 1. Introducere în utilizarea bibliotecii OpenCV 1.1. Introducere S

FIŞA DISCIPLINEI 1. Date despre program 1.1 Instituţia de învăţământ Universitatea Babeş-Bolyai Cluj-Napoca superior 1.2 Facultatea Facultatea de Mate

Nr

COLEGIUL TEHNIC „VICTOR UNGUREANU” CAMPIA TURZII

Manual de utilizare a Sistemului Informațional al Institutului Național al Justiției (SI INJ) intranet.inj.md Ver.2 Manual de utilizare a Sistemului I

Curs 10 - Automatizarea scalabila a sistemelor

PPSD

Gestionarea I/E

A TANTÁRGY ADATLAPJA

Ghid de utilizare Moodle Pentru cadre didactice

1 Core JavaScript Programming Descrierea cursului Bazele programării JavaScript și programarea bazată pe limbajul C. Implementarea lui JavaScript în H

rptFisa

Title (in romanian or english, caps lock, Times New Roman, bold, 14pt, center)

1

Facultatea de Electronica Telecomunicatii si Tehnologia Informatiei Arhitectura.Net Indrumator : Conf. dr. ing. Stefan Stancescu Masterand: ing. Codru

Raport tehnic şi ştiinţific final privind implementarea proiectului PN-III-P2-2.1-PED Acronim: ForVer Răzvan Diaconescu Decembrie Rez

Cuprins

proiectarea bazelor de date

Settlement participant system

Utilizare Internet

Inserarea culorilor in tabele

Microsoft Word - Fisa disciplinei BD_I_IE doc

Poo Laboratoare 1 Contents Laborator7 2 1 Colecţii de obiecte în Java Interfaţa Iterator Interfaţa C

PLAN DE ÎNVĂŢĂMÂNT

PROGRAMA DE EXAMEN

Utilizare Internet

PowerPoint Presentation

Instructiuni pt. depunerea declaratiei A4200 Declaratia A4200 se construieste pornind de la o colectie de fisiere XML, reprezentand fiecare o zi fisca

Facultatea de Științe Politice, Administrative și ale Comunicării Str. Traian Moșoiu nr. 71 Cluj-Napoca, RO Tel.: Fax:

Microsoft Word - versiunea D doc

Microsoft PowerPoint - 11_USO_curs_08.ppt [Compatibility Mode]

Universitatea Politehnica din București Facultatea de Electronică, Telecomunicații și Tehnologia Informației Metode de extindere a duratei de viaţă a

Carrier Pidgeon Protocol

FIŞA UNITĂŢII DE CURS/MODULULUI MD-2004, CHIŞINĂU, BD. ȘTEFAN CEL MARE, 168, TEL: , TEHNOLOGII INFORMAŢIONALE APLICATE 1. Date

chilom.doc

ROMÂNIA MINISTERUL EDUCAŢIEI NAȚIONALE Domeniul fundamental: Matematică și știinţe ale naturii Domeniul de licenţă: Informatică Ciclu de studii: 1 Pro

Curs 10

Slide 1

Transcriere:

Procesarea documentelor XML in Linux Sabin-Corneliu Buraga Facultatea de Informatica Universitatea A.I.Cuza din Iasi, Romania http://www.infoiasi.ro/~busaco/ Sabin Buraga < busaco@infoiasi.ro > 1

cuprins CeesteXML? Caracterizare, aplicatii & instrumente Maniere de procesare Modelul DOM Interfata SAX SAX vs. DOM Concluzii Sabin Buraga < busaco@infoiasi.ro > 2

ce este XML? XML (Extensible Markup Language) Meta-limbaj de adnotare (marcare) Set de conventii de marcare utilizate pentru codificarea informatiilor Specifica multimea de marcaje (tag-uri) obligatorii, identificarea si semantica marcajelor Marcaje descriptive Tipuri de documente: Specificarea formala a partilor & structurii DTD (Document Type Definition) XML Schema Independenta datelor Independent de platforma hard/soft Suport pentru uz international Sabin Buraga < busaco@infoiasi.ro > 3

ce este XML? Standard W3C (1998, 2000, 2004) http://www.w3.org/tr/rec-xml Exemplu: <?xml version= 1.0?> <eveniment data= sep 2005 loc= Arad > <tutorial>procesare XML in Linux</tutorial> <autor email= busaco@infoiasi.ro > Sabin-Corneliu Buraga </autor> </eveniment> Element (Tag) Instr.procesare Atribut Sabin Buraga < busaco@infoiasi.ro > 4

ce este XML? Familia XML XML (Extensible Markup Language) meta-limbajul propriu-zis XLL (Extensible Linking Language) XLink hiper-legaturi intre documente XPointer localizarea relativa a resurselor XSL (Extensible Stylesheet Language) transformare/formatare date XML Sabin Buraga < busaco@infoiasi.ro > 5

xml exemplu <?xml version= 1.0?> <antologie pag=... > <poem limba=... > <titlu>...</titlu> <strofa> <vers>...</vers> <vers>...</vers>... </strofa> </poem>... <!-- mai multe poeme... (acesta e un comentariu) --> </antologie> Sabin Buraga < busaco@infoiasi.ro > 6

xml aplicatii Formatarea continutului in navigatorul Web: XHTML (Extensible HTML) in medii mobile, fara fir: WML (Wireless Markup Language) Reprezentarea diferitelor tipuri de continut expresii matematice: MathML grafica vectoriala: SVG (Scalable Vector Graphics) multimedia sincronizata: SMIL (Synchronized Multimedia Integration Language) componente ale interfetei-utilizator: XUL (Extensible User-interface Language) reguli de realizare a afacerilor electronice: BRML (Business Rules Markup Language) Sabin Buraga < busaco@infoiasi.ro > 7

xml aplicatii Descrierea resurselor Web RSS (Rich/RDF Site Summary) RDF (Resource Description Framework) OWL (Web Ontology Language) Descrierea serviciilor Web WSDL (Web Services Description Language) SOAP (Simple Object Access Protocol) Realizarea de interogari asupra datelor XML XQuery XQueryX Detalii: http://xml.coverpages.org/ Sabin Buraga < busaco@infoiasi.ro > 8

xml privire de ansamblu XML ca principiu unificator al tehnologiilor: Procesarea documentelor Stocarea & procesarea traditionala a datelor Internet-ul Sabin Buraga < busaco@infoiasi.ro > 9

xml instrumente Tipuri: Analizoare (parsere) XML Vizualizatoare & editoare structurale Formatatoare Sisteme de gestiune a bazelor de date orientate-text (baze de date native XML) Sisteme hipertext...si multe altele Sabin Buraga < busaco@infoiasi.ro > 10

procesare XML Tipuri de procesari XML Procesare manuala (e.g., expresii regulate) Procesare obiectuala (DOM & non-dom) Procesare condusa de evenimente (SAX & non-sax) Procesare particulara (via interfete specializate e.g. XLink, RSS, SOAP, ) Sabin Buraga < busaco@infoiasi.ro > 11

procesare XML Procesoare (analizoare) XML Fara validare verifica doar daca documentul este bine-formatat (Expat, libxml,...) Cu validare verificadacadocumentul este valid, folosind un DTD sau o schema (Apache Xerces, Qt,...) Sabin Buraga < busaco@infoiasi.ro > 12

dom intro/1 DOM (Document Object Model) Scop: procesarea obiectuala a documentelor XML/HTML API (interfata de programare a aplicatiilor) abstract pentru XML/HTML Independenta de platforma & limbaj Defineste o structura logica arborescenta a documentelor XML Document set de obiecte (arbore) Sabin Buraga < busaco@infoiasi.ro > 13

dom intro/2 Standard al Consortiului Web Niveluri de specificare: DOM 1 (1998) http://www.w3.org/tr/rec-dom-level-1/ DOM Core pentru XML DOM HTML DOM 2 (2001) http://www.w3.org/tr/rec-dom-level-2/ DOM 3 (partial standardizat) http://www.w3.org/tr/dom-level-3-core/ Sabin Buraga < busaco@infoiasi.ro > 14

dom implementari domxml extensie pentru PHP JDOM interfata de programare special construita pentru Java: http://www.jdom.org libxml API oferit de GNOME: http://www.xmlsoft.org QDOM parte a Trillian Qt (C++) Xerces DOM API platforma XML pentru C++ si Java: http://xml.apache.org/ XML::DOM modul Perl pentru DOM1, bazat pe Expat (XML::Parser) Sabin Buraga < busaco@infoiasi.ro > 15

dom implementari Document XML Metoda save() salveaza arborele DOM ca fisier XML API-ul XML Aplicatie / Script Sabin Buraga < busaco@infoiasi.ro > 16

dom browser Vizualizarea/procesarea documentelor XHTML si XML se realizeaza via DOM in limbajul de scripting acceptat de navigator ECMAScript standard: www.ecma.ch JavaScript (Gecko + Expat in Mozilla/Firefox) De obicei se folosesc analizoare XML fara validare (Expat) Exemplu: Inspectarea obiectelor DOM direct in Mozilla/Firefox via DOM Inspector Sabin Buraga < busaco@infoiasi.ro > 17

dom demo Exemple demonstrative de procesari XML in C++ & PHP LVLE 2005 Arad,, 12-1414 septembrie 2005 Sabin Buraga < busaco@infoiasi.ro > 18

sax intro Scop: manipularea documentelor XML fara ca in prealabil sa fie construit arborele de noduri-obiect documentul nu trebuie stocat complet in memorie inainte de a fi prelucrat Ofera o procesare XML secventiala (liniara), orientata-eveniment Sabin Buraga < busaco@infoiasi.ro > 19

sax intro Efort independent (de W3C) de standardizare a procesarii XML condusa de evenimente SAX 1.0 SAX 2.0 (spatii de nume + extensii) Initiator: David Megginson SAX larg acceptat ca standard industrial http://www.megginson.com/sax/ http://www.saxproject.org Sabin Buraga < busaco@infoiasi.ro > 20

sax procesare Modelul procesarii: Pentru fiecare tip de constructie XML (inceput de tag, sfirsit de tag, continut, instructiune de procesare, comentariu,...) se va aprinde un eveniment care va fi tratat de o functie/metoda (handler) Functiile de tratare se specifica de catre programator, pentru fiecare tip de constructie in parte Programul consuma si trateaza evenimente produse de procesorul SAX Sabin Buraga < busaco@infoiasi.ro > 21

sax implementari libxml API oferit de GNOME (C) org.xml.sax API pentru Java QSAX parte a Trillian Qt (C++) Xerces SAX API platforma XML pentru C++ si Java: http://xml.apache.org/ XML::Parser modulperl (bazat pe Expat) xml_*() functii PHP Sabin Buraga < busaco@infoiasi.ro > 22

sax demo Exemple demonstrative de procesari XML in C++, Perl si PHP LVLE 2005 Arad,, 12-1414 septembrie 2005 Sabin Buraga < busaco@infoiasi.ro > 23

sax vs. dom Cind trebuie folosit SAX? Procesarea unor documente de mari dimensiuni Necesitatea abandonarii procesarii (procesorul SAX poate fi oprit oricind) Extragerea unor informatii de mici dimensiuni Crearea unei structuri noi de document XML Utilizarea in contextul unor resurse computationale reduse (memorie scazuta, largime de banda ingusta,...) Sabin Buraga < busaco@infoiasi.ro > 24

sax vs. dom Cind trebuie folosit DOM? Accesul direct la datele dintr-un document XML Cautaricomplexe Necesitatea efectuarii de transformari XSL Filtrarea complexa a datelor via XPath Necesitatea modificarii si salvarii documentelor XML In contextul procesarii XML direct in cadrul navigatorului Sabin Buraga < busaco@infoiasi.ro > 25

sax vs. dom DOM necesita incarcarea completa a documentului XML in vederea procesarii ca arbore SAX necesita pentru procesare existenta unor fragmenteredusedin document, efectuindu-se o prelucrare liniara (sir de evenimente) SAX poate fi utilizat pentru generarea de arbori DOM; invers, arborii DOM pot fi traversati pentru a se emite evenimente SAX In cazul unor structuri XML sofisticate, modul de procesare SAX poate fi inadecvat Unele implementari SAX ofera suport pentru validari si transformari Uzual, se folosesc ambele API-uri Sabin Buraga < busaco@infoiasi.ro > 26

concluzii Orice distributie Linux ofera o multitudine de modalitati de procesare a documentelor XML, via biblioteci (API-uri) pentru diverse limbaje (C, C++, Perl, PHP, Python,...) De asemenea, pot fi folosite biblioteci sau platforme open source, unele chiar independente de sistem (cazul Java ori PHP) Sabin Buraga < busaco@infoiasi.ro > 27

referinte S. Buraga, Tehnologii Web, Matrix Rom, Bucuresti, 2001: http://www.infoiasi.ro/~busaco/books.html S. Buraga (coord.), Aplicatii Web la cheie. Studii de caz implementate in PHP, Polirom, Iasi, 2003: http://www.infoiasi.ro/~phpapps S. Buraga et al., Programare Web in bash si Perl, Polirom, Iasi, 2002: http://www.infoiasi.ro/~cgi * * *, Apache XML: http://xml.apache.org/ * * *, SAX: http://www.saxproject.org/ * * *, Consortiul Web: http://www.w3.org/ Sabin Buraga < busaco@infoiasi.ro > 28

rezumat CeesteXML? Caracterizare, aplicatii & instrumente Maniere de procesare ModelulDOM Interfata SAX SAX vs. DOM Concluzii Sabin Buraga < busaco@infoiasi.ro > 29

Multumiri pentru atentie! Intrebari? LVLE 2005 Arad,, 12-1414 septembrie 2005 Sabin Buraga < busaco@infoiasi.ro > 30