1 / 48

Extensible Markup Language XML

A plikativn i softver. Fakultet za poslovnu informatiku Univerzitet Singidunum www.fpi.singidunum.ac.yu. Extensible Markup Language XML. 2007/2008. Violeta Tomašević Literatura Internet. Šta je XML i čemu služi?.

Download Presentation

Extensible Markup Language XML

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. Aplikativni softver Fakultet za poslovnu informatiku Univerzitet Singidunum www.fpi.singidunum.ac.yu Extensible Markup LanguageXML 2007/2008. Violeta Tomašević Literatura Internet.

  2. XML Šta je XML i čemu služi? • XMLpredstavlja tekst koji je formatiran u skladu sa dobro definisanim skupom pravila. Ovaj tekst može da bude smešten u datoteku na disku, ali i ne mora. Može, takođe, da bude predstavljen: • kao poruka koja se šalje HTTP protokolom • kao niz znakova, tj. string u programskom jeziku • kao objekat u bazi podataka • na bilo koji drugi način koji omogućava korišćenje tekstualnih podataka • Jednostavnosti radi, referisaćemo se na XML dokumente ili fajlove. • XML služi za čuvanje, prenos i razmenu podataka. Zbog svog formata, omogućava razmenu podataka i između nekompatibilnih sistema, tj. nezavisan je od korišćenih hardverskih i softverskih platformi.

  3. XML Reprezentacija u obliku stabla XML dokumenti uglavnom sadrže tagove i tekst, tako da kod napisan u XML-u u mnogome podseća na HTML kod. Za razliku od HTML-a, tagovi u XML-u nisu predefinisani (prethodno zadati). Naime, korisnik sam definiše tagove koje će koristiti. XML dokument se može posmatrati kao struktura u obliku hijerarhijskog stabla. <?xml version=“1.0”?> <book> <author> Tom Wolfe </author> <title> The Right Stuff </title> <price> $6.00 </price> </book> ROOT <book> = <author> <title> <price> “Tom Wolfe” “The Right Stuff” “$6.00”

  4. XML Dobro formatiran XML dokument • Dobro formatiran XML dokument predstavlja dokument u kome XML sintaksa zadovoljava sledeća pravila: • Dokument ima samo jedan osnovni element (root). Svi ostali elementi su ugnježdeni unutar ovog osnovnog elementa. • Elementi moraju imati završni tag (<…> … </…>). Jedini izuzetak predstavlja empty tag koji nema ni sadržaj ni telo, a označava se <…/>. • Elementi moraju biti propisno ugnježdeni. To znači da se par tagova jednog elementa ne sme preklapati sa parom tagova drugog elementa. Ne postoji ograničenje u pogledu nivoa ugnježdavanja. • Imena tagova u XML-u su case-sensitive (zavise od velikih i malih slova). Pri dodeljivanju imena se moraju poštovati određena pravila. • Sve vrednosti atributa moraju biti u okviru navodnika. • Prva linija dokumenta bi trebalo da sadrži specijalan tag koji definiše korišćenu verziju XML-a (najčešće se koristi verzija XML 1.0).

  5. XML Jedinstven osnovni element Primer ispravnog koda Primer neispravnog koda <?xml version=“1.0”?> <colors> <color>red</color> <color>green</color> <color>blue</color> </colors> <?xml version=“1.0”?> <color>red</color> <color>green</color> <color>blue</color> Objašnjenje: u ovom primeru color predstavlja više osnovnih elementa, što nije dozvoljeno u XML-u. Objašnjenje: u ovom primeru colors predstavlja osnovni element za XML dokument. Ostali elementi su ugnježdeni unutar osnovnog elementa.

  6. XML Završni tag Svaki element u XML-u mora da ima početni i završni tag. Kao i u HTML-u, završni tag se prepoznaje po simbolu /. Primer: <color>red</color> Unutar početnog taga, elementi mogu da sadrže atribute koji daju dodatne informacije o elementu. Primer: <book isbn=“7817”>red</color> Prazan element (empty element) ne sadrži druge elemente, kao ni podatke. Primer: Kompletna notacija za prazan element: <record key=“123”></record> Skraćena notacija za prazan element: <record key=“123”/> Notacija za prazan element bez atributa: <record/>

  7. XML Ugnježdavanje elemenata • Ugnježdavanje elemenata zahteva da se završni tagovi unutrašnjih elemenata moraju pojaviti u kodu pre nego što se pojave završni tagovi spoljašnjih elemenata. • Broj ugnježdenih elemenata (dece elemenata) i podataka između početnog i završnog taga nije ograničen. Primer neispravnog koda Primer ispravnog koda <?xml version=“1.0”?> <shirt> <style>Polo</style> <color>green</color> <size>large</size> </shirt> <?xml version=“1.0”?> <shirt> <style> <size>large <color>red Polo </style></size></color> </shirt> Preporučuje se da se za prikaz hijerarhije dokumenta koriste uvučeni redovi.

  8. XML Zadavanje imena • Prvi karakter u imenu mora biti A-Z, a-z ili _(underscore). Nakon njega mogu da slede slova, brojevi, crtice, tačke, dvotačke i underscore karakteri. • Pri zadavanju imena pravi se razlika između malih i velikih slova (case-sensitive). • Imena ne mogu sadržati razmake (spaces). • Imena ne mogu kao prefiks imati xml, jer je to rezervisana reč. Preporučuje se da koriste duža, opisna imena, kao i uniforman način njihovog zadavanja.

  9. XML Atributi Atributi pružaju dodatne informacije o elementu. Oni se zadaju na sledeći način: ime_atributa=vrednost Atributi se definišu u okviru početnog taga elementa na koji se odnose. Jedan element može da ima više atributa koji moraju imati različita imena. Vrednosti atributa se mogu navoditi između navodnika “…”ili apostrofa‘…‘. Primer:<osoba pol="muški">ili<osoba pol='muški'> Ako vrednost atributa sadrži navodnike, može se navesti u okviru apostrofa. Primer: <osoba ime='Petar“Pekar“ Petrovic'> Atributi ne mogu imati višestruke vrednosti.

  10. XML XML deklaracija XML deklaracija predstavlja opcionu prvu liniju u svim XML dokumentima. Primeri: <?xml version=“1.0”?> <?xml version=“1.0” encoding=“UTF-8”?> <?xml version=“1.0” standalone=“yes”?> U navedenoj deklaraciji: • version atribut definiše verziju XML-a i obavezan je • encoding atribut ukazuje na set karaktera koji je dozvoljen u dokumentu i može se izostaviti ako se koriste UTF-8 i UTF-16 • standalone atribut pokazuje da li XML dokument zavisi od eksterno deklarisanih informacija (u drugim fajlovima kao DTD ili XSL); vrednost ovog atributa može biti “yes” ili “no” Pisanje komentara pre linije za deklaraciju u XML dokumentu nije dozvoljeno.

  11. XML Sadržaj elemenata (1) XML dokument se sastoji od elemenata koji su predstavljeni parovima tagova (osim praznog elementa) u okviru kojih su navedeni podaci i (opciono) atributi čije su vrednosti date između znaka navoda. Za element koji sadrži podatke i druge elemente kaže se da ima mešoviti sadržaj. Primer ovakvog elementa je: <title>Example</title> <chapter> Chapter information <para>What is XML</para> <para>What is HTML</para> More chapter information </chapter>

  12. XML Sadržaj elemenata (2) Sadržaj elemenata se može obrađivati na jedan od sledeća dva načina: • PCDATA (Parsed Character Data) – sadržaj se parsira XML parserom • CDATA (Character Data) – sadržaj se ne parsira XLM parser omogućava obradu XML dokumenta, tj. kreiranje čvorova stabla, pristup njihovim atributima, brisanje, dodavanje čvorova i konvertovanje čvorova stabla nazad u XML dokument. Kompletan tekst XML dokumenta se parsira, izuzev dela koji se nalazi u okviru CDATA sekcije.

  13. XML Sadržaj elemenata (3) Sintaksa za definisanje sekcije CDATA (Character Data) je: <![CDATA[ ...Bilo šta... ]]> Napomena: u Bilo sta se ne može staviti "]]>",već se to ubacuje sa"]]&gt;". S obzirom da se ne parsira, sekcija CDATA omogućava uključivanje koda pisanog na drugim jezicima u XML, kao što su: • HTML dokument • XML dokument • JavaScript dokument • drugi tekstovi sa dosta specijanih karaktera

  14. XML Sadržaj elemenata (4) Primer <script><![CDATA[ funcion matchwo(a,b) { if(a < b && a < 0) then { return 1 } else { return 0 } } ]]></script> Objašnjenje: ovaj script element sadrži JavaScript. Primer <nameXML> <![CDATA[ <name common=“freedy” breed=“spaniel”> Sir Frederick of Ledyard’s End </name>]]> </nameXML> Objašnjenje: nameXML element sadrži XML koji će biti tretiran kao tekst.

  15. XML Prostor imena – namespace (1) S obzirom da u XML-u imena tagova nisu predefinisana, već ih korisnik sam definiše, javlja se problem mogućeg konflikta u izboru imena. Naime, korisnik ne može da zna koja su imena već iskorišćena, kao bi izabrao neko novo ime. Primer • Aplikacija ne može da zna da: • prvo pojavljivanje taga <ime> označava ime knjige • drugo pojavljivanje taga <ime>označava ime autora • Stoga je bilo neophodno pronaći način da se izbegnu ovakve dvosmislenosti. <stavkaKataloga> <knjiga> <ime>Pocetak</ime> <isbn>0001</isbn> <autor> <ime>Mirko</ime> <prezime>Milic</prezime> </autor> </knjiga> </stavkaKataloga>

  16. XML Prostor imena (2) Problem konfliktnih imena je rešen uvođenjem prefiksa prilikom zadavanja imena. S obzirom da prefiks mora biti jedinstven, bilo je pogodno izabrati URI za prefiks. U usvojenom konceptu, svaki element ili atribut mogu se imenovati na sledeći način: URI+ime Primer: <http://www.biblioteka.com/knjige:ime> Postoje dva problema sa navedenim formatom: • format ne odgovara dobro formatiranom XML dokumentu • potrebno je pisati dosta teksta Oba problema su rešena uvođenjemsinonima za URI. Primer: knjige=“http://www.biblioteka.com/knjige” <knjige:ime> Ovaj koncept predstavlja osnovu za XML Namespace specifikaciju.

  17. XML Prostor imena (3) XLM Namespace specifikacija podrazumeva definisanje prostora imena (namespace) i identfikovanje elemenata kao članova tog prostora. Elementi i atributi imaju dvodelna imena koja su jedinstvena i nedvosmislena. Sintaksa za deklarisanje prostora imena je: <prefix:elementName xmlns:prefix=‘URI’/> Primer (bez prostora imena) Primer (sa prostorom imena) <knjige:knjiga xmlns:knjige=‘http://www.biblioteka.com/knjige’ knjige:tvrdeKorice=‘true’> < knjige:ime> Tom Sojer </knjige:ime> </knjige:knjiga> <knjiga tvrdeKorice=‘true’> <ime>Tom Sojer</ime> </knjiga>

  18. XML Obrada XML podataka Programeri koji hoće da obrađuju XML dokumente iz svojih programa, obično upotrebljavaju API-je koji omogućavaju pristup objektnom modelu koji predstavlja XML dokument. Postoji više načina na koje programeri mogu obraditi strukturiran XML dokument: • kao običan tekst • kao tok događaja • kao stablo • kao serijalizaciju neke druge strukture Za sve ove načine obrade postoji široki spektar alata koji se koriste za podršku njihovih mogućnosti.

  19. XML Obrada XML-a kao teksta S obzirom da su XML dokumenti u osnovi tekst, alati za uređivanje teksta (kao što su vi, NotePad, WordPad i dr.) su vrlo pogodni za pregled, izradu i modifikovanje XML dokumenata. U jednostavninijim XML dokumentima parsiranje tagova, atributa i tekstualnih podataka moguće je pomoću standardnih programerskih alata kao što su regularni izrazi i leksički analizatori. U slučaju složenijih dokumenata koriste se visokokvalitetni XML analizatori koji su besplatni i dostupni za većinu programskih jezika.

  20. XML Obrada XML-a vođena događajima (1) Tokom čitanja dokumenta, XML analizator se kreće od njegovog početka do kraja i tako postepeno upoznaje dokument. Prilikom ovog parsiranja dešavaju se razni događaji, kao što su čitanje početnog taga, čitanje sadržaja elementa i čitanje završnog taga. Analizatori koji ove događaje prijavljuju (putem API-ja) klijentskim aplikacijama čim se oni dogode nazivaju se analizatorima vođenim događajima. Primer:<ime><licno>Kosta</licno><prezime>Jovic</prezime></ime> Analizator vođen događajima prijavio bi ove događaje: startElement:ime startElement:prezime startElement:licno content:Jovic content:Kosta endElement:prezime endElement:licno endElement:ime Obrada događaja podrazumeva generisanje koda u okviru aplikacije koji razume tekući kontekst i ume da odgovarajućem korisniku usmeri podatke o tom događaju.

  21. XML Obrada XML-a vođena događajima (2) Prednost aplikacija vođenih događajima: • Brzina i efikasnost. Pošto klijentska aplikacija u realnom vremenu dobija dokument o događajima, ona može početi obradu podataka sa početka dokumenta, ne čekajući da ceo dokument bude pročitan. Na primer, brokerski program koji primi dugačku listu zahteva za kupovanje nekih deonica, može da obavi prvu transakciju, pre nego što analizator pročita drugu transakciju. • Efikasno upravljanje memorijom. XML dokumenti su često vrlo veliki, ponekad se mere gigabajtima. Dokument se može obrađivati u malim delovima kojima je lako rukovati, uz oslobađanje memorije nakon obrade svakog dela. • Mogućnost filtriranja sadržaja. Filtri obrađuju i modifikuju događaje pre nego što ih proslede na dalju obradu.

  22. XML Obrada XML-a pomoću stabala XML dokumenti se lako mogu opisati korišćenjem strukture stabla. Kao rezultat parsiranja, generišu se API-ji zasnovani na stablu koji aplikaciji daju uvid u model celog XML dokumenta. Tako aplikacija može samo proći stablom i pronaći željene delove dokumenta. Prednosti rada sa modelom stabla su: • stalna dostupnost celog dokumenta • lako modifikovanje i premeštanje delova dokumenta s jednog mesta na drugo • uvek je dostupan ceo kontekst svakog dela dokumenta Nedostaci rada sa modelom stabla: • zauzimaju veliku količinu memorije (3-10 puta veću od originalnog dokumenta) • pretraživanje stabla može zahtevati dodatnu obradu

  23. XML Pull model obrade XML-a (1) Pull model obrade XML-a se zasniva na klijentskim zahtevima. Slično modelu vođenom događajima, i u pull modelu, tokom parsiranja, sadržaj dokumenta postepeno postaje dostupniji. Pristup pull se oslanja na klijentsku aplikaciju koja od analizatora svojim tempom zahteva neki sadržaj. Primer: pull klijent sadrži sledeći kod za parsiranje XML dokumenta reader.ReadStartElement(“ime”) reader.ReadStartElement(“licno”) licnoIme = reader.ReadString() reader.ReadEndElement() reader.ReadStartElement(“prezime”) prezime = reader.ReadString() reader.ReadEndElement() reader.ReadStartElement()

  24. XML Validnost XML dokumenta Dobroformatiran (well formed) XML dokument je onaj dokument koji ima korektno definisanu sintaksu. Validan (valid) XML dokument ima pridružen rečnik (vacabulary) i poštuje strukturna pravila definisana u tom rečniku. Rečnik se obično definiše primenom DTD ili XML Schema. XML parseri mogu da rade validaciju dokumenta, ali i ne moraju. To zavisi od toga da li primenjuju pridruženu gramatiku. Primer alata koji radi validaciju je Studio. Svi XML dokumenti treba da budu jednostavni i kompatibilni. Greške u XML dokumentu prekidaju izvršavanje programa.

  25. XML XML i čitači • XML podržava većina čitača (browser-a), ali nemaju svi čitači celokupnu podršku za XML. • XML dokumenti se mogu prikazati u sledećim browser-ima: Mozzila, Firefox, Opera, Internet Explorer i Netscape 6+. • XML dokument se prikazuje u bojama. Oznake plus (+) i minus (-) sa leve strane elementa omogućavaju proširivanje ili skupljanje strukture elementa. Za prikazivanje XML koda bez ovih oznaka treba selektovati opcije “View Page Source” ili “View Source” u okviru browser menija.

  26. XML Poređenje HTML – XML XML HTML <html> <title>Course Roster</title> <body> <center> <h1>Course Roster</h1> <h2>XML Programming</h2> <h3>Department: EECS</h3> <p> <table border=“2”> <tr> <th>Teacher</th> <td>Paul Thompson</td> </tr><tr> <th>Student<br>List</th> <td>Paul Jones<br> Uma Abingdon<br> Lindsay Garmon </td> </tr> </table> </center> </body> </html> <?xml version=“1.0”?> <course> <name>Java Programming</name> <department>EECS</department> <teacher> <name>Paul Thompson</name> </teacher> <student> <name>Ron Jones</name> </student> <student> <name>Uma Abingdon</name> </student> <student> <name>Lindsay Garmon</name> </student> </course> Namenjen razmeni strukturiranih podataka Namenjen prezentovanju i listanju

  27. XML Razlike HTML – XML

  28. XML Document Type Definition (DTD) Razmotrimo sledeće probleme: • Korisnik želi da uvede izvesna ograničenja vezana za predstavljanje podataka. Na primer, ona se mogu odnositi na ograničenje broja elemenata (dece) koji se mogu definisati u okviru nekog elementa (roditelj), ili na redosled definisanih elemenata i dr. • Korisnik želi da definiše i objavi strukturu na koju se XML dokument odnosi. • Korisnik želi da pomoću računara proveri da li XML dokument poštuje postavljana ograničenja. • Korisnik želi da ime delove teksta koje može više puta da koristi u okviru različitih XML dokumenata. Navedeni problemi se ne mogu rešiti samo XML-om. Njihovo rešavanje omogućava DTD.

  29. XML Šta je DTD? Document Type Definition – DTD je nacrt strukture XML dokumenta koji sadrži niz deklaracija. DTD definiše: • Elemente koji se mogu ili moraju pojaviti u okviru dokumenta • Koliko se često mogu pojavljivati pojedini elementi u dokumentu • Način ugnježdavanja elemenata • Skup dozvoljenih, zahtevanih i podrazumevanih (default) atributa Korišćenje DTD-a nije obavezno, ali se njegovom primenom može utvrditi validnost XML dokumenta, tj. da li XML dokument ispunjava pravila definisana DTD-om.

  30. XML Mogućnosti DTD-a Najznačajnije mogućnosti koje pruža DTD su sledeće: • Deklarisanje tipa elementa Moguće je formalno opisati tip elementa, kao i tipove podataka koje on može da sadrži. • Deklarisanje tipa atributa Moguće je formalno opisati tip atributa, kao i tipove podataka koje on može da sadrži. • Generisanje lista atributa Svi elementi moraju imati svoje atribute nabrojane u listi atributa. Liste omogućavaju grupisanje svih srodnih atributa elementa.

  31. XML Deklarisanje elemenata Sintaksa za deklarisanje elementa u DTD-u je: <!ELEMENT ime (model-sadrzaja)> gde su: ime – tip elementa model-sadrzaja– tip podataka koje element može da sadrži Primer: DTD deklaracija elementa <!ELEMENT greeting (#PCDATA)> Odgovarajući validni XML kod <greeting>Hello World!</greeting> <greeting> <![CDATA[G’day!]]> </greeting>

  32. XML Model sadržaja (1) Sadržaj elementa je opisan u okviru specifikacije modela sadržaja. U DTD-u postoji više tipova modela sadržaja: • EMPTY • ANY • Elements • Mixed • Text (#PCDATA) EMPTY model sadržaja Element ne sme da sadrži nikakve podatke. Može da ima samo atribute. DTD deklaracija:<!ELEMENT placeholder EMPTY> Ispravan XML kod:<placeholder></placeholder>ili <placeholder/>

  33. XML Model sadržaja (2) ANY modelsadržaja Element može da sadrži bilo koje korektno definisane XML podatke. Elementi koji se koriste moraju biti deklarisani u DTD-u. DTD deklaracija: <!ELEMENT universe ANY><!ELEMENT galaxy (#PCDATA)> Ispravan XML kod: <universe/>ili<universe></universe> <universe>the whole universe</universe> <universe> <galaxy>galaxy1</galaxy> </universe>

  34. XML Model sadržaja (3) Elements modelsadržaja Ovaj model sadržaja predstavlja niz elemenata deklarisanih na sledeći način: <!ELEMENTime (struktura_clanova)> Dakle, svaki element je definisan svojim imenom (ime) i strukturom elemenata koji mogu biti njegovi članovi (struktura_clanova). Članstvo u strukturi elementa se može definisati na različite načine: Napomena: a i b mogu imati složeniju strukturu, kao na primer a = (c,d)

  35. XML Model sadržaja (4) Primer 1 DTD deklaracija: <!ELEMENTperson((fname,lname)|((lname,fname))><!ELEMENTfname (#PCDATA)> <!ELEMENTlname (#PCDATA)> Ispravan XML kod: <person> <lname>Smith</lname> <fname>John</fname> </person> ili <person> <fname>John</fname> <lname>Smith</lname> </person>

  36. XML Model sadržaja (5) DTD deklaracija: <!ELEMENTorder(order-item+,delivery-address,order-date?)> <!-- Deca elementi su definisani tako da sadrže #PCDATA--> Ispravan XML kod: <order> <order-item>item1</order-item> <delivery-address>123 State Street</delivery-address> </order>ili <order> <order-item>item3</order-item> <order-item>item4</order-item> <delivery-address>123 State Street</delivery-address> </order>ili <order> <order-item>item5</order-item> <order-item>item6</order-item> <delivery-address>123 State Street</delivery-address> <order-date>July 5, 2001</order-date> </order> Primer 2

  37. XML Model sadržaja (6) DTD deklaracija: <!ELEMENT phonebook (page)+><!ELEMENT page (heading, (entry|advert)+)><!ELEMENT heading (#PCDATA)><!ELEMENT entry (#PCDATA)><!ELEMENT advert (#PCDATA)> Ispravan XML kod: <phonebook> <page> <heading>The whole town</heading> <entry>John Smith, 555-1212</entry> <advert>Fred's Fish n' Chips - 123-4567</advert> </page> </phonebook> Neispravan XML kod: <phonebook><page><entry/><entry/></page></phonebook> ili <phonebook><page/></phonebook> Primer 3

  38. XML Model sadržaja (7) Mixedmodelsadržaja Mešoviti (mixed) model sadržaja opisuje elemente koji sadrže tekstualne podatke i, po potrebi, druge elemente. Mogući primeri DTD deklaracije elemenata su: <!ELEMENTproduct (#PCDATA)>(karakteri) <!ELEMENTreview (#PCDATA | product) *>(karakteri + dete element) Ispravan XML kod: <review>review text goes here</review> <review> This is a review of some <product>car</product> that goes on for pages of regular text. </review>

  39. XML Deklarisanje liste atributa Liste atributa se koriste za deklarisanje atributa nekog elementa. Sintaksa za deklarisanje liste atributa u DTD-u ima dve opcije: Opcija 1: <!ATTLIST imeElementa imeAtributa tipAtributa podrazumevanaDek> Opcija 2: <!ATTLIST imeElementa imeAtributa tipAtributa podrazumevanaDek ... imeAtributa tipAtributa podrazumevanaDek> gde je podrazumevanaDek podrazumevana, tj. default deklaracija atributa.

  40. XML Tipovi atributa

  41. XML Podrazumevana deklaracija atributa

  42. XML Primeri deklarisanja atributa (1) Primer (Opcija 1) DTD deklaracija: <!ELEMENT shirt (#PCDATA)> <!ATTLIST shirt type CDATA #REQUIRED> <!ATTLIST shirt collar CDATA #IMPLIED> <!ATTLIST shirt size (small|medium|large) "large"> <!ATTLIST shirt manufacturer CDATA #FIXED "Levi"> Ispravan XML kod: <shirt type="short">cotton</shirt> <shirt type="short" size="large">wool</shirt> <shirt type="short" manufacturer="Levi">denim</shirt> <shirt type="short sleeve" collar="button-down"></shirt> Neispravan XML kod: <shirt></shirt> <shirt type="short" size="medium large">cardigan</shirt> <shirt type="short" manufacturer="Gap">designer</shirt>

  43. XML Primeri deklarisanja atributa (2) Primer (Opcija 2) DTD deklaracija: <!ELEMENT book (#PCDATA)> <!ATTLIST book id ID #IMPLIED isbn CDATA #REQIURED booktype (Harcover|Paperback) “Paperback” storeloc CDATA “5th Avenue” year CDATA #FIXED “2000” comment CDATA #IMPLIED> Ispravan XML kod: <book isbn=“1-35267-742-4“ storeloc=“Times Square"> XML Pocket Reference </book>

  44. XML DTD i XML (1) DTD može biti pridružen nekom XML dokumentuna više načina: • kao poseban fajl u odnosu na XML dokument • kao deo XML dokumenta • kombinacijom prethodna dva slučaja, tj. deo DTD-a je u posebnom dokumentu, a deo u XML dokumentu

  45. XML DTD i XML (2) Spoljašnji DTD (XML i DTD su zasebni dokumenti, prosleđuje se URI na kome je DTD fajl) Dokument: hello.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE message SYSTEM "message.dtd"> <message> <greeting>Hello, World!</greeting> <farewell>Goodbye, World!</farewell> </message> Dokument: message.dtd <!ELEMENT message (greeting,farewell)> <!ELEMENT greeting (#PCDATA)> <!ELEMENT farewell (#PCDATA)> Primer

  46. XML DTD i XML (3) Ugrađeni DTD (XML i DTD su u istom dokumentu) Dokument: hello.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE message [ <!ELEMENT message (greeting,farewell)> <!ELEMENT greeting (#PCDATA)> <!ELEMENT farewell (#PCDATA)> ]> <message> <greeting>Hello, World!</greeting> <farewell>Goodbye, World!</farewell> </message> Primer

  47. XML DTD i XML (3) Kombinacija spoljašnji-ugrađeni DTD (DTD je delom ugrađen u XML dokument, a delom je u posebnom fajlu) Dokument: hello.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE message SYSTEM "message.dtd“[ <!ELEMENT farewell (#PCDATA)> <!– overrides farewell in message.dtd --> ]> <message> <greeting>Hello, World!</greeting> <farewell>Goodbye, World!</farewell> </message> Dokument: message.dtd <!ELEMENT message (greeting,farewell)> <!ELEMENT greeting (#PCDATA)> <!ELEMENT farewell EMPTY> Primer

  48. XML Nedostaci DTD-a Glavni nedostaci DTD-a su: • odsustvo tipizacije podataka (#PCDATA može biti bilo koji string) • sintaksa DTD nije usklađena sa sintaksom XML-a • postoje ograničenja koja se ne mogu lako izraziti DTD-om (na pr. element x se može pojaviti od 4 do 17 puta) Mnoga ograničenja DTD-a uspešno prevazilazi XML Schema (XML šema).

More Related