XML – Definisanje prostih tipova

U prethodnom XML prilogu definisali smo složene elemente. Nasuprot složenim elementima, očekivano, stoje prosti elementi koji predstavljaju elemente koji ne sadrže ni jedan drugi element. Ovi elementi mogu da sadrže samo podatke. Oni predstavljaju sam sadržaj jednog XML dokumenta, tj. podatke čiji je tip definisan u deklaraciji elementa. Postoji mnogo različitih tipova podataka koje podržava XML. U pređašnjim primerima i sami smo definisali neke elemente odgovarajućih tipova podataka:

  • xsd:string
    tip podatka koji može da sadrži seriju alfanumeričkih karaktera. U našem primeru iskoristili smo ovaj tip za definisanje naslova knjiga.
  • xsd:positiveInteger
    integer predstavlja bilo koji ceo broj, a positive integer predstavlja pozitivni ceo broj različit od nule. U primeru smo ga mogli iskoristiti za navođenje broja stranica.
  • xsd:date
    ovaj tip služi za čuvanje podataka o datumu, tj. godini, mesecu i danu, i to u fromatu: gggg-mm-dd.
  • xsd:uriReference
    uriReference se odnosi na adresu, tj. Universal Resource Indicator (URI) nekog dokumenta. Služi za čuvanje podataka o linkovima.
  • xsd:boolean
    Jedan boolean entitet može imati samo jedno stanje od dva moguća: true ili false.
Jedan od najkorisnijih aspekata XML šema je mogućnost kreiranja novih tipova podataka kao derivat postojećih, ugrađenih tipova podataka. Na primer, ako imate dokument adresar i želite da čuvate podatke o stanovima neke ulice na parnoj strani, možete odrediti da taj podatak bude u rasponu od 4 do 100. Ako bi napisali:


<xsd:attribute name="br_stana"
type="xsd:positiveInteger"/>

entiteti bi mogli da uzimaju bilo koju pozitivnu vrednost, a ne samo onu između 4 i 100. Zato ćemo definisati sopstveni, novi tip podataka koji ovo neće dozvoliti. Dodaćemo atribute „minInclusive“ i „maxInclusive“, koji će ograničiti skup vrednosti iz kojih elementi mogu da uzimaju vrednost:


<xsd:simpleType name="br_stana_integer">
<xsd:restriction base="xsd:positiveInteger">
<xsd:minInclusive value="4"/>
<xsd:maxInclusive value="10"/>
</xsd:restriction>
</xsd:simpleType>

Sada, možemo definisati naš element „br_stana“ uz pomoć novog tipa podatka, umesto pređašnjeg „positiveInteger“:


<xsd:attribute name="br_stana"
type="br_stana_integer"/>

Inače, postoji veliki broj načina za kreiranje sopstvenih tipova unutar XML šema, a ovo je samo pojednostavljen primer kako ovo može da se odradi. Jednom kada odredite vaše proste i kompleksne XML elemente, možete kreirati i celu šemu.

Pratite Krstaricu na www.krstarica.com