{"id":1666,"date":"2021-04-13T19:30:41","date_gmt":"2021-04-13T18:30:41","guid":{"rendered":"https:\/\/ssntb.org\/mirozaric\/?p=1666"},"modified":"2021-04-13T19:30:41","modified_gmt":"2021-04-13T18:30:41","slug":"osnove-xml-a","status":"publish","type":"post","link":"https:\/\/ssntb.org\/mirozaric\/2021\/04\/13\/osnove-xml-a\/","title":{"rendered":"Osnove XML-a"},"content":{"rendered":"\n<p>XML se koristi za strukturisanje i opis podataka u obliku koji je lako \u010ditljiv razli\u010ditim aplikacijama. HTML je jezik namijenjen definisanju prikaza podataka, dok je XML namijenjen opisu podataka.<\/p>\n\n\n\n<p>&lt;?xml version=&#8221;1.0&#8221;?&gt;<\/p>\n\n\n\n<p>&lt;poruka&gt;<\/p>\n\n\n\n<p>&lt;salje&gt;Jana&lt;\/salje&gt;<\/p>\n\n\n\n<p>&lt;prima&gt;Marko&lt;\/prima&gt;<\/p>\n\n\n\n<p>&lt;tekst&gt;Ovo je poruka!&lt;\/tekst&gt;<\/p>\n\n\n\n<p>&lt;\/poruka> <\/p>\n\n\n\n<p>Vidljivo je kako ovaj dokument ne sadr\u017ei nikakvu informaciju o tome kako bi podaci trebali izgledati (npr. vrsta i veli\u010dina fonta \u2026) za razliku od HTML jezika.<\/p>\n\n\n\n<p>&lt;html&gt;<\/p>\n\n\n\n<p>&lt;body&gt;<\/p>\n\n\n\n<p>&lt;h2&gt;PORUKA&lt;\/h2&gt;<\/p>\n\n\n\n<p>&lt;p&gt;<\/p>\n\n\n\n<p>&lt;b&gt;Ovo je poruka!&lt;\/b&gt;<\/p>\n\n\n\n<p>&lt;\/p&gt;<\/p>\n\n\n\n<p>&lt;\/body&gt;<\/p>\n\n\n\n<p>&lt;\/html&gt;<\/p>\n\n\n\n<p>Uo\u010dljivo je kako je velik dio sadr\u017eaja XML dokumenta zapravo opis samih podataka. Lako je pro\u010ditati XML dokument i razumjeti \u0161to je sadr\u017eaj dokumenta (Jana \u0161alje poruku Marku sadr\u017eaja \u201cOvo je poruka!\u201d). Zbog toga se XML dokumenti \u010desto nazivaju i samoopisuju\u0107i dokumenti. Ne treba vi\u0161e voditi ra\u010duna na kojoj se poziciji (i koje je du\u017eine) nalazi podatak.<\/p>\n\n\n\n<p>Mnogi ljudi smatraju XML zamjenom za HTML. Iako je to dijelom ta\u010dno, istina je da se ova dva jezika prije nadopunjuju nego \u0161to su konkurencija jedan drugome. <\/p>\n\n\n\n<p>Naj\u010de\u0161\u0107a veza XML-a i HTML-a u upotrebi na WWW-u je kada se XML koristi za zapis podataka, a HTML za odre\u0111ivanje prikaza tih istih podataka (koriste\u0107i HTML oznake kako je opisano u prethodnim lekcijama i kako \u0107e tek biti opisano u idu\u0107im).<\/p>\n\n\n\n<p>Prednost ove podjele je u tome \u0161to se sadr\u017eaj (u na\u0161em primjeru XML dokument sadr\u017ei poruku) mo\u017ee lako promijeniti bez zadiranja u HTML kod (koji mo\u017ee biti jako slo\u017een zbog formatiranja prikaza podataka), a i obrnuto: izgled prikazanih podataka se mo\u017ee promijeniti bez potrebe za izmjenom XML dokumenta. Ta podjela ima za posljedicu nekoliko va\u017enih prednosti u odnosu na integraciju podataka i definicije izgleda u jednu cjelinu, tj. HTML stranicu:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>za razli\u010dite klijente mo\u017ee se iz istih podataka kreirati razli\u010dit prikaz (npr. ovisno o pretra\u017eiva\u010du koji klijent koristi, a to mo\u017ee biti Internet Explorer s najnaprednijim mogu\u0107nostima ili mobitel koji koristi WAP protokol, generi\u0161e se ili HTML ili WAP stranica prilago\u0111ena klijentu) <\/li><li>dinami\u010dno a\u017euriranje stranica koje prikazuju podatke iz neke baze podataka jednostavno se posti\u017ee (izgled same stranice je definisan u HTML obliku, a podaci iz baze podataka dobivaju se u XML obliku).<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"949\" height=\"385\" src=\"https:\/\/ssntb.org\/mirozaric\/wp-content\/uploads\/2021\/04\/image-50.png\" alt=\"\" class=\"wp-image-1667\" srcset=\"https:\/\/ssntb.org\/mirozaric\/wp-content\/uploads\/2021\/04\/image-50.png 949w, https:\/\/ssntb.org\/mirozaric\/wp-content\/uploads\/2021\/04\/image-50-300x122.png 300w, https:\/\/ssntb.org\/mirozaric\/wp-content\/uploads\/2021\/04\/image-50-768x312.png 768w\" sizes=\"auto, (max-width: 949px) 100vw, 949px\" \/><figcaption>Jedan od na\u010dina kori\u0161tenja XML-a na webu za dinami\u010dke stranice<\/figcaption><\/figure>\n\n\n\n<p>U prethodnom primjeru XML podaci su zapisani ili u nekoj datoteci ili mogu egzistirati u nekoj bazi podataka iz koje se mogu dobiti postavljanjem upita (podatke mo\u017ee a\u017eurirati neka druga aplikacija). Na strani servera se, ovisno o vrsti klijenta, vr\u0161i generisanje (popunjavanje) stranice s dobivenim podacima. <\/p>\n\n\n\n<p>Generisanje stranica se mo\u017ee vr\u0161iti i direktnom transformacijom XML-a u \u017eeljeni oblik (HTML ili neki drugi) pomo\u0107u XSL-a (jezika namijenjenog za transformacije XML dokumenata iz jednog oblika u drugi), ali o tome u idu\u0107im lekcijama. <\/p>\n\n\n\n<p>Jo\u0161 jednom vrijedi napomenuti da je generisanje razli\u010ditih prezentacija istih podataka lako ostvarivo zahvaljuju\u0107i razdvajanju podataka od definicije prikaza.<\/p>\n\n\n\n<p>Pojavom XML standarda razmjena podataka se bitno pojednostavljuje i olak\u0161ava. Sami podaci koji se razmjenjuju sadr\u017eava\u0107e opis podataka. Programerski dio posla je zna\u010dajno olak\u0161an jer postoje komercijalni proizvodi koji sadr\u017ee metode za \u010ditanje, kreiranje, brisanje i pretra\u017eivanje XML dokumenata. Takvi proizvodi zovu se XML parseri. Programerski dio posla se svodi na pozivanje odre\u0111enih metoda koje XML parser podr\u017eava. Izme\u0111u ostalog XML parseri sadr\u017ee metode za validaciju XML dokumenta (XML dokument mora po\u0161tivati stroga XML pravila).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>XML se koristi za strukturisanje i opis podataka u obliku koji je lako \u010ditljiv razli\u010ditim aplikacijama. HTML je jezik namijenjen definisanju prikaza podataka, dok je XML namijenjen opisu podataka. &lt;?xml version=&#8221;1.0&#8221;?&gt; &lt;poruka&gt; &lt;salje&gt;Jana&lt;\/salje&gt; &lt;prima&gt;Marko&lt;\/prima&gt; &lt;tekst&gt;Ovo je poruka!&lt;\/tekst&gt; &lt;\/poruka> Vidljivo je kako ovaj dokument ne sadr\u017ei nikakvu informaciju o tome kako bi podaci trebali izgledati (npr.&hellip; <br \/> <a class=\"button small blue\" href=\"https:\/\/ssntb.org\/mirozaric\/2021\/04\/13\/osnove-xml-a\/\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[17],"tags":[],"class_list":["post-1666","post","type-post","status-publish","format-standard","hentry","category-17"],"_links":{"self":[{"href":"https:\/\/ssntb.org\/mirozaric\/wp-json\/wp\/v2\/posts\/1666","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ssntb.org\/mirozaric\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ssntb.org\/mirozaric\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ssntb.org\/mirozaric\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ssntb.org\/mirozaric\/wp-json\/wp\/v2\/comments?post=1666"}],"version-history":[{"count":1,"href":"https:\/\/ssntb.org\/mirozaric\/wp-json\/wp\/v2\/posts\/1666\/revisions"}],"predecessor-version":[{"id":1668,"href":"https:\/\/ssntb.org\/mirozaric\/wp-json\/wp\/v2\/posts\/1666\/revisions\/1668"}],"wp:attachment":[{"href":"https:\/\/ssntb.org\/mirozaric\/wp-json\/wp\/v2\/media?parent=1666"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ssntb.org\/mirozaric\/wp-json\/wp\/v2\/categories?post=1666"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ssntb.org\/mirozaric\/wp-json\/wp\/v2\/tags?post=1666"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}