چگونه از XSD استفاده کنیم؟

فایل‌های XML می‌توانند به DTD یا XML Schema مراجعه کنند.

یک فایل XML ساده:

لطفاً این فایل XML به نام "note.xml" را ببینید:

<?xml version="1.0"?>
<note>
<to>George</to>
<from>John</from>
<heading>یادآوری</heading>
<body>نمی‌توانید جلسه را فراموش کنید!</body>
</note>

فایل DTD

مثال زیر یک فایل DTD به نام "note.dtd" است که تعریف عناصر XML بالا را انجام می‌دهد:

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

تعریف عنصر note دارای چهار فرزند است: "to, from, heading, body".

ردیف‌های 2-5 نوع عناصر to, from, heading, body را به عنوان "#PCDATA" تعریف می‌کنند.

شمای XML

این مثال یک فایل XML Schema به نام "note.xsd" است که عناصر مورد نظر در فایل XML بالا را تعریف می‌کند:

<?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 یک نوع پیچیده است، زیرا شامل زیرعناصر دیگر است. عناصر دیگر (to, from, heading, body) نوع ساده هستند، زیرا شامل هیچ عناصر دیگری نیستند. شما در بخش‌های بعدی بیشتر درباره نوع پیچیده و نوع ساده یاد خواهید گرفت.

ارجاع به DTD

این فایل شامل ارجاع به DTD است:

<?xml version="1.0"?>
<!DOCTYPE note SYSTEM "http://www.codew3c.com/dtd/note.dtd">
<note>
<to>George</to>
<from>John</from>
<heading>یادآوری</heading>
<body>نمی‌توانید جلسه را فراموش کنید!</body>
</note>

ارجاع به XML Schema

این فایل شامل ارجاع به 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>یادآوری</heading>
<body>نمی‌توانید جلسه را فراموش کنید!</body>
</note>