1 / 31

Uporaba XML-a u Javi

Uporaba XML-a u Javi. Autor: Ivor Herak Mentor: mr. sc. Marko Čupić. Sadržaj prezentacije. 1) Kratko upoznavanje s XML-om 2) Uporaba XML-a u Javi 3) Zaključak. Što je XML i čemu služi?. kratica od “Extensible Markup Language” glavna namjena XML-a je olakšavanje pohrane i razmjene podataka.

amy
Download Presentation

Uporaba XML-a u Javi

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Uporaba XML-a u Javi Autor: Ivor Herak Mentor: mr. sc. Marko Čupić

  2. Sadržaj prezentacije 1) Kratko upoznavanje s XML-om 2) Uporaba XML-a u Javi 3) Zaključak

  3. Što je XML i čemu služi? • kratica od “Extensible Markup Language” • glavna namjena XML-a je olakšavanje pohrane i razmjene podataka

  4. Osnove XML-a • XML dokument obično počinje prologom <?xml version="1.0" encoding="utf-8" ?>

  5. POČETNA OZNAKA SADRŽAJ ZAVRŠNA OZNAKA Osnove XML-a – elementi • osnovne komponente XML dokumenta <pjesma> <ime>Space Oddity</ime> <izvođač>David Bowie</izvođač> </pjesma>

  6. Osnove XML-a – atributi • svaki element može sadržavati atribute <pjesma id="1" > <ime>Space Oddity</ime> <izvođač>David Bowie</izvođač> </pjesma> ATRIBUT

  7. Osnove XML-a • također mogu postojati i prazni elementi <pjesma id="1"> <live/> <ime>Space Oddity</ime> <izvođač>David Bowie</izvođač> </pjesma> PRAZAN ELEMENT

  8. Dobro oblikovanje XML dokumenta • u dokumentu mora postojati korijenski element • elementi moraju biti pravilno ugniježđeni • svaka početna oznaka mora biti terminirana odgovarajućom završnom oznakom

  9. Loše oblikovani XML dokument <poruka> <tekst> Neka poruka. </poruka> </tekst>

  10. Valjanost XML dokumenta • XML sheme sadrže pravila o tome kako mora biti oblikovan XML dokument • dokument mora poštivati pravila sheme

  11. PROLOG Ispravan XML dokument <?xml version="1.0" encoding="utf-8" ?> <glazba> <pjesma id="1"> <ime>Space Oddity</ime> <izvođač>David Bowie</izvođač> </pjesma> <pjesma id="2"> <ime>Dirty Harry</ime> <izvođač>Gorillaz</izvođač> </pjesma> </glazba> ROOT ELEMENT

  12. XML u Javi • dva najvažnija API-a za pristup XML dokumentima u Javi su SAX i DOM • također je razvijen i alat Apache Digester

  13. SAX API • temelji se na serijskom čitanju XML dokumenta • implementiramo metode sučelja SaxParsera, ima ih 4 • najvažnije sučelje je ContentHandler

  14. SAX API – ContentHandler startElement(String namespaceURI, String sName, String ime, Attributes atributi); characters(char buf[], int offset, int len); endElement(String namespaceURI, String sName, String ime);

  15. SAX API - slika

  16. SAX API – stvaranje analizatora SAXParserFactory spf = SAXParserFactory.newInstance(); SAXParser analizator = spf.newSAXParser(); analizator.parse(String file, DefaultHandler h);

  17. SAX API - primjer publicclass BrojacPjesama extends DefaultHandler{ privatestaticintbrojač = 0; publicvoid startElement( String namespaceURI, String sName, String ime, Attributes atributi) { if (ime.equals("pjesma")){ brojač++; } } }

  18. SAX API - nedostatci • ne prepoznaje se kontekst pronalaska komponenata • potrebno je puno kodiranja čak i za najjednostavnije aplikacije

  19. DOM API • XML dokument pročita se odjednom u memoriju i pohrani se u obliku stabla • čvorovi stabla su komponente dokumenta

  20. DOM API - slika

  21. DOM API - stvaranje analizatora DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Documentdokument = builder.parse(String file);

  22. DOM API – razred Node • čvorovima pristupamo uz pomoć razreda Node • u tom razredu su definirane razne metode za manipulaciju čvorovima

  23. DOM API • prednosti: - jednostavniji za uporabu od SAX-a • nedostatci: - zahtijeva puno memorije

  24. Apache Digester • definiran je razred Digester koji obrađuje dokument • dokument se obrađuje tako da se zadaju pravila po kojima se ravna Digester

  25. Apache Digester – primjer Pjesma publicclass Pjesma { private String izvođač; private String ime; privateint id; ... // getteri i setteri }

  26. Apache Digester – primjer Kompilacija publicclass Kompilacija { private List<Pjesma> pjesme; publicvoid dodajPjesmu(Pjesma p){ ... } }

  27. Apache Digester - primjer publicstaticvoid main(String[] args) { Digester digester = new Digester(); Kompilacija kompilacija = new Kompilacija(); digester.push(kompilacija); dodajPravila(digester); digester.parse( new File("Glazba.xml") ); }

  28. Apache Digester - primjer digester.addObjectCreate( "glazba/pjesma", Pjesma.class); digester.addSetProperties( "glazba/pjesma"); digester.addSetNext("glazba/pjesma“ , "dodajPjesmu"); digester.addSetNestedProperties( "glazba/pjesma");

  29. Apache Digester • prednosti: - relativno mala količina koda za definiranje ponašanja - prepoznaje se kontekst u kojem se pronalaze komponente • nedostatci: - potrebno je dosta koda za pripremu struktura za pohranu podataka

  30. Zaključak • najveća prednost XML-a je to što je jednostavan i fleksibilan • Java omogućava relativno jednostavno baratanje sadržajem XML dokumenta

  31. HVALA NA PAŽNJI!

More Related