Nakon definisanja prostije XML šeme, koja se sastoji od više prostih i kompleksnih elemenata predstavićemo vam i primer XML dokumenta koji je nastao iz definicije koju smo napravili u prethodnom prilogu:
?xml version="1.0"?>
<biblioteka><zaglavlje>
<dugacki_naslov>Lovac na jelene</dugacki_naslov>
<datum>1841</datum>
<autor>James Fenimore Cooper</autor>
<kratak_opis>avanturisticki roman</kratak_opis>
<kljucne_reci>lovac jelen Fenimore</kljucne_reci>
</zaglavlje><sekcija1>
<naslov>Prica o koznoj carapi</naslov>
<link>1</link>
</sekcija1><sekcija2>
<naslov>Dva trapera</naslov>
<link>84</link>
</sekcija2>
…
</biblioteka>
Kao što možete videti, kompleksni tip u XML šemi predstavlja XML element koji unutar sebe može da sadrži druge XML elemente. Ako bi napravili analogiju sa HTML-om, primer kompleksnog tipa elementa bio bi <BODY> tag. Kao što znate, <BODY> element u sebi može da ima mnoštvo drugih različitih elemenata, kao što su <p>, <b>, ili <ul>. Prvi kompleksni tip sa kojim se srećemo u našem „biblioteka“ primeru je tip „Knjiga“:
<xsd:complexType name="Knjiga">
Potom definišemo sve elemente i atribute koji pripadaju ovom kompleksnom tipu. Pošto je ovaj tip primarni element „biblioteke“, on sadrži sve ostale različite podelemente:
<xsd:complexType name="Knjiga">
<xsd:sequence>
<xsd:element name="zaglavlje" type="TipZaglavlje"/>
<xsd:element name="sekcija1" type="TipSekcija"/>
<xsd:element name="sekcija2" type="TipSekcija"/>
…
</xsd:sequence>
</xsd:complexType>
Iz ovog listinga možemo da zaključimo da se svaki osnovni element sastoji iz zaglavlja i više sekcija (u našem primeru samo dve). Pored toga, možemo da vidimo i jasni redosled ovih podelemenata:
- Zaglavlje
- Sekcija1
- Sekcija2
- …
- TipZaglavlje
- TipSekcija
<xsd:element name="datum" type="xsd:date"/>
<xsd:element name="autor" type="xsd:string"/>
Zanimljivi su i elementi „naslov“ i „link“, kod kojih smo odredili i broj mogućih ponavljanja u složenom tipu. Pa tako element „naslov“ mora da se u složenom elementu pojavi najmanje jedanput, a pojavljivanje elementa „link“ je opcionalno (zato mu je atribut „minOccurs“ postavljen na nulu). Pored minimalnog broja ponavljanja, mogli smo odrediti i maksimalni broj mogućih ponavljanja, atributom „maxOccurs“.
<xsd:element name="naslov" type="xsd:string" minOccurs="1"/>
<xsd:element name="link" type="xsd:string" minOccurs="0"/>
Pratite Krstaricu na www.krstarica.com