XML – Definisanje šema

Kao što smo spomenuli u prethodnom XML prilogu, kada je XML nastao njegovo definisanje je izvršeno DTD-om (Document Type Definition), koji je odredio izgled i „ponašanje“ XML dokumenata (aplikacija). Ali, ukoliko upoznate XML i upoznate kako se piše DTD bićete u mogućnosti da napišete sopstveni XML format za potrebe vaših aplikacija. Pisanje novih šema moguće je uz poznavanje tzv. „XML šematskog jezika“ ( XML Schema Language). Uz pomoć ovog jezika možete definisati bilo kakvu vrstu tekstualnih struktura za vaše potrebe. Na primer, možete definisati strukturu koja čuva podatke o knjigama neke biblioteke.

Cilj prethodnog definisanja šeme je sama definicija budućih XML dokumenata. Najlakši način za početak kreiranja bilo koje šeme je, početi od osnovnog XML dokumenta koji je potrebno da definišete. Za primer definisaćemo osnovnu šemu za XML dokument „Biblioteka“, čiji je glavni elemet „zaglavlje“, sa odgovarajućim podelementima „sekcija“-ma. Evo i primera same šeme:


<xsd:schema xmlns:xsd="http://www.w3.org/2000/08/XMLSchema">
<xsd:annotation>
<xsd:documentation>
Primer sheme Biblioteke
</xsd:documentation>
</xsd:annotation>

<xsd:element name="biblioteka" type="Knjiga"/>
<xsd:sequence>

<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>

<xsd:complexType name="TipZaglavlje">
<xsd:sequence>
<xsd:element name="dugacki_naslov" type="xsd:string"/>
<xsd:element name="datum" type="xsd:date"/>
<xsd:element name="autor" type="xsd:string"/>
<xsd:element name="kratak_opis" type="xsd:string"/>
<xsd:element name="kljucne_reci" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>

<xsd:complexType name="TipSekcija">
<xsd:sequence>
<!– svaka sekcija mora da ima naslov –>
<xsd:element name="naslov" type="xsd:string" minOccurs="1"/>
<xsd:element name="link" type="xsd:string" minOccurs="0"/>

</xsd:sequence>
</xsd:sequence>
</xsd:complexType>

</xsd:schema>


Kao što vidite, ova šema definiše glavni element „biblioteka“ koji u sebi sadrži (u primeru) tri elementa:
  • Zaglavlje
  • Sekcija1
  • Sekcija2
Svaki od ovih elemenata sadrži u sebi odgovarajuće podelemente, kao što je „sekcija1_naslov“ koji čuva samo tekstualne podatke, bez pripadajućih XML podelemenata. Elementi koji u sebi sadrže druge elemente nazivaju se složenim elemetima, a oni koji u sebi ne sadrže podelemente – prosti elementi. U sledećem prilogu daćemo vam primer XML dokumenta koji je nastao po ovoj DTD definiciji.

Pratite Krstaricu na www.krstarica.com