XML je skraćenica za Extensible Markup Language, odnosno proširivi (meta) jezik za označavanje (engl. markup) tekstualnih dokumenata. Ideja je bila da se stvori jezik koji će i ljudi i računarski programi moći jednostavno da čitaju. XML definiše opštu sintaksu za označavanje podataka pomoću odgovarajućih tagova koje imaju poznato ili lako razumljivo značenje.

XML je propisan je od strane W3C. Sledeći pravila XML standarda, korisnici definišu sopstvene (XML) formate podataka, koje mogu koristiti za njihovo skladištenje, obradu i razmenu.

Pošto se svi XML formati podataka kreiraju sledeći isti skup pravila, moguće je napraviti univerzalne alate za njihovu obradu. Tako postoji veliki broj besplatnih biblioteka na različitim jezicima na kojima se može pisati i čitati XML, a mogu se upotrebiti i gotovi softveri (kao što su programi za obradu teksta).

Na primer, pretpostavimo da neko ima veliku kolekciju recepata koje želi da sačuva na računaru. Mogu se jednostavno kreirati tekstualne datoteke koje bi izgledale ovako:

Keks

Sastojci:
1 dio šećera
2 dela masti ili margarina
3 dela brašna
1 jaje
vanilin šećer

Uputstvo:
1. Zamesite sastojke i obavezno smesu stavite na hlađenje, jer će biti lepljiva i mekana. Margarin ili mast treba da je omekšao (na sobnu temperaturu).
2. Lagano nabrašnite sto, na kojem ćete razvlačiti testo. Nakon hlađenja kidajte komade, razvlačite i kalupićima režite željene keksiće i stavljajte u lim obložen papirom za pečenje. (Nikada ne razvlačite celu smesu odjednom, jer će se ugrejati i postati mekana za rad.)
3. Zagrejte rernu na 170 stepeni i pecite 15 minuta.

U ovom dokumentu nema informacija koje bi računaru ukazale na strukturu dokumenta  i kao rezultat toga, bilo bi teško da računar uzme ove informacije i iskoristi ih. Međutim, koristeći pravila XML-a, mogli bismo da kreiramo jezik za označavanje (markup language) koji bi ukazivao na različite delove recepta kako bismo ga učinili čitljivim i za mačinu i za ljude. Sledeći primer pokazuje kako bi takav jezik za označavanje mogao da izgleda:

<recept>
<naziv-jela>Keks</naziv-jela>

<sastojci>
<sastojak>1 dio šećera</sastojak>
<sastojak>2 dela masti ili margarina</sastojak>
<sastojak>3 dela brašna</sastojak>
<sastojak>1 jaje</sastojak>
<sastojak>vanilin šećer</sastojak>
</sastojci>
<uputstvo>
<korak>
Zamesite sastojke i obavezno smesu stavite na hlađenje, jer će biti lepljiva i mekana.
Margarin ili mast treba da je omekšao (na sobnu temperaturu).
</korak>
<korak>
Lagano nabrašnite sto, na kojem ćete razvlačiti testo.
Nakon hlađenja kidajte komade, razvlačite i kalupićima režite željene keksiće i stavljajte u lim obložen papirom za pečenje.
(Nikada ne razvlačite celu smesu odjednom, jer će se ugrejati i postati mekana za rad.)
</korak>
<korak>
Zagrejte rernu na 170 stepeni i pecite 15 minuta.
</korak>
</uputstvo>
</recept>


Nije vam potreban nikakav poseban softver da biste kreirali XML fajl. Pošto se XML čuva kao običan tekst, čak i jednostavan uređivač teksta kao što je Notepad se može koristiti za kreiranje XML-a. Komplikovaniji projekti mogu zahtevati upotrebu XML editora, koji pruža dodatne funkcije kao što su upravljanje fajlovima i validacija dokumenata.

Otvorite program za obradu teksta/koda i sačuvajte fajl ... Ovaj put koristimo Notepad++, ali može i Notepad, ili neki online alat (link za jedan takav je postavljen posle ovog materijala).


Za vežbu, vi ćete imati ulogu poslodavca koji objavljuje oglase za posao. Vaš zadatak će biti da kreirate XML datoteku koja će se koristiti za čuvanje trenutnih radnih mesta i njihovo prikazivanje. Počinje se sa običnom tekstualnom datotekom koja sadrži neke liste poslova, koji će zatim biti označeni XML-om tako da se mogu prikazati na web stranici.

Preuzmite fajl (oglasi_poslovi.txt) iz foldera koji je postavljen posle ovog teksta.

Otvoriti Notepad++, a zatim otvoriti fajl sa kojim se radi. Kada se fajl otvori, pre bilo čega daljeg, sačuvati ga kao XML fajl.

Kao što je ranije pomenuto, ključ za kreiranje XML dokumenata je pridržavanje pravila. Sve dok se pridržavate nekoliko jednostavnih zahteva, možete kreirati XML za skoro sve zamislive svrhe.

Elementi

Najosnovnija jedinica u XML dokumentu je element. Element je kontejner koji može da sadrži podatke ili druge elemente. Elementi su generalno omeđeni početnim i završnim oznakama, obe su zatvorene u ugaonim zagradama (start-tag i end-tag). Završne oznake se razlikuju od početnih oznaka po tome što sadrže kosu crtu (/) ispred naziva elementa. U nastavku je primer elementa:

<moj-element>Ovaj tekst se nalazi unutar elementa.</moj-element>

Postoji još jedan tip elementa koji se zove prazan element.  Ovi elementi nemaju sadržaj između oznaka za otvaranje i zatvaranje. Umesto pisanja obe oznake, prazan element se može skratiti korišćenjem jedne oznake i stavljanjem kose crte na kraj naziva oznake. Na primer, Oznake <break></break> se mogu napisati jednostavno kao <break />.  Prazni elementi se često koriste kao markeri, kao što je HTML <img /> element, koji označava lokaciju slike na web stranici. U XML-u se prazni elementi ponekad koriste i za davanje komandi određenim XML procesorima ili kao kontejneri za skladištenje informacija samo u atributima.

Odnosi između elemenata

Kao što je pomenuto, XML elementi mogu sadržati i druge elemente. To znači da je XML idealan za skladištenje informacija koje mogu biti predstavljene u hijerarhiji nalik stablu. Ako zamislite dijagram porodičnog stabla, lako se može videti odnos između roditelja, dece i braće i sestara. Slično, dijagram XML dokumenta pokazuje iste odnose. XML fajl recepta sa početka strane može se vizuelno prikazati sledećim dijagramom:

XML dijagram: recept na vrhu, grane: naziv-jela, sastojci, uputstvo. Naziv-jela, 3 grane: sastojci. Uputstvo, 3 grane: korak

Po njihovom odnosu ili funkciji u XML dokumentu, elementi mogu biti:

    • Dokument element (root element) – Element koji obuhvata sve ostale elemente u dokumentu. U gornjem primeru, <recept> je element dokumenta. To je jedini element koji nema roditelja. Svaki XML dokument mora imati jedan i samo jedan element dokumenta.

    • Child elements & parent elements (Podređeni elementi i nadređeni elementi)- Podređeni elementi (deca) se nalaze u okviru nadređenog elementa (roditelj). Svako dete može imati samo jednog roditelja, ali roditelj može imati više od jednog deteta. U gornjem primeru, <sastojek> je potomak od <sastojci>.

    • Sibling elements (Srodni elementi - "braća i sestre")- elementi koji su na istom nivou i dele istog roditelja. Elementi <naziv-jela> i <sastojci> su braća i sestre u primeru iznad.

Kako da se pravilno ugnezde elementi (Nesting Elements)

Kada pišemo XML dokument, moramo da se uverimo da svaki element ima jedan i samo jedan nadređeni element i da se ne preklapa sa svojim bratima i sestrama. Na primer, sledeći kod će izazvati grešku:

<prezime>Jole<adresa>117 Lenjinova.</prezime></adresa>

Obratite pažnju da se <prezime> i <adresa> preklapaju. Da biste ovo popravili, trebalo bi da zatvorite element <prezime> pre početka <adresa>, kao što je prikazano u sledećem kodu:

<prezime>Jole</prezime><adresa>117 Lenjinova.</adresa>

Ovo ih čini odgovarajućim srodnim elementima i neće izazvati nikakve greške kada ih obrađuje XML procesor.

Ispravna imena elemenata

Postoje neka ograničenja za imena koja se mogu izabrati za elemente. Generalno, možete da koristite velika i mala slova, brojeve i sledeće znakove:

Character

Primer

donja linija

<vehicle_type>

crtica

<listing-id>

tačka

<font.size>

Ostale znakove interpunkcije treba izbegavati, pošto mnogi znaci interpunkcije imaju posebnu namenu u XML-u.

Napomena:Moguće je koristiti znakove u nazivima elemenata koji nisu u engleskom alfabetu, sve dok ih podržava Unicode. Međutim, imajte na umu da bi drugima koji koriste vaš XML dokument moglo biti teško da shvate oznake u neengleskim znakovima, a može da se desi da nemaju ispravne fontove potrebne za prikazivanje neengleskih znakova.

Osetljivost na velika i mala slova (Case Sensitivity)

Kao što je ranije pomenuto, možete koristiti velika i mala slova u imenima XML elemenata — međutim, jedna važna stvar koju treba imati na umu je da XML razlikuje velika i mala slova. Ako koristite velika slova u početnoj oznaci, morate koristiti ista velika slova u krajnjoj oznaci. Na primer, sledeći primer koda će izazvati grešku jer je za XML parser <prvi-korak> potpuno drugačiji element od </Prvi-korak>:

  <prvi-korak>Prvi korak</Prvi-korak>

Sada kada znamo neka osnovna pravila XML sintakse, počnimo sa obeležavanjem (markiranjem) našeg fajla :


Dodavanje Document Element-a (root)

Prvi element koji ćete dodati dokumentu sa spiskom poslova je element dokumenta. Kao što je prethodno objašnjeno, on obuhvata sve ostale elemente unutar XML dokumenta, tako da ima smisla prvo dodati ovaj element.

Pre nego što to uradimo, hajde da brzo pogledamo naš fajl. Primetićete da dokument ima naslov na vrhu — možemo ga zameniti elementom dokumenta. Za naše potrebe, element dokumenta <fakultet-ponuda-poslova> će odgovarati našim potrebama, kao i sažeto opisati sadržaj dokumenta. Hajde da uklonimo naslov dokumenta, a zatim dodamo element dokumenta u naš fajl.

NAPOMENA: Autorima XML-a se savetuje da koriste imena elemenata koja su čitljiva za ljude, kao što je ovde slučaj. Skraćeni nazivi oznaka kao što su <fkl-pon-psl> ili <fpp> mogu značiti manje kucanja, ali će drugima biti mnogo teže da razumeju vašu oznaku.

Korak 1: Uklonite tekst „Poslovi koji se nude na fakultetu“ sa početka fajla
Korak 2: Dodajte element dokumenta u vaš fajl

  1. Da biste dodali početnu oznaku za element dokumenta, dodajte istaknuti kod na vrh vašeg fajla:
     <fakultet-ponuda-poslova> (11/23/2021)
     Predavač za predmet Matematika (37483)
    60 000 mesečno
    Puno radno vreme
  2. Scroll - Pomerite se do dna dokumenta.

  3. Da biste dodali završnu oznaku za element dokumenta, dodajte istaknuti kod na dno vašeg fajla::

    DOSTUPNOST:
    Samo u toku dana.
    Počinje odmah
    </fakultet-ponuda-poslova>
  4. Sačuvajte vaš fajl


XML Deklaracija

Iako to nije obavezno, dobra je praksa da uključite XML deklaraciju u svoje dokumente. Deklaracija služi da obavesti ljude i aplikacije da koristite XML format, kao i koju specifičnu verziju XML-a i koji tip kodiranja vaš dokument koristi. Iako liči na element, zapravo se ne smatra standardnim elementom. Ako ga uključite u svoj dokument, to mora biti prva stvar u tom dokumentu odmah na početku u prvoj liniji — obično se nalazi ispred elementa dokumenta, bez razmaka ili drugih znakova pre deklaracije.

XML deklaracija koju ćete dodati pokazaće da koristite XML 1.0 (trenutni standard) i da koristite UTF-8 skup znakova za kodiranje našeg dokumenta. Ako ne navedete kodiranje znakova, XML će podrazumevano koristiti Unicode.

Hajde da uključimo XML deklaraciju u naš fajl:

<?xml version="1.0" encoding="UTF-8"?>
<fakultet-ponuda-poslova> (11/23/2021)

Predavač za predmet Matematika (37483)
60 000 mesečno

Entity Reference

Važna stvar kod XML-a je potreba da se u dokumentima koriste reference na entitete. Reference entiteta zamenjuju unapred definisani niz znakova nekim drugim karakterom ili nizom znakova. U XML-u postoji pet unapred definisanih referenci na entitete:

Entitet

Opis

&lt;

Znak manje od (<)

&gt;

Znak veće od (>)

&quot;

Dvostruki navodnik (")

&apos;

Jednostruki navodnik (')

&amp;

Ampersand (&)

Kao što vidite, entiteti uvek počinju znakom ampersanda i završavaju se tačka-zarezom.

Svi ovi entiteti su zamene za znakove koji se koriste u XML sintaksi. Da smo ih ostavili kao jednostavne znakove, a ne entitete, XML procesor bi ih mogao zbuniti zbog njihove posebne upotrebe. Na primer, ako želite da koristite znak manje od u matematičkoj formuli, kao što je x < 2, procesor bi pretpostavio da je početak oznake (tag). Ovo bi verovatno izazvalo grešku. Umesto toga, trebalo bi da kodirate formulu kao x &lt; 2.

Ako pažljivo pogledate prvi opis posla u vašem fajlu, možda ste primetili da se u tom pasusu nalazi znak ampersanda — i da vaš uređivač koda prikazuje ampersand u drugoj boji od okolnog teksta. Ovo ukazuje na to da uređivač koda misli da je ampersand deo XML oznake i da tamo očekuje početak reference entiteta. Ako bismo u ovom trenutku pokrenuli naš kod kroz XML procesor ili validator, dobili bismo grešku zbog tog ampersanda.

Upotrebićemo referencu entiteta da bismo bili sigurni da ampersand u našem dokumentu neće izazvati greške.

Korak 1: Zamenite ampresand u opisu prvog posla sa referencom entiteta za ampersand
        a. U uređivaču koda pronađite ampersand u prvom opisu posla.
        b. Da biste ampersand zamenili odgovarajućom referencom entiteta, ukucajte tekst koji je napisan podebljanim slovima:

                      Rad sa studentima (časovi &amp; vežbe) u okviru specifičnog programa;


Pre nego što dodamo još oznaka u dokument, odvojimo malo vremena da naučimo o pravljenju dobro oblikovanih XML dokumenata.

Kada kreirate XML dokument, važno je da se uverite da je dobro formiran — drugim rečima, moramo da se uverimo da sledimo XML sintaksička pravila, ili XML procesor neće obraditi oznake i umesto toga će prikazati greške. Naučili smo bitna pravila XML sintakse, pa hajde da proverimo da li je naš dokument dobro oblikovan, čak i u nedovršenom stanju.

Kada radite sa uređivačem koda za kreiranje XML-a, ne postoji uvek ugrađen način da se proveri da li je XML dokument dobro oblikovan. Na primer, Notepad++ ima dostupne dodatke koji će vam omogućiti da proverite ispravnost vašeg XML-a, ali Brackets nema. Međutim, postoji mnogo sajtova dostupnih na internetu koji će vam omogućiti da proverite da li je vaš dokument dobro formiran. Za naše svrhe, koristićemo XMLValidation.com's XML Validator da proverimo da li je na[ fajl dobro oblikovan.

Stranica za proveru XML-a nam omogućava da kopiramo i nalepimo XML dokument na web stranici da bismo proverili i videli da li dokument prati ispravnu XML sintaksu, kao i da proverimo da li je naš XML validan tako što ćemo ga proveriti sa šemom. Kasnije ćemo naučiti nešto više o šemama – za sada, hajde da kopiramo i nalepimo naš XML dokument u XML validator da vidimo da li je dobro formiran.

Korak 1: Proverite da li je vaš fajl dobro oblikovan

    • Vratite se na uređivač koda.

    • Da biste izabrali sav kod u dokumentu, u uređivaču koda kliknite bilo gde unutar dokumenta, a zatim na tastaturi pritisnite: Ctrl+A

    • Da biste kopirali sav kod u dokumentu, na tastaturi pritisnite: Ctrl+C

    • Vratite se na web pregledač sa otvorenim sajtom za proveru XML-a.

    • Da biste nalepili kod u validator, u polju koje kaže "Please copy your XML document in here:"(„Kopirajte svoj XML dokument ovde:“), na tastaturi pritisnite: Ctrl+V

    • Da biste izvršili proveru sintakse, na dnu stranice, kliknite na dugme ispod

Kada XML Validator obradi vašu datoteku, trebalo bi da dobijete poruku koja kaže „Nisu pronađene greške“. Da je XML dokument imao bilo kakve greške, XML Validator bi ukazao gde je pronašao grešku i na koju vrstu greške je naišao, što je od pomoći kada pokušavate da rešite problem koda i pokušate da popravite greške.

Dok radite na svojim XML dokumentima, dobra je ideja da s vremena na vreme proverite da li su dobro oblikovani, kako biste bili sigurni da je vaš XML pravilno strukturiran. Ovo će vam pomoći da pronađete sve potencijalne probleme u označavanju (markup) pre nego što pokrenete svoj XML kroz XML procesor.

*****************************

Dizajn XML Dokumenta

Sada kada znamo kako da kreiramo dobro oblikovan XML dokument, hajde da istražimo kako da ga pravilno dizajniramo tako da odgovara našim potrebama. Kada počnemo da utvrđujemo strukturu našeg XML dokumenta, želećemo da bliže pogledamo tip podataka sa kojima radimo i razmislimo o tome kako će to uticati na oznake koje kreiramo.

Narrative vs. Record-Like Documenti

Postoje dve različite kategorije XML dokumenata: narativni XML dokumenti i XML dokumenti usmereni na podatke. Narativni XML dokumenti su slobodniji i manje strukturirani. Često sadrže znatnu količinu teksta unutar XML oznaka. Odeljak teksta iz predstave, na primer, obeležen XML-om u svrhu arhiviranja, je jedan primer narativnog XML dokumenta. Iako može postojati skup oznaka koji se koristi za označavanje predstave, tačne oznake koje se koriste za svaki deo teksta mogu se razlikovati.

Nasuprot tome, XML dokumenti koji su usredsređeni na podatke su mnogo krući. Veća je verovatnoća da će ovi dokumenti sadržati podatke koji bi takođe mogli biti smešteni u bazi podataka, kao što je spisak evidencije o zapošljavanju ili inventar opreme. Verovatno će postojati veća konzistentnost među dokumentima u skupu dokumenata, a iste oznake će se verovatno koristiti za svaki zapis.

Dokument sa spiskom poslova koji danas obeležavamo je više dokument koji se fokusira na podatke. Njegova ukupna struktura će verovatno biti slična iz nedelje u nedelju. Oglasa za posao može biti više ili manje, ali svaki spisak će verovatno sadržati slične, ako ne i identične elemente.

Kada se upoznamo sa podacima sa kojima ćemo raditi, sledeći korak je da odredimo koje oznake će biti potrebne za efikasno označavanje dokumenta.

Ordeđivanje skupa oznaka ( Tag Set )

Skup oznaka ( tag set) je kompletna lista oznaka koje se mogu koristiti za dodavanje XML strukture sličnom skupu dokumenata.

Ako pogledate informacije sadržane u vašem fajlu, možete videti da svaka lista sadrži iste informacije: naziv posla, plata, klasifikacija, odeljenje, opis, kvalifikacije itd. Želećemo da napravimo oznaku za svaki podatak, a zatim da koristimo te oznake da označimo informacije u svakom zapisu.

Za skup oznaka ovog dokumenta, on će uključiti roditeljsku oznaku koja sadrži svaki spisak poslova, a zatim dodatne oznake za svaki deo informacija o određenom poslu (posao, plata i tako dalje). Pošto svaka informacija navedena o određenom poslu pripada samo tom poslu, ugnezdićemo te oznake unutar nadređene oznake za svaki spisak da bismo ih grupisali zajedno.

Počnimo da obeležavamo dokument — označićemo prvi posao sa kojim ćemo početi. Prvo ćemo dodati roditeljsku oznaku za prvi posao, a zatim dodati podređene oznake ostatku podataka za taj posao. Dok označavate dokument, možda ćete želeti da uvučete podređene elemente (indentacija), slično kao u sledećem primeru:
 <roditelj>
    <dete>Podređeni element 1</dete>
    <dete>Podređeni element 2</dete>
 </roditelj>

Ovo može pomoći da bude očiglednije da su određeni elementi ugnežđeni jedan u drugom i pomoći će vam da se uverite da su elementi pravilno ugnežđeni i da se slučajno ne preklapaju.

XML ignoriše razmak u dokumentu, tako da dodavanje dodatnog prostora neće uticati na način na koji se vaš dokument obrađuje. Da biste uvukli svaki element, možete dodati nekoliko razmaka pre ugnežđenog elementa ili pritisnuti taster Tab da biste uvukli red koda.

Iako nije potrebno uvlačiti redove koda koji uključuju ugnežđene elemente, generalno se smatra dobrom idejom da ugnežđeni elementi budu očigledniji i da se lakše vidi kako je dokument strukturiran.

Možda ćete takođe primetiti da neki od delova na listi poslova imaju naslove — mi ćemo ih uklanjati kako idemo, jer će oznake kojima ćemo označavati dokument dodati svu strukturu koja nam je potrebna.


Počnimo sa obeležavanjem našeg fajla:

Korak 1: Dodajte oznake za otvaranje i zatvaranje <posao> na prvu listu poslova

     a. Da biste kreirali oznaku otvaranja za naš posao, dodajte istaknuti kod u dokument:

   <fakultet-ponuda-poslova> (11/23/2021)
<posao>
Predavač za predmet Matematika (37483)
  1. Dodajte završnu oznaku u posao:

   Počinje 01/15/2022
</posao>

Službenik za ljudske resurse (37491)

Sada kada smo dodali dodatne elemente, naš prvi <posao> je skoro završen. Međutim, postoje neke dodatne informacije za ovaj posao koje korisnici našeg dokumenta možda neće morati da vide kada se prikaže na vebu, ali koje i dalje želimo da budu uključene u naš dokument.

*************************************************

Atributi

Postoji jedan suštinski deo XML-a: atributi. Atribut je XML struktura koja omogućava autorima da uključe dodatne informacije o elementu u par ime/vrednost. Ako ste upoznati sa HTML-om, već ste koristili atribute u oznaci <a>, kao što je sledeći primer

<a href="index.html">Povratak na početnu stranu</a>

U ovom slučaju, href je atribut koji sadrži ime datoteke koja je cilj veze.

Postoji nekoliko stvari koje treba zapamtiti kada se radi o atributima:

  • Ime atributa mora biti odvojeno od vrednosti atributa znakom jednako (=).

  • Vrednost atributa mora biti okružena navodnicima - možete koristiti jednostruke ili dvostruke navodnike.

  • Atributi samo treba da budu uključeni u početnu oznaku elementa.

Atributi se ponekad smatraju pridevima XML jezika. Oni pružaju način da se uključe neke dodatne informacije o datom elementu. Iako atributi na prvi pogled mogu izgledati jednostavno, odluka da li da se koriste atributi u odnosu na korišćenje podređenih elemenata nije baš tako jednostavna.

Na primer, razmotrite da li da koristite element <start-datum> ili bismo mogli bismo da ga uključimo kao atribut elementa <posao>, kao što je prikazano u sledećem primeru:

<posao start="1/20/2022">

Ni jedno ni drugo nije tačno ili pogrešno. Na izbor kada odlučujete utiče da li ćete imati više instanci te vrste podataka. Svaki element može imati samo jedan atribut istog imena. Međutim, element može imati više podređenih elemenata istog imena. Ako ćete morati da označite više sličnih informacija, koristite elemente.

Postoji nekoliko faktora koji mogu uticati na odluku da li da se koriste atributi ili podređeni elementi. Trebalo bi da razmislite o sledećem pre nego što odlučite da uključite informacije kao atribut ili podređeni element:

    • Koliko su informacije bitne? Ako je to zaista bitno, razmislite o korišćenju podređenog elementa. Ako nije bitno, razmislite o korišćenju atributa.

    • Da li informacije moraju biti prikazane korisniku? Ako je tako, možda ćete želeti da koristite podređene elemente. Može biti nezgodno ako pokušate da izvučete vrednost atributa iz elementa koristeći jezike za obradu kao što je XSLT.

    • Koliko informacija će biti uključeno u atribut? Atributi mogu postati teški za čitanje nakon nekoliko reči.

Postoje dva mesta gde bi atributi mogli biti korisni u našem dokumentu. Prvo, mogli bismo da dodamo atribut <fakultet-ponuda-poslova> koji ukazuje na datum kada je dokument poslednji put ažuriran. Takođe bismo mogli da premestimo ID posla, koji je trenutno deo podataka uključenih u <posao>, u atribut koji je deo <pozicija>. Pošto je ID posla nešto što korisnici web-sajta za ljudske resurse ne moraju nužno da brinu, možda bi bilo dobro da ga uključite kao atribut kako bi i dalje bio vidljiv ljudima koji mogu da uređuju vaš fajl nakon što smo ga napravili.

Dodajemo atribute:

  Korak 1: Dodajte atribut za datum <fakultet-ponuda-poslova>

     - uklonite datum objavljivanja, nakon <fakultet-ponuda-poslova> start-tag-a,

     -uključiti datum objavljivanja kao atribut u elementu :

<fakultet-ponuda-poslova datum-objave="12/23/2021">
    <posao>
        <pozicija>Predavač za predmet Matematika (37483)</pozicija>

Korak 2: Dodajte atribut za ID posla u <posao>

    -uklonite stari ID posla, u <pozicija> start-tag,

    - dodajte atribut id="37483" :

Sada bi naš početak fajla trebalo da izgleda ovako:

<fakultet-ponuda-poslova datum-objave="12/23/2021">
<posao id="37483">
<pozicija>Predavač za predmet Matematika (37483)</pozicija>

Završili smo obeležavanje prvog posla. Zatim ćemo kreirati listu oznaka:

Dodavanje ostalih oznaka u Dokument
<fakultet-ponuda-poslova datum-objave="12/23/2018">
<posao id="37483">
<pozicija>Predavač ...
<plata>60 000 ...
<radno-vreme>Puno ...

<katedra>Katedra za ...

<opis>Rad sa ...
<minimalne-kvalifikacije>Mora imati ...

<preferirane-kvalifikacije> Poželjno radno ...
<dostupnost>Trebalo bi da...
<datum-pocetka>Počinje 01/15/2022</datum-pocetka>
</posao>
<posao>

! Ne zaboravite da se svaki tag treba ZATVORITI na ispravan način !

Iskoristiti istu listu oznaka da označimo drugu listu poslova:

U ovom trenutku, dodali smo oznake na jedan od spiskova poslova, ali još uvek postoji drugi spisak koji treba da bude označen – vi ćete sami označiti ovaj posao.

Korak 1. Koristeći oznake koje smo kreirali ranije, dodajte oznake na listu poslova. (Obavezno uključite atribute tamo gde je potrebno.)

Korak 2. Proverite da li je vaš dokument dobro oblikovan pomoću XML Validation web stranice.

Korak 3. Proverite svoj kod naspram listinga kompletiranog koda, koji će biti obezbeđen od strane nastavnike.

Korak 4. Sačuvajte svoj rad.


Provera validnosti XML-a sa šemama

U ovom trenutku, napravili smo dobro oblikovan XML dokument koji prati pravila XML sintakse. Međutim, šta ako želite da budete sigurni da drugi koji rade sa XML dokumentom koji ste kreirali dodaju elemente u pravom redosledu ili uključuju sve elemente koji su potrebni?

Razmotrimo sadržaj našeg fajla. Naš fajl ima specifičnu strukturu. Svaki element <fakultet-ponuda-poslova> sadrži elemente <posao>, koji zatim sadrže druge elemente kao što su <pozicija> i <plata>. Ne bi imalo mnogo smisla menjati ugnežđenje elemenata. Na primer, element <plata> ne bi imao smisla da nije sadržan u elementu <posao>. Takođe bi moglo biti zbunjujuće za ljude koji koriste web lokaciju za ljudske resurse ako bi svaki posao imao informacije navedene različitim redosledom, kao što bi bilo da se <dostupnost> nalazi na kraju jednog posla, a na početku drugog.

Sve dok ste jedini autor koji radi na dokumentu, možete biti sigurni da ćete da održavate odgovarajuću strukturu dokumenta. Međutim, šta se dešava ako drugi rade na dokumentu? Šta se dešava ako drugi žele da promene namenu dokumenta za svoje potrebe i žele da budu sigurni da imaju doslednu strukturu? Da bismo ovo postigli, moraćemo da kreiramo pravila koja će obezbediti da se naša XML oznake ispravno koriste i da je naš XML dokument validan. Ova pravila će se nalaziti u dokumentu koji se zove šema (schema)

Šeme

Šeme su tip XML dokumenta koji sadrži pravila o tome kako se određeni XML jezik za označavanje može koristiti. Postoji mnogo različitih jezika dostupnih za pisanje šema, ali tri najpopularnija su jezici za definiciju tipa dokumenta (Document Type Definition -DTD), definiciju XML šeme (XML Schema Definition-XSD) i RELAX NG šeme. Svaki od njih nudi različite funkcije, a izbor specifičnog jezika šeme za rad zavisi od toga koje su karakteristike XML-a potrebne za dokument.

Šeme se mogu koristiti da:

  • obezbede korisnicima XML dokumenta listu elemenata i atributa koji se mogu koristiti u pomenutom dokumentu

  • označavaju gde se elementi i atributi mogu koristiti u dokumentu i u kojem se redosled moraju korisititi

  • pružaju informacije o dokumentu koje su čitljive i ljudima i mašinama

Proces provere da li XML dokument prati pravila postavljena u šemi naziva se validacija. Ovo je važan korak u procesu pravljenja XML dokumenta, jer osigurava da se elementi i atributi u dokumentu koriste onako kako je originalni autor dokumenta nameravao.

Postoji nekoliko različitih načina na koje možemo izvršiti validaciju dokumenta. XML editori će otkriti da li se XML dokument odnosi na određenu šemu i koristiće tu šemu da označe sve greške u dokumentu. Međutim, ako koristimo uređivač koda za rad na našem XML-u, možda bismo želeli da koristimo jednu od mnogih opcija onlajn validacije da proverimo XML dokument u odnosu na šemu. Za naše današnje svrhe, ponovo ćemo koristiti XML validaciju na sajtu da bismo izvršili validaciju našeg dokumenta. U ovom slučaju nećemo praviti sopstvenu šemu — umesto toga, koristićemo unapred pripremljenu šemu zasnovanu na sadržaju našeg fajla. Ova unapred pripremljena šema, poslovis.xsd, kreirana je korišćenjem jezika XML Schema.

Pre nego što proverite da li je XML napisan u vašem fajlu validan, moraćete da povežete datoteku sa njenom šemom. Na ovaj način, će XML procesor znati kakva se šema koristi i gde da je pronađu. Nakon toga, možete proveriti validnost vašeg fajla koristeći web stranicu za XML Validaciju.

  Korak 1: Povežite oglasi_poslovi.kml sa datotekom šeme poslovis.xsd

Da biste povezali oglasi_poslovi.xml sa poslovis.xsd, na vrhu datoteke zamenite početni element <fakultet-ponuda-poslova>sledećim kodom:

<fakultet-ponuda-poslova xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:noNamespaceSchemaLocation="poslovis.xsd" datum-objave="12/23/2021">
    <job id="37483">

Korak 2: Koristite poslovis.xsd da proverite validnost oglasi_poslovi.xml

Otvorite  poslovis.xsd u editoru koda.

  • U uređivaču koda selektujte i kopirajte sadržaj oglasi_poslovi.xml.

  • U web browser- , paste tkopirani XMLu polje  "Please copy your XML document in here:" na web stranici za XML Validation.

  • Da biste naznačili da XML treba da se proveri u odnosu na spoljnu šemu,  kliknite na polje za potvrdu pored  Validate against external XML schema

  • Da biste nastavili sa procesom validacije, kliknite na dugme ispod.

  • U uređivaču koda izaberite i kopirajte sadržaj poslovis.xsd.

  • U browser-u, paste kopiranu šemu u ponlje pored  "Please copy the XML schema in here:" .

  • Da biste završili proces validacije, kliknite na dugme ispod

Ako vaš XML dokument prati pravila izložena u shemi poslovis.xsd, onda ne bi trebalo da vidite greške koje vraća XML validacija. Ako se greške pojave, XML validacija će pokazati koje su greške i gde se nalaze u kodu kako bi se mogle popraviti.

NAPOMENA: Ako imate greške u svom kodu i ispravite te greške na sajtu za proveru KSML-a, a ne u uređivaču koda, takođe ćete morati da se vratite i dodate referencu entiteta za ampersand (&amp;) . Stranica za proveru XML-a zamenjuje reference entiteta odgovarajućim entitetima kada se vraća na nalepljeni kod nakon validacije, a ako reference entiteta nisu zamenjene, dokument će prikazati greške koje se odnose na nedostajuće reference entiteta.

U ovom trenutku, datoteka oglasi_poslovi.xml je gotova, a pošto je potvrđena, spremna je za upotrebu na web sajtu fakulteta.




Last modified: Saturday, 20 November 2021, 10:42 AM