چگونه از 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)>

سطر 1 نوع عنصر note را با چهار عنصر فرعی "to, from, heading, body" تعریف می‌کند.

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

XML Schema

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

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