Utisci korisnika

"Ovo je pravi vid doškolovavanja za sve one koji nemaju uslova za redovno školovanje ili su prezauzeti. Nije teško za one koji hoce . Uz vas je i moj sin od 9 godina nesto naučio.…

Kada sam na fakultetu polagala ispit iz Obrazovne tehnologije jedno od pitanja je bilo nastava na daljinu. Pojam, značenje, prednosti i nedostaci su mi bili poznati ali u isto vreme daleki, nedostižni…


Kompletna lista utisaka

Testiranje online

Arhitektura računara

Za one koji žele da znaju više.

Windows OS

Ovo bi svakako trebalo da probate.

Odnosi s javnošću

Koliko znate PR?

Pogledajte još neke od testova

Newsletter

Ukoliko želite da Vas redovno obaveštavamo o novostima sa Link eLearning sajta prijavite se na našu newsletter listu.

Ime:

Prezime:

Email:


Anketa

Arhiva anketa

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.

Smatrate da je ova lekcija korisna?  Preporučite je. Broj preporuka:5


Molimo Vas unesite svoje podatke i dobićete pristup besplatnim lekcijama.

Ime: 
Prezime: 
Email: