Kuwa na XSD?

Faili ya XML inaweza kutumia DTD au XML Schema.

Maelezo wa XML wa kawaida:

Tazama faili ya XML yenye jina "note.xml":

<?xml version="1.0"?>
<note>
<to>George</to>
<from>John</from>
<heading>Kinga</heading>
<body>Ingatia kumfuata kikao!</body>
</note>

Faili ya DTD

Mfano hii ni maelezo wa faili ya DTD yenye jina "note.dtd", ambayo inadefini element ya wasoma wa hali ya XML iliyopita:

<!ELEMENT note (to, from, heading, body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>

Mimeweka ya 1 inadai kwamba elementi ya note ina elementi zingine tano: "to, from, heading, body".

Mimeweka ya 2-5 inadai kiwango kwa elementi za to, from, heading, body kwa sababu ni #PCDATA.

XML Schema

Mfano huu unaonyesha fayiro ya XML Schema yenye jina "note.xsd", inayodai elementi ya fayiro ya XML yenye jina hili:

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.codew3c.com"
xmlns="http://www.codew3c.com"
elementFormDefault="qualified">
<xs:element name="note">
    <xs:complexType>
      <xs:sequence>
	<xs:element name="to" type="xs:string"/>
	<xs:element name="from" type="xs:string"/>
	<xs:element name="heading" type="xs:string"/>
	<xs:element name="body" type="xs:string"/>
      </xs:sequence>
    </xs:complexType>
</xs:element>
</xs:schema>

Inayotaja elementi ya note inaurejehe kama aina ya kipeke, kwa sababu inaeneza elementi zingine. Elementi zingine (to, from, heading, body) ni aina ya kwanza, kwa sababu zilowakimbilia elementi zingine. Watajifunza zaidi kuhusu aina za kipeke na aina za kwanza katika kitabu hiki.

Kusomolea ya DTD

Fayiro hili inaonyesha kusomolea ya DTD:

<?xml version="1.0"?>
<!DOCTYPE note SYSTEM "http://www.codew3c.com/dtd/note.dtd">
<note>
<to>George</to>
<from>John</from>
<heading>Kinga</heading>
<body>Ingatia kumfuata kikao!</body>
</note>

Kusomolea ya XML Schema

Fayiro hili inaonyesha kusomolea ya XML Schema:

<?xml version="1.0"?>
<note>
xmlns="http://www.codew3c.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.codew3c.com note.xsd">
<to>George</to>
<from>John</from>
<heading>Kinga</heading>
<body>Ingatia kumfuata kikao!</body>
</note>