Utisci korisnika

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…

Hvala Vam na podršci i moram Vam priznati da ste jako ljubazni. Milan Đelić, Valjevo


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: