You are on page 1of 5

http://www.

link-
elearning.com/site/kursevi/lekcija/6240

BAZA ZNANJA
Kurs: XML tehnologije i veb servisi

Modul: XML tehnologije

Autor: Vladimir Marić

Naziv jedinice: Uvod u XML

Materijali vezani uz ovu lekciju:

- Test uvod u xml


- Uvod u XML (PDF dokument)

Šta je XML (Extended Markup Language)


Jedan od cestih pojmova upotrebljavanih u kontekstu današnjeg programiranja jeste XML. Ovaj pojam cesto se „bespravno”
upotrebljava da prezentuje programski jezik, iako XML to, u stvari, nije. XML je, naime, samo nacin za serijalizaciju podataka,
odnosno nacin na koji cemo jednostavno i brzo moci da zapamtimo podatke (a da pri tom to nije baza podataka) i prosledimo ih
nekome ko ce ih takode razumeti, jer poštujemo iste konvencije.

Istorija XML-a pocinje još 60-ih godina prošlog veka, kada je u IBM-u konstruisan prvi višenamenski jezik za serializaciju podataka.
Ovaj jezik zvao se GML (Generalized Markup Language). Uspeh ovog jezika, doveo je do nastavka istraživanja na ovom polju, i
rezultirao jezikom SGML (Standard Generalize Markup Language).

Deo SGML jezika iskorišcen je za HTML-a (izgradnju HyperText Markup Language), dok je ostatak korišten za kompleksnije Internet
aplikacije.

1996. godine pocet je rad na uprošcenoj verziji SGML-a, cija je komplikovanost ucinila da bude upotrebljavan samo u jakim i velikim
institucijama. Ovaj rad je rezultirao stvaranjem XML-a za ciju se godinu nastanka smatra 1998. Do danas poznajemo dve verzije i
nekoliko meduverzija XML-a: XML 1.0 i XML 1.1. Osnovna razlika je u rukovanju novim Unicode setovima, s obzirom na to da razvoj
XML-a ne prati paralelno i proširenje Unicode-a.

XML je vec odavno standardni serijalizacioni jezik i na njemu su cak bazirani i neki drugi, specificni jezici serijalizacije: xhtml, wsdl,
wml (wap xml), rss, rdf, owl, smil, xslt...

Sintaksa
Sa sintaksom XML-a smo se sreli pisanjem bilo kog HTML taga jer XML poštuje konvencije tagova, kao i HTML. Štaviše, i sama
struktura tih tagova identicna je HTML-u jer se poštuje isti princip elemenata i atributa.

Ipak, postoje neke osobenosti karakteristicne iskljucivo za XML.

Pre svega, XML je osetljiv na mala i velika slova (Case Sensitive). Zatim, ne sme u svom telu sadržati specijalne karaktere (njih
treba prevesti u odgovarajuce ascii kodove). I konacno, trebalo bi da poseduje odredenu strukturu (da ima koren, deklaraciju
verzije...)

XML se sastoji od tagova, odnosno, od elemenata i atributa. Tag je selekcija u nekom dokumentu markirana odredenim oznakama i
nazivom. Ove oznake su < i >, a naziv taga može biti bilo koji tekst, sve dok ostaju ispoštovane konvencije aktuelnog tag jezika.

Na primer:
<mojTag>

Ovo je pravilno napisan tag, ali nedovoljan da zaokruži jednu celinu u XML dokumentu. Da bi neka celina bila zaokružena u XML-u,
potrebna su bar dva taga. Jedan otvarajuci i jedan zatvarajuci ili, eventualno, jedan "samozatvarajuci" tag:

<mojTag></mojTag>

ili

<mojTag />

Zatvarajuci tag izgleda isto kao i otvarajuci, osim oznake / koja se nalazi odmah na njegovom pocetku. Kada je tag samozatvarajuci,
oznaka / se nalazi pre njegovog završetka. Pravilno postavljena dva istoimena taga cine jedan element i sve unutar njih cini sadržaj
tog elementa:

<mojTag>Moj element</mojTag>

Logicno, samozatvarajuci tag ne može imati sadržaj, ali to ne znaci da on nije element. Iako nije u stanju da "nosi" sadržaj, još uvek
može imati atribute.

Atributi su još jedan odeljak u kome XML element može nositi podatke. Nalaze se u otvarajucem tagu i oznacavaju se po sistemu
kljuc=vrednost:

<mojElement atribut="moj atribut">Sadrzaj</mojElement>

ili

<mojElement atribut="moj atribut" />

Jedan element može imati podelemente, koji mogu takode biti elementi... To znaci da jedan XML dokument ima strukturu stabla.

Struktura XML-a

Svaki XML fajl trebalo bi da poseduje deklaraciju:

<?xml version="1.0"? encoding="UTF-8" ?>

U deklaraciji prosledujemo procesoru XML-a osnovne podatke o dokumentu: koja verzija XML-a je u pitanju, koji kodni raspored je
korišcen u dokumentu...

Zatim, opciona je i deklaracija tipa dokumenta koja oznacava set pravila koja ce biti poštovana tokom parsiranja dokumenta. Ova
deklaracija može biti napravljena direktno u dokumentu ili ucitana iz eksternog izvora:
<!DOCTYPE film SYSTEM "test.dtd">

Nakon DTD-a sledi koreni (Document) element dokumenta i konacno, naši serijalizovani podaci. Konacno, cela XML struktura
izgleda ovako:

Prolog (Ovo je opis dokumenta, nije obavezan)


XML Deklaracija (XML ce funkcionisati i bez deklaracije, ali je poželjno da ona postoji)
DTD Deklaracija (Za kompleksnije serijalizacije)

Element (Dokument)
Elementi (Lista elemenata)
Element – Atributi i vrednosti (Stavke iz liste)
Podaci (Podaci po stavci)

Recimo da želimo da stvorimo jedan XML dokument u kome ce biti lista država:

<?xml version="1.0" encoding="UTF-8" ?>


<root>
<drzava oznakaDrzave="sr">
<naziv>Srbija</naziv>
<glavniGrad>Beograd</glavniGrad>
<opis>Opis Srbije.....</opis>
</drzava>
<drzava oznakaDrzave ="fr">
<naziv>Francuska</naziv>
<glavniGrad>Pariz</glavniGrad>
<opis>Opis Francuske.....</opis>
</drzava>
</root>

Jasno je razaznati elemente pomenute u prethodnom delu lekcije. Root je koren dokumenta, drzava predstavlja jedan
element; oznakaDrzave je atribut tog elementa, a naziv, glavniGrad i opis su ugnježdeni elementi (podelementi)
elementa drzava.

Svaki XML dokument koji poseduje adekvatnu strukturu i poštuje sva sintaksna pravila, naziva se dobro formirani XML ili Well
Formed XML. Ukoliko dokument sadrži i validacionu deklaraciju (koja ne izaziva validacionu grešku), naziva se validni, odnosno
Valid XML. Deklaraciju možemo i sami napisati koristeci DTD (Document Type Definition) jezik.

Na primer:

<!ELEMENT drzava (naziv,glavniGrad,opis)>


<!ATTLIST drzava oznakaDrzave CDATA "">
<!ELEMENT naziv (#PCDATA)>
<!ELEMENT glavniGrad (#PCDATA)>
<!ELEMENT opis (#PCDATA)>

Ako bismo ovakvu definiciju snimili u fajl test.dtd, validacija u sledecem kodu (neki XML fajl), bila bi izvršena:

<?xml version="1.0" encoding="UTF-8"?>


<!DOCTYPE drzava SYSTEM "test.dtd">
<drzava oznakaDrzave="sr">
<naziv>Srbija</naziv>
<glavniGrad>Beograd</glavniGrad>
<opis>Opis Srbije.....</opis>
</drzava>

Takode, umesto referenciranja na eksterni fajl, definiciju dokumenta možemo implementirati i u sam XML fajl:

<?xml version="1.0" encoding="UTF-8"?>


<!DOCTYPE drzava
[
<!ELEMENT drzava (naziv,glavniGrad,opis)>
<!ATTLIST drzava oznakaDrzave CDATA "">
<!ELEMENT naziv (#PCDATA)>
<!ELEMENT glavniGrad (#PCDATA)>
<!ELEMENT opis (#PCDATA)>
]>
<drzava oznakaDrzave="sr">
<naziv>Srbija</naziv>
<glavniGrad>Beograd</glavniGrad>
<opis>Opis Srbije.....</opis>
</drzava>

Analizu kompletnog DTD jezika necemo vršiti u ovom kursu.

Alternativa DTD-u je XSD (XML Schema Definition). XML šema je i sama predstavljena XML strukturom.

XML šema:

<?xml version="1.0" encoding="UTF-8"?>


<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="drzava">
<xs:complexType>
<xs:sequence>
<xs:element name="naziv" type="xs:string" />
<xs:element name="glavniGrad" type="xs:string" />
<xs:element name="opis" type="xs:string" />
</xs:sequence>
<xs:attribute name="oznakaDrzave" type="xs:string"/>
</xs:complexType>
</xs:element>
</xs:schema>

Xml dokument:

<?xml version="1.0" encoding="UTF-8"?>


<drzava
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="test.xsd"
oznakaDrzave="sr">
<naziv>Srbija</naziv>
<glavniGrad>Beograd</glavniGrad>
<opis>Opis Srbije.....</opis>
</drzava>

Pravila pisanja
Postoje neki karakteri koje ne možemo uneti u XML sadržaj. Na primer, karater <. XML nije u stanju da interpretira ovaj karater
adekvatno, zbog cega dolazi do greške. Da bismo predupredili ovakve greške, a ipak zadržali mogucnost da ovaj karakter sacuvamo
u XML-u, koristimo enkodirane karaktere (reference na karaktere).

 &lt; - <
 &gt; - >
 &amp; - &
 &apos; - '
 &quot; - "

<mojElement atribut="moj atribut">Vece - > </mojElement>

Ovako napisan element nece prijaviti grešku prilikom parsiranja.

Komentarisani kod znaci da parser nece uzeti u obzir taj deo koda. U XML-u komentar se piše na sledeci nacin:

<!-- Komentar -->

odnosno
<mojElement atribut="moj atribut">Sadržaj</mojElement><!-- moj komentar -->

Ovo pravilo važi samo za parsiranje XML-a. I komentar dodat na ovaj nacin i dalje ce biti sastavni deo jednog XML dokumenta.

Pregled XML dokumenata


Sadržaj XML dokumenata pregledamo na više nacina:

 Iz pretraživaca - obicno svaki pretraživac poseduje svoj mehanizam za pregled XML dokumenata, ali generalno, vecina izgleda
isto.
 Preradeni, deserijalizovani od strane programa koji ih parsira - svakodnevno rukujemo sa mnoštvom XML dokumenata, a da to i
ne znamo. Vecina programa cuva podešavanja i ostale podatke u XML formatu.
 U izvornom obliku - kao cist tekst.

XML dokument se može i stilizovati na klijentu, CSS i XSLT stilovima.

Najvažnije iz ove lekcije:

1. XML je jezik za serijalizaciju podataka, ali ne i jezik za njihovu obradu.


2. XML fajlovi su tekstualni fajlovi, sa posebnom strukturom.
3. XML se sastoji od tagova.
4. XML je Case Sensitive – osetljiv na velika i mala slova.
5. U XML strukturi razlikujemo elemente i atribute.
6. Dobro formirani XML podrazumeva deklaraciju sa verzijom i kodnim rasporedom.
7. XML mora imati koreni element.

You might also like