XSD nasıl kullanılır?

XML belgeleri DTD veya XML Şemasına atıfta bulunabilir.

Basit bir XML belgesi:

Adı "note.xml" olan bu XML belgesini görün:

<?xml version="1.0"?>
<note>
<to>George</to>
<from>John</from>
<heading> Hatırlatma</heading>
<body>Toplantıyı unutmayın!</body>
</note>

DTD dosyası

Aşağıdaki örnek, adı "note.dtd" olan DTD dosyasıdır, bu dosya yukarıdaki XML belgesinin elemanlarını tanımlar:

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

1. satır, note elementinin dört alt elementi içerdiğini tanımlar: "to, from, heading, body".

2-5 satırlar, to, from, heading, body elementlerinin türünü "#PCDATA" olarak tanımlar.

XML Şema

Aşağıdaki örnek, "note.xsd" adlı bir XML Şema dosyasıdır ve yukarıdaki XML belgesinin elementlerini tanımlar:

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

note elementi karmaşık bir türdür çünkü diğer alt elementler içerir. Diğer elementler (to, from, heading, body) basit türlerdir çünkü diğer elementler içermezler. Karmaşık türler ve basit türler hakkında daha fazla bilgiyi aşağıdaki bölümlerde öğreneceksiniz.

DTD'ye atıfta bulunur

Bu dosya DTD'ye atıfta bulunur:

<?xml version="1.0"?>
<!DOCTYPE note SYSTEM "http://www.codew3c.com/dtd/note.dtd">
<note>
<to>George</to>
<from>John</from>
<heading> Hatırlatma</heading>
<body>Toplantıyı unutmayın!</body>
</note>

XML Şemasına atıfta bulunur

Bu dosya XML Şemasına atıfta bulunur:

<?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> Hatırlatma</heading>
<body>Toplantıyı unutmayın!</body>
</note>