عنوان
|
نويسنده
|
مشاهده
|
تعداد
آراء |
امتياز
|
XSD چيست ؟ ( بخش دوم ) |
مديريت نرم افزار |
9077 |
14 |
4.3 |
با توجه به جایگاه داده در عصر حاضر و لزوم نگاه جامع به این مقوله مهم ، بر آن شدیم تا محوریت فعالیت های خود را بر روی این موضوع متمرکز نمائیم . از این رو گروه فابک با شعار فناوری اطلاعات برای کسب وکار شکل گرفت و خدمات خود را از طریق سایت www.fabak.ir به مخاطبان محترم عرضه می نماید
 |
XSD چيست ؟)بخش دوم )
XSD چيست ؟( بخش دوم )
در
بخش اول اين
مقاله
، به بررسی ضرورت استفاده از XSD و معرفی
برخی از ويژگی های آن اشاره گرديد، در بخش دوم
به بررسی گرامر XSD خواهيم پرداخت .
گرامر XSD
برای تشريح گرامر
XSD ،در ابتدا به ذکر يک مثال
پرداخته و سپس المانهای موجود در آن تشريح می گردد. جدول زير نمونه سند XML
را نشان می دهد :
يک سند نمونه
XML |
<?XML Version = "1.0"?>
<Students>
<Student>
<ID>12345</ID>
<GPA>3.5</GPA>
</Student>
<Student>
<ID>67890</ID>
<GPA>4.0</GPA>
</Student>
</Students> |
توصيف سند فوق،
بر اساس متد XSD بصورت زير است :
توصيف سند
XML با استفاده از متد XSD |
<?XML Version = "1.0"?>
<XSD:Schema xmlns:xsd='http://www.W3.org/2001/xmlschema'>
<XSD:Element
Name="student" Minoccurs="0" MaxOccurs="Unbounded"/>
<XSD:ComplexType>
<XSD:Sequence>
<XSD:Element Name="ID" Type="XSD:String" MinOccurs="1"
MaxOccurs="1"/>
<XSD:Element Name="GPA" Type="XSD:String" MinOccurs="1"
MaxOccurs="1"/>
</XSD:Sequence>
</XSD:ComplexType>
</XSD:Element>
</XSD:Schema> |
در ادامه با
توجه به سند XML اشاره شده وXSD
مربوطه ، به تجزيه و تحليل توصيف تعريف شده خواهيم پرداخت .
اعلاميه XML
با توجه به اينکه XSD خود يک سند
XML است ، پس خط اول آن ميتواند يک اعلاميه
XML باشد . (به خط اول توصيف تعريف شده
XSD توجه نمائيد )
المان ريشه در توصيف XSD
المان ريشه در يک سند XSD
،همواره با
تگ <Schema> مشخص می گردد . بمنظور اعلام به
پارسر XML که توصيف ارائه شده از روش
XSD تبعيت می نمايد ، لازم است Namespace
مرجع در المان <schema> تعيين گردد.
Namespace فوق توسط کنسرسيوم وب ارائه شده است .(به
خط دوم توصيف تعريف شده
XSD توجه نمائيد )
<XSD:Schema
xmlns:xsd='http://www.W3.org/2001/xmlschema'>
.
.
.
</XSD:Schema> |
نکته : پيشوند
XSD که در مثال فوق از آن استفاده شده است،
نشاندهنده متد بکارگرفته شده بمنظور توصيف سند است . پيشوند فوق
، در صورت تعريف در
NameSpace مرجع ،
می تواند هر چيز ديگری را نيز شامل شود .
همچنين اگر NameSpace مربوطه بصورت پيش فرض مشخص گردد
، می توان آن را حذف نمود. پيشنهاد می گردد
بمنظور افزايش خوانائی سند و همچنين جلوگيری از مشکلات آتی خصوصا" زمانی که در
توصيف مربوطه از توصيف ديگری استفاده ميگردد،
( Import) حتما" از پيشوند فوق
،
استفاده گردد .
عناصر (Elements)
المان ها ، مهمترين بخش در
يک سند XSD می باشند . جهت معرفی هر المان می بايست خصلت
های زير تعريف
گردند .
-
Name : خصلت اجباری
فوق ، نام عنصر مورد نظر را مشخص می نمايد .
-
Type : خصلت فوق ، نوع داده (Data
Type) عنصر مورد نظر را مشخص و می تواند ساده نظير
String و يا از انواع داده مرکب باشد .
-
MinOccurs : خصلت فوق،اختياری
بودن يا اجباری بودن عنصرمورد نظر را مشخص می نمايد. اين خصلت اجباری نبوده و
در صورت عدم مقدار دهی ، بصورت پيش فرض عدد يک
برای آن در نظر گرفته خواهد شد . جدول ذيل مقادير مختلف خصلت فوق را نشان می دهد.
توضيحات
|
مقدار نسبت
داده شده |
عنصر اختياری است
|
0 |
عنصر بايد حداقل به
تعداد مشخص شده در سند وجود داشته باشد |
Integer >
0 |
توضيحات
|
مقدار نسبت
داده شده |
عنصر فقط می تواند به
اندازه عدد مشخص شده در سند وجود داشته باشد |
Integer >
0 |
محدوديتی در ظهور
عنصر در سند وجود ندارد |
Unbounded |
تگ
Sequence
اين تگ(نشانه) زمانی استفاده می گردد،
که توالی عناصر در سند برای ما اهميت داشته باشد. از نشانه فوق،
فقط در تعريف عناصر مرکب (عناصری که بيش از يک جزء داشته باشند) ميتوان استفاده
نمود ، در چنين حالتی محل قرارگيری آن
می بايست قبل از تعريف اجزاء مربوطه باشد .
با توجه به توضيحات فوق و مشاهده مجدد سند توصيفی نمونه، آناليز سند XML مربوطه به شرح ذيل
خواهد بود .
توصيف سند
XML با استفاده از متد XSD |
<?XML Version = "1.0"?>
<XSD:Schema xmlns:xsd='http://www.W3.org/2001/xmlschema'>
<XSD:Element
Name="student" Minoccurs="0" MaxOccurs="Unbounded"/>
<XSD:ComplexType>
<XSD:Sequence>
<XSD:Element Name="ID" Type="XSD:String" MinOccurs="1"
MaxOccurs="1"/>
<XSD:Element Name="GPA" Type="XSD:String" MinOccurs="1"
MaxOccurs="1"/>
</XSD:Sequence>
</XSD:ComplexType>
</XSD:Element>
</XSD:Schema> |
-
اين سند شامل عناصری است به نام
Student که يا اصلا" در سند وجود ندارد و يا به هر تعداد
ممکن است وجود داشته باشد چراکه MinOccurs آن برابر صفر
است و MaxOccurs آن برابر
Unbounded .
-
عنصر Student
، شامل دو زير عنصر به نامهای ID و GPA
و از نوع String بوده و هرکدام فقط
ميتوانند يک بار در سند ظاهر شوند چرا که MinOccurs و
MaxOccurs آنها برابر يک است (در مثال فوق
،در صورت حذف
خصلت های MinOccurs و MaxOccurs
مربوط به توصيف عناصر ID و GPA
،هيچ تغييری در ماهيت توصيف ايجاد نمی شود، چرا که مقادير پيش فرض آنها برابر يک است
).
-
عناصر ID و
GPA در سند بايد به صورت پشت سرهم بيايند چرا که در
توصيف سند از نشانه Sequence استفاده شده است .
در بخش سوم اين مقاله،
به بررسی نوع های ساده (SimpleType) و نوع های مرکب
(ComplexType) در XSD
خواهيم پرداخت .