Tehnologii Web (prezentările aferente disciplinei predate de Sabin Buraga la Facultatea de Informatică, Universitatea A.I. Cuza din Iași) – detalii la http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
O prezentare despre aspectele de bază ale limbajului de programare JavaScript destinată în special începătorilor (e.g., elevilor de liceu) în contextul dezvoltării de aplicații Web la nivel de client.
A presentation regarding the basic aspects of the JavaScript programming language especially focused on beginners (e.g., high-school students) in the context of client-side Web application development.
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...Sabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2016 (05/13) Programare Web – Dezvoltarea aplicațiilor Web via Node.jsSabin Buraga
Tehnologii Web (prezentările aferente disciplinei predate de Sabin Buraga la Facultatea de Informatică, Universitatea A.I. Cuza din Iași) – detalii la http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2016 (04/13) Programare Web – Dezvoltarea aplicațiilor Web în PHPSabin Buraga
Tehnologii Web (prezentările aferente disciplinei predate de Sabin Buraga la Facultatea de Informatică, Universitatea A.I. Cuza din Iași) – detalii la http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
O prelegere din cadrul materiei "aplicaţiilor Web la nivel de client" (CLIW), fondată și predată de Sabin Buraga la Facultatea de Informatică a Universității "Alexandru Ioan Cuza" din Iași.
Detalii la https://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
O prezentare despre aspectele de bază ale limbajului de programare JavaScript destinată în special începătorilor (e.g., elevilor de liceu) în contextul dezvoltării de aplicații Web la nivel de client.
A presentation regarding the basic aspects of the JavaScript programming language especially focused on beginners (e.g., high-school students) in the context of client-side Web application development.
Web 2020 07/12: Procesarea datelor XML & HTML – Simple API for XML. Procesări...Sabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2016 (05/13) Programare Web – Dezvoltarea aplicațiilor Web via Node.jsSabin Buraga
Tehnologii Web (prezentările aferente disciplinei predate de Sabin Buraga la Facultatea de Informatică, Universitatea A.I. Cuza din Iași) – detalii la http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2016 (04/13) Programare Web – Dezvoltarea aplicațiilor Web în PHPSabin Buraga
Tehnologii Web (prezentările aferente disciplinei predate de Sabin Buraga la Facultatea de Informatică, Universitatea A.I. Cuza din Iași) – detalii la http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
O prelegere din cadrul materiei "aplicaţiilor Web la nivel de client" (CLIW), fondată și predată de Sabin Buraga la Facultatea de Informatică a Universității "Alexandru Ioan Cuza" din Iași.
Detalii la https://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
Un mini-tutorial pentru începători (participanți la Școala de vară "Informatica la Castel", Macea, Arad, 2014) privitor la limbajul JavaScript, prezentând caracteristicile esențiale și maniera de rulare la nivel de client (navigator). Sunt incluse exemplificări bazate pe biblioteca jQuery. Acces la codul-sursă: http://jsfiddle.net/user/busaco/
A mini-tutorial for beginners (participants to "Computer Science at the Castel" Summer School, Macea, Arad, 2014) regarding main features of the JavaScript programming language for the front-end Web development. Several examples, using jQuery library, are also provided.
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...Sabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 09/12: Servicii Web. Paradigma RESTSabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
CLIW 2015-2016 (13/13) Perspective Web la nivel de client. Limbajul ES6Sabin Buraga
Cele mai importante aspecte referitoare la noua versiune a limbajului JavaScript (ES6 sau ECMAScript 2015), inclusiv diverse exemplificări. Detalii la http://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
CLIW 2017-2018 (7/12) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...Sabin Buraga
O prelegere din cadrul materiei "aplicaţiilor Web la nivel de client" (CLIW), fondată și predată de Sabin Buraga la Facultatea de Informatică a Universității "Alexandru Ioan Cuza" din Iași.
Detalii la https://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...Sabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
CLIW 2015-2016 (10/13) Programare Web. Suita de tehnologii HTML5Sabin Buraga
O viziune de ansamblu asupra suitei de tehnologii HTML5, plus exemple referitoare la generarea de conținut multimedia via SVG sau via elementul canvas. Detalii la http://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
O prelegere din cadrul materiei "aplicaţiilor Web la nivel de client" (CLIW), fondată și predată de Sabin Buraga la Facultatea de Informatică a Universității "Alexandru Ioan Cuza" din Iași.
Detalii la https://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object ModelSabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
CLIW 2017-2018 (5/12) Limbajul de programare JavaScript. Aspecte esenţialeSabin Buraga
O prelegere din cadrul materiei "aplicaţiilor Web la nivel de client" (CLIW), fondată și predată de Sabin Buraga la Facultatea de Informatică a Universității "Alexandru Ioan Cuza" din Iași.
Detalii la https://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
Web 2016 (07/13) Modelarea datelor. Extragerea datelor cu XPath. Validări XML...Sabin Buraga
Tehnologii Web (prezentările aferente disciplinei predate de Sabin Buraga la Facultatea de Informatică, Universitatea A.I. Cuza din Iași) – detalii la http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP Sabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
CLIW 2015-2016 (7/13) Limbajul de programare JavaScriptSabin Buraga
Aspecte esențiale referitoare la limbajul de programare JavaScript (de la sintaxa de bază la obiecte & date JSON). Detalii la http://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
WADe 2017-2018 Tutorial (1/3): Web Application Development with Node.js – An ...Sabin Buraga
A lecture delivered for "Web Application Development" discipline (MSc studies at Faculty of Computer Science, 'Alexandru Ioan Cuza' University of Iasi, Romania): https://profs.info.uaic.ro/~busaco/teach/courses/wade/web-film.html
CLIW 2015-2016 (8/13) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...Sabin Buraga
Despre programarea în limbajul JavaScript direct în browser-ul Web (DOM, Ajax, Comet, mash-up, CORS și multe altele). Detalii la http://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
Un mini-tutorial pentru începători (participanți la Școala de vară "Informatica la Castel", Macea, Arad, 2014) privitor la limbajul JavaScript, prezentând caracteristicile esențiale și maniera de rulare la nivel de client (navigator). Sunt incluse exemplificări bazate pe biblioteca jQuery. Acces la codul-sursă: http://jsfiddle.net/user/busaco/
A mini-tutorial for beginners (participants to "Computer Science at the Castel" Summer School, Macea, Arad, 2014) regarding main features of the JavaScript programming language for the front-end Web development. Several examples, using jQuery library, are also provided.
Web 2020 05/12: Modelarea datelor. Familia XML. Extragerea datelor cu XPath. ...Sabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 09/12: Servicii Web. Paradigma RESTSabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
CLIW 2015-2016 (13/13) Perspective Web la nivel de client. Limbajul ES6Sabin Buraga
Cele mai importante aspecte referitoare la noua versiune a limbajului JavaScript (ES6 sau ECMAScript 2015), inclusiv diverse exemplificări. Detalii la http://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
CLIW 2017-2018 (7/12) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...Sabin Buraga
O prelegere din cadrul materiei "aplicaţiilor Web la nivel de client" (CLIW), fondată și predată de Sabin Buraga la Facultatea de Informatică a Universității "Alexandru Ioan Cuza" din Iași.
Detalii la https://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
Web 2020 11/12: Interacţiune Web asincronă. Aplicaţii Web de tip mash-up. JAM...Sabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
CLIW 2015-2016 (10/13) Programare Web. Suita de tehnologii HTML5Sabin Buraga
O viziune de ansamblu asupra suitei de tehnologii HTML5, plus exemple referitoare la generarea de conținut multimedia via SVG sau via elementul canvas. Detalii la http://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
O prelegere din cadrul materiei "aplicaţiilor Web la nivel de client" (CLIW), fondată și predată de Sabin Buraga la Facultatea de Informatică a Universității "Alexandru Ioan Cuza" din Iași.
Detalii la https://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
Web 2020 06/12: Procesarea datelor XML & HTML. Document Object ModelSabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
CLIW 2017-2018 (5/12) Limbajul de programare JavaScript. Aspecte esenţialeSabin Buraga
O prelegere din cadrul materiei "aplicaţiilor Web la nivel de client" (CLIW), fondată și predată de Sabin Buraga la Facultatea de Informatică a Universității "Alexandru Ioan Cuza" din Iași.
Detalii la https://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
Web 2016 (07/13) Modelarea datelor. Extragerea datelor cu XPath. Validări XML...Sabin Buraga
Tehnologii Web (prezentările aferente disciplinei predate de Sabin Buraga la Facultatea de Informatică, Universitatea A.I. Cuza din Iași) – detalii la http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 04/12: Programare Web – Dezvoltarea aplicaţiilor Web în PHP Sabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
CLIW 2015-2016 (7/13) Limbajul de programare JavaScriptSabin Buraga
Aspecte esențiale referitoare la limbajul de programare JavaScript (de la sintaxa de bază la obiecte & date JSON). Detalii la http://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
WADe 2017-2018 Tutorial (1/3): Web Application Development with Node.js – An ...Sabin Buraga
A lecture delivered for "Web Application Development" discipline (MSc studies at Faculty of Computer Science, 'Alexandru Ioan Cuza' University of Iasi, Romania): https://profs.info.uaic.ro/~busaco/teach/courses/wade/web-film.html
CLIW 2015-2016 (8/13) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...Sabin Buraga
Despre programarea în limbajul JavaScript direct în browser-ul Web (DOM, Ajax, Comet, mash-up, CORS și multe altele). Detalii la http://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
O lectie de anatomie Web. Disectia unui document HTMLSabin Buraga
A presentation -- prepared for InfoEducatie 2012, a national IT contest for high-school students -- regarding the main methods to access (and process) parts of a HTML document by using CSS, XPath, and JavaScript (jQuery).
Detalii despre cele mai importante API-uri JavaScript standardizate specifice HTML5 pe care le oferă navigatoarele Web actuale, inclusiv diverse exemple. Detalii la http://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
WADe 2017-2018 (5/12) Data Modeling in RDF (Resource Description Framework)Sabin Buraga
A lecture delivered for "Web Application Development" discipline (MSc studies at Faculty of Computer Science, 'Alexandru Ioan Cuza' University of Iasi, Romania): https://profs.info.uaic.ro/~busaco/teach/courses/wade/web-film.html
Web 2016 (06/13) Modelarea datelor. Familia XML + spații de numeSabin Buraga
Tehnologii Web (prezentările aferente disciplinei predate de Sabin Buraga la Facultatea de Informatică, Universitatea A.I. Cuza din Iași) – detalii la http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
STAW 06/12: JavaScript în navigatorul Web. De la DOM la Ajax şi mash-up-uriSabin Buraga
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
Web 2016 (08/13) Procesarea datelor XML & HTML. Document Object ModelSabin Buraga
Tehnologii Web (prezentările aferente disciplinei predate de Sabin Buraga la Facultatea de Informatică, Universitatea A.I. Cuza din Iași) – detalii la http://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Diverse aspecte privind ingineria dezvoltării aplicaţiilor JavaScript, inclusiv utilizarea instrumentelor software specifice. Detalii la http://profs.info.uaic.ro/~busaco/teach/courses/cliw/web-film.html
Similar to Web 2016 (09/13) Procesarea datelor XML & HTML. Simple API for XML. Procesări simplificate (20)
Web 2020 01/12: World Wide Web – aspecte arhitecturaleSabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 02/12: Programare Web – HTTP. Cookie-uri. Sesiuni WebSabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 03/12: Programare Web – Arhitectura aplicaţiilor Web. Inginerie WebSabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 08/12: Servicii Web. De la arhitecturi orientate spre servicii la SO...Sabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 10/12: Servicii Web. Micro-servicii. Serverless. Specificarea API-ur...Sabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Web 2020 12/12: Securitatea aplicaţiilor Web. Aspecte esenţialeSabin Buraga
Prelegere din cadrul materiei "Tehnologii Web" predată de Dr. Sabin Buraga.
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/web/web-film.html
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
STAW 08/12: Programare Web. Suita de tehnologii HTML5Sabin Buraga
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
STAW 11/12: Performanţa aplicaţiilor Web la nivel de clientSabin Buraga
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
STAW 12/12: (Re)găsirea resurselor Web. De la motoare de căutare şi SEO la da...Sabin Buraga
Prelegere din cadrul materiei "Dezvoltarea aplicaţiilor Web cu JavaScript" (Full-Stack Web Development) predată de Dr. Sabin Buraga (oct.2019–feb.2020).
Resurse suplimentare la https://profs.info.uaic.ro/~busaco/teach/courses/staw/web-film.html
O prezentare referitoare la dezvoltarea aplicațiilor Web dedicată elevilor de liceu. Prelegerea a fost susținută în cadrul Școlii de vară SummerIS organizată la Universitatea Alexandru Ioan Cuza din Iași, Facultatea de Informatică (iulie 2019).
A presentation regarding Web application development delivered to high-school students, a part of the SummerIS summer school organized at the Faculty of Computer Science, Alexandru Ioan Cuza University of Iasi, Romania (July 2019).
HCI 2018 (2/10) Human Factor. From interaction idioms to human capacities & c...Sabin Buraga
A lecture delivered for Human-Computer Interaction, a post-graduate level discipline taught by Dr. Sabin Buraga at Faculty of Computer Science, Alexandru Ioan Cuza University of Iasi, Romania.
Visit also https://profs.info.uaic.ro/~busaco/teach/courses/hci/hci-film.html
HCI 2018 (3/10) Design Models, Methodologies and GuidelinesSabin Buraga
A lecture delivered for Human-Computer Interaction, a post-graduate level discipline taught by Dr. Sabin Buraga at Faculty of Computer Science, Alexandru Ioan Cuza University of Iasi, Romania.
Visit also https://profs.info.uaic.ro/~busaco/teach/courses/hci/hci-film.html
7. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
sax: caracterizare
Oferă o procesare XML secvențială (liniară),
bazată pe evenimente – event-oriented
“SAX is a streaming interface – applications receive
information from XML documents in a continuous stream,
with no backtracking or navigation allowed”
16. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
sax: procesare
Pentru fiecare eveniment de apariție a tag-ului de
început, a tag-ului de sfârșit și a datelor-conținut,
se atașează una din funcțiile de tratare, respectiv:
set_element_handler
(trateaza_tag_inceput, trateaza_tag_sfarsit)
set_character_data_handler
(trateaza_date_caracter) funcții sau
metode definite
de programator
24. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
// prelucrare XML via evenimente (consultarea datelor)
public interface XMLReader {
// furnizarea de informații despre document
public ContentHandler getContentHandler ();
public DTDHandler getDTDHandler ();
public EntityResolver getEntityResolver ();
public ErrorHandler getErrorHandler ();
// stabilirea diverselor funcționalități
public void setContentHandler (ContentHandler contentHandler);
public void setDTDHandler (DTDHandler dtdHandler);
public void setEntityResolver (EntityResolver resolver);
public void setErrorHandler (ErrorHandler errHandler);
// procesarea propriu-zisă
public void parse (InputSource in)
throws java.io.IOException, SAXException;
public void parse (String uri)
throws java.io.IOException, SAXException;
}
Exemplificare: interfața XMLReader (Apache Xerces)
25. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
// utilizată pentru manipularea conținuturilor XML
public interface ContentHandler {
public void setDocumentLocator (Locator locator);
public void startDocument () throws SAXException;
public void endDocument () throws SAXException;
// evenimente
public void startElement (String uri, String localName, String qName,
Attributes attributes) throws SAXException;
public void endElement (String uri, String localName, String qName)
throws SAXException;
public void characters (char buf[], int offset, int length)
throws SAXException;
// informații suplimentare
public void ignorableWhitespace (char buf[], int offset, int length)
throws SAXException;
public void startPrefixMapping (String prefix, String uri)
throws SAXException;
public void endPrefixMapping (String prefix)
throws SAXException;
}
Exemplificare: interfața ContentHandler (Apache Xerces)
26. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
// specifică atributele asociate unui element
public interface Attributes {
public int getLength ();
public String getType (int index);
public String getValue (int index);
// acces la informațiile privitoare la numele atributului
public String getQName (int index);
public String getLocalName (int index);
public String getURI (int index);
// acces via spații de nume XML
public int getIndex (String uri, String localName);
public String getType (String uri, String localName);
public String getValue (String uri, String localName);
// acces via nume calificate (ns:nume)
public int getIndex (String qName);
public String getType (String qName);
public String getValue (String qName);
}
Exemplificare: interfața Attributes (Apache Xerces)
27. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
sax: implementări
libxml – API open source: C, C++, Haskell, Scala,…
MSSAX – procesări SAX în C, C++, JavaScript;
inclus în MSXML SDK (Software Development Kit)
NSXMLParser – implementare Objective-C (Apple)
org.xml.sax – API de referință pentru Java
REXML – procesor XML pentru Ruby
QSAX – parte a mediului de dezvoltare Qt (C++)
28. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
sax: implementări
sax-js – modul Node.js; altele la nodejsmodules.org/tags/sax
Xerces SAX API – platformă XML pentru C++ și Java:
http://xml.apache.org/
erlsom, xmerl_eventp – module Erlang
xml – pachet Go: https://golang.org/pkg/encoding/xml/
XML::Parser – modul Perl bazat pe procesorul Expat
xml_*( ) – funcții PHP: php.net/manual/en/book.xml.php
xml.sax – module Python: wiki.python.org/moin/Sax
31. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
sax vs. dom
Când trebuie folosit SAX?
procesarea unor documente de mari dimensiuni
necesitatea abandonării procesării
(procesorul SAX poate fi oprit oricând)
extragerea unor informații de mici dimensiuni
32. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
sax vs. dom
Când trebuie folosit SAX?
crearea unei structuri noi de document XML
utilizarea în contextul unor resurse de calcul reduse
(memorie scăzută, lărgime de bandă îngustă,...)
exemplificare pentru Android:
developer.android.com/reference/javax/xml/parsers/SAXParser.html
cod demonstrativ pentru iOS – SeismicXML:
https://developer.apple.com/library/ios/samplecode/SeismicXML/
33. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
sax vs. dom
Când trebuie utilizat DOM?
accesul direct la datele dintr-un document XML
procesări sofisticate
filtrarea complexă a datelor via XPath
efectuarea de transformări XSL
validarea datelor XML prin DTD, XML Schema etc.
34. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
sax vs. dom
Când trebuie utilizat DOM?
necesitatea modificării și/sau salvării documentelor XML
în contextul procesării datelor XML/HTML direct
în cadrul navigatorului Web, date obținute eventual
via transferuri asincrone prin AJAX
35. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
sax vs. dom
DOM necesită
încărcarea completă
a documentului XML
în vederea procesării
ca arbore
HTML
HtmlElement
HTML
BodyElement
HTML
ParagraphEle
ment
Text
HTML
DivElement
HTML
ImageElement
37. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
sax vs. dom
SAX poate fi utilizat
pentru generarea de arbori DOM
Invers, arborii DOM pot fi traversați
pentru a se emite evenimente SAX
exemplificări:
modulul dom-js (Node.js), biblioteca lxml (Python)
39. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
sax vs. dom: exemplificare
Fie structura de document XML,
specificată prin următorul DTD:
<!DOCTYPE catalog [
<!ELEMENT catalog (categ+)>
<!ELEMENT categ (#PCDATA | categ)*>
]>
Ce metodă de procesare s-ar preta, dacă numărul de
elemente <categ> ar fi de ordinul milioanelor?
45. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
alternative: xml pull parsing
Stiluri de procesări XML conduse de evenimente:
push = procesorul XML citește date XML și notifică
aplicația asupra evenimentelor survenite
(parsing events) – SAX
programul nu poate face cereri de evenimente
ele apar așa cum sunt trimise (push) de procesor
avansat
46. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
alternative: xml pull parsing
Stiluri de procesări XML conduse de evenimente:
pull = aplicația controlează maniera de procesare și poate
solicita (pull) procesorului următorul eveniment XML
XPP – XML Pull Parsing
www.xmlpull.org
avansat
47. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
alternative: xml pull parsing
Stiluri de procesări XML conduse de evenimente:
pull = aplicația controlează maniera de procesare și poate
solicita (pull) procesorului următorul eveniment XML
XPP – XML Pull Parsing
structura codului-sursă al programului
reflectă structura documentului XML prelucrat
avansat
48. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
alternative: xml pull parsing
Interfețele push Interfețele pull
Procesare read-only
Moștenesc avantajele
interfețelor push
Prelucrare rapidă,
via fluxuri de date (streams)
Evenimentele se consumă
conform necesităților
Codul-sursă poate fi dificil
de înțeles
Programele au o structură
mai clară
avansat
49. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
xml pull parsing – implementări
StAX – Streaming API for XML (Java) – JSR 173
http://jcp.org/en/jsr/detail?id=173
exemple de implementări:
Javolution – focalizat pe performanță: http://javolution.org/
Oracle StAX – inclus în XDK (XML Developer’s Kit)
https://docs.oracle.com/javase/tutorial/jaxp/stax/
Woodstox – https://github.com/FasterXML/woodstox
avansat
50. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
xml pull parsing – implementări
irrXML – inițial, parte din Irrlicht 3D Engine (C++)
pull – pachet Scala de procesare XPP
QXmlStreamReader, QXmlStreamWriter din mediul Qt (C++)
saxpath – modul Node.js permițând evaluarea
de expresii XPath pentru un flux de evenimente SAX
xml.dom.pulldom – soluție Python
XmlPullParser – interfață Java pentru Android
avansat
53. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
alternative
„Legarea” datelor XML de alte surse de date
(XML binding)
baze de date: XML infoset dataset
avansat
<doc>
<xml />
<!-- … -->
</doc>
Id D P T
1 … … …
2 … … …
3 … … …
<doc>
<xml />
<!-- … -->
</doc>
data sets
(tables)
arbore DOM
(în memorie)
fișier
XML
DBMS
54. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
alternative
„Legarea” datelor XML de alte surse de date
(XML binding)
baze de date: XML infoset dataset
specificația SQL/XML – vezi standardul SQL:2011-14
aspecte de interes:
tipul XML pentru valori ale câmpurilor tabelelor
recurgerea la predicate + funcții specifice XML
avansat
55. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
baze de date: XML infoset dataset
implementări concrete:
Oracle XML DB
docs.oracle.com/cd/B28359_01/appdev.111/b28369/xdb01int.htm
pureXML (IBM DB2)
www.ibm.com/developerworks/data/library/techarticle/dm-0603saracco2/
SQLXML (Microsoft SQL Server)
msdn.microsoft.com/library/aa286527.aspx
XML Functions (PostgreSQL)
www.postgresql.org/docs/current/static/functions-xml.html
avansat
59. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
XDocument proiecte; // XDocument e o clasă .NET
proiecte = XDocument.Load ("projects.xml");
var proiecteS =
// via o expresie LINQ, preluăm toate proiectele
from p in proiecte.Descendants ("project")
// din care le alegem pe cele de clasa 'S'
where (String) p.Attribute ("class") == "S"
// ordonate după numărul de studenți
orderby (String) p.Element ("stud")
// selectând doar titlul acestora
select (String) p.Element ("title");
// afișăm titlul proiectelor de clasa 'S'
foreach (var proiect in proiecteS) {
Console.WriteLine (proiect);
}
// același rezultat, recurgând la XPath
var proiecteS2 = (IEnumerable)
proiecte.XPathEvaluate ("//project[@class='S']/title");
avansat
60. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
alternative
„Legarea” datelor XML de alte surse de date
(XML binding)
JAXB – Java Architecture for XML Binding (JSR-222)
https://jcp.org/en/jsr/detail?id=222
implementarea de referință: https://jaxb.java.net/
de studiat și EclipseLink: www.eclipse.org/eclipselink/
avansat
61. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
alternative
„Legarea” datelor XML de alte surse de date
(XML binding)
interoperabilitate cu alte formate: XML JSON
nu există o metodă standardizată
exemplificări de instrumente și biblioteci:
Apache Camel (Java), js2xmlparser (Node.js),
JSON-lib (Java), ruby-xml-to-json, x2js (JavaScript),
xml2json (Node.js), xml-to-json (Haskell), xmlutils.py
avansat
73. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
procesare html: instrumente
Beautiful Soup – bibliotecă Python
http://www.crummy.com/software/BeautifulSoup/
Gumbo – procesor HTML5 implementat în C (Google)
https://github.com/google/gumbo-parser
html5lib – procesare + serializare HTML pentru Python
https://github.com/html5lib
HTML::Gumbo, HTML::Parser – module Perl
http://search.cpan.org/dist/HTML-Parser/
74. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
procesare html: instrumente
Html Agility Pack – bibliotecă .NET
http://htmlagilitypack.codeplex.com/
Hubbub – prelucrare de marcaje HTML5 în limbajul C
http://www.netsurf-browser.org/projects/hubbub/
Jericho HTML Parser – bibliotecă Java de procesare HTML
http://jericho.htmlparser.net/
jsoup – bibliotecă Java pentru HTML5
http://jsoup.org/
76. Dr.SabinBuragaprofs.info.uaic.ro/~busaco/
procesare html: instrumente
HtmlCleaner – instrument implementat în Java pentru
corectarea marcajelor HTML eronate
HTML Purifier – verificare & filtrare a marcajelor HTML
(inclusiv vizând atacuri de tip XSS – Cross Site Scripting)
cu implementări în PHP și Objective-C
NekoHTML – procesor Java pentru HTML bazat pe Xerces
cu suport pentru rezolvarea erorilor sintactice
Validator.nu – procesor Java folosind DOM ori SAX
cu semnalarea erorilor de sintaxă HTML5