چگونه (XSD How To)
در این راهنما، «آموزش XSD» را عملی یاد می گیری. «طرح واره (Schema)» قرارداد ساخت یک سند است. «DTD» هم یک قرارداد قدیمی تر است. با مثال های کوتاه جلو می رویم. سپس ارجاع دادن XML به DTD یا XSD را تمرین می کنیم.
یک سند XML ساده
این یک «سند XML» ساده است. XML یعنی زبان نشانه گذاری قابل گسترش. مثل برچسب گذاری دفتر مشق، اما ماشینی.
<?xml version="1.0"?>
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
تعریف با DTD
«DTD (Document Type Definition)» ساختار را تعریف می کند. یعنی می گوید چه عناصری بیایند و با چه ترتیبی.
<!ELEMENT note (to, from, heading, body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
نکته: PCDATA یعنی «متن کاراکتری». مثل متن ساده در یک پیام.
تعریف با XSD
در «آموزش XSD»، با نوع داده آشنا می شوی. «نوع داده (Data Type)» یعنی رشته، عدد، تاریخ و … . XSD خودش XML است و از فضای نام استفاده می کند.
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="https://www.w3schools.com"
xmlns="https://www.w3schools.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>
نکته: «complexType» یعنی عنصر، فرزند دارد. «simpleType» یعنی فقط متن یا مقدار دارد.
ارجاع XML به DTD
می توانی داخل XML، نشانی DTD را بدهی. سپس اعتبارسنجی انجام می شود. اعتبارسنجی یعنی مطابقت با قرارداد.
<?xml version="1.0"?>
<!DOCTYPE note SYSTEM "https://www.w3schools.com/xml/note.dtd">
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
ارجاع XML به XSD
برای XSD از فضای نام و schemaLocation کمک می گیریم. «فضای نام (Namespace)» جلوی قاطی شدن نام ها را می گیرد.
<?xml version="1.0"?>
<note
xmlns="https://www.w3schools.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://www.w3schools.com/xml note.xsd">
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
گام های عملی سریع
- XML ساده را بساز.
- ساختار را با DTD تعریف کن.
- همان ساختار را با XSD بساز.
- XML را به DTD یا XSD وصل کن.
نکته: برای مقدمه کامل، صفحه مقدمه XSD را ببین. برای مقایسه قدیمی تر، مثال های DTD را بررسی کن.
جمع بندی سریع
- XML ساختار دارد، با قرارداد مشخص.
- DTD ساده است، اما محدودتر.
- XSD قوی تر است و نوع داده دارد.
- ارجاع درون XML، اعتبار را تضمین می کند.