Maturski, seminarski i diplomski radovi iz informatike.
XML (eXstensible Markup Language) je meta jezik koji omogućava opis strukture i sadržaja dokumenata.
XML je dizajniran da opiše podatke i da se fokusira na to šta su podaci, za razliku od HTML-a, koji je dizajniran da prikaže podatke i da se fokusira na to kako podaci izgledaju. Tagovi u XML nisu unapred definisani, nego ih korisnik sam definiše. XML je postao W3C preporuka 1998. godine. Element u XML dokumentu je označen parom tagova - odgovarajući otvoreni i zatvoreni tag. XML dokument može da bude dobro formiran i validan, što podrazumeva da dokument sadrži jedan korenski element i da su ostali elementi dobro ugnježdeni. XML tagovi su “case sensitive”, mogu da imaju atribute, koji se javljaju kao par naziv-vrednost, i oni su proširivi.
Prva linija u dokumentu je XML deklaracija; ona definiše verziju XML-a i “character encoding” koji se koristi u dokumentu. Sledeći tag predstavlja lokaciju šeme (fajl sa ekstenzijom .xsd). XML dokument je validan ako je u skladu sa DTD-om (Document Type Definition) ili XML šemom. DTD ili XML šema opisuje strukturu XML dokumenta. XML dokument je zapravo instanca DTD-a ili šeme. XML Schema jezici predstavljaju nadgradnju DTD-a. Uvode nove koncepte (u odnosu na DTD):
-velik broj ugrađenih tipova podataka,
-mogućnost definicije sopstvenog tipa podatka,
-mogućnost definisanja lista,
-može da se definiše element sa null (nil) vrednošću.
Treća linija opisuje korenski element.Ostale linije opisuju decu korenskog elementa.
Šema je kolekcija iskaza koji definišu strukturu skupa podataka, kao i ograničenja na toj strukturi. Šeme se čuvaju i fajlovima sa ekstenzijom .xsd.
Instanca šeme je XML dokument.
Osnovni elementi XML Schema jezka su:
-schema – root element
-element – svaki element XML dokumenta se ovim opisuje
1. postojeći tip
2. simpleType – kada želimo da profinimo postojeće tipove (ne sme da ima podelemente ili atribute)
3. complexType – ako ima podelemenata ili atributa
- sequence – sekvenca podelemenata,
- choice – izbor jednog od navedenih podelemenata,
- attribute – definicija atributa za element,
- any – bilo koji element.
Facet. Facet je svojstvo elementa koje ga ograničava na zadati način. Postoji desetak facet-a kojima se ograničavaju postojeći tipovi podataka.
Simple Type:
-Kada je potrebno profiniti postojeći tip. Profinjenje se svodi na navođenje odgovarajućeg facet-a kojim se ograničava postojeći tip:
- length, minLength, maxLength,
- pattern – regularni izraz,
- minInclusive, maxInclusive,
- minExclusive, maxExclusive,
- totalDigits, fractionDigits.
Element restriction definiše profinjenje, a atribut base tip koji profinjujemo.
-Definicija liste. Lista vrednosti razdvojenih whitespace-om, ograničenje je definisano odgovarajućim facet-om :
- length, minLength, maxLength
- pattern
Element list definiše listu, a atribut itemType tip elementa liste.
-Definicija unije. Vrednost elementa može biti neka od navedenih vrednosti. Element union definiše listu, a alternativni atribut memberTypes definiše spisak tipova koji čine uniju.
-Enumeracije. Enumeracija predstavlja navođenje vrednosti elemenata iz unapred definisanog spiska.
Complex Type:
Ako imamo podtagova ili atributa. Podtagovi mogu biti:
- sekvenca,
- izbor,
- svi elementi sa spiska bilo kojim redosledom,
- atributi
-Sekvenca. Niz podelemenata, redosled navođenja je bitan!
-Izbor. Predstavlja izbor između postojećih elemenata (disjunkcija).
-Svi elementi. Svi navedeni elementi, ali svaki samo jednom.
-Atributi. Element sa atributima se definiše kao complexType. Ako element sadrži samo tekst, a ima i atribut, koristi se ključna reč simpleContent.
2. Podrška Jave za XML
Podršku Jave za XML globalno možemo podeliti na sledeće grupe:
-Parsiranje postojećih XML dokumenata,
-Kreiranje “od nule” i ažuriranje samog stabla XML dokumenta, kao i redefinisanje stabla,
-Transformacija XML dokumenta u željeni izlazni format koristeći XSL.
Prve dve vrste podrške su specificirane kroz tzv. DOM i SAX API-je.
Dom parser. DOM parser kreira strukturu stabla u memoriji na osnovu XML dokumenta. Kretanjem po stablu se vrše izmene i čitaju podaci. DOM omogućava lako brisanje, dodavanje i izmenu XML sadržaja. Da bi se mogao koristiti Xerces DOM interfejs, potrebno je prvo instancirati DOM parser:
DOMParser parser = new DOMParser();
Pomoću njega se XML fajl parsira i smešta u memorijsku strukturu:
parser.parse("Klijent.xml");
Argument metode parse može biti i URL:
parser.parse ("http://.../Klijent.xml");
Dalje, XML dokument je reprezentovan objektom klase Document:
Document document = parser.getDocument();
document je, sa ovog aspekta, samo koren stabla koje predstavlja XML dokument – dakle, jedan od čvorova. Čvorovi su predstavljeni interfejsom Node. Svaki čvor može imati podređene čvorove (a, ne mora – tada je on list). Metod getNodeType() vraća tip čvora. Tipovi su definisani kao konstante u interfejsu Node:
int type = node.getNodeType();
if (type == Node.ELEMENT_NODE)...
Čvor može biti:
- Element - predstavljen interfejsom Element,
- Atribut - predstavljen interfejsom Attr,
- Tekst - predstavljen interfejsom Text.
Svi ovi interfejsi nasleđuju interfejs Node, i proširuju ga odgovarajućim metodama. Metod getNodeName() vraća naziv čvora stabla:
System.out.println (node.getNodeName());