( تعداد نمایش : 551 )

بررسی گرامر 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 توجه نمائید )

<?XML Version = “1.0″?>

المان ریشه  در توصیف 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 : خصلت  فوق،اختیاری بودن یا اجباری بودن عنصرمورد نظر  را مشخص می نماید. این خصلت اجباری نبوده و در صورت عدم مقدار دهی ، بصورت پیش فرض عدد یک برای آن در نظر گرفته خواهد شد . جدول ذیل مقادیر مختلف خصلت فوق را نشان می دهد.

توضیحات مقدار نسبت داده شده

عنصر اختیاری است

۰

عنصر باید حداقل به تعداد مشخص شده در سند وجود داشته باشد

Integer > 0

  • MaxOccurs  : خصلت فوق، تعداد مجاز عنصر در سند را مشخص می نماید. این خصلت نیز اجباری نبوده و در صورت عدم مقدار دهی ،بصورت پیش فرض عدد یک برای آن در نظر گرفته خواهد شد . جدول ذیل مقادیر مختلف خصلت فوق را نشان می دهد.

توضیحات مقدار نسبت داده شده

عنصر فقط می تواند به اندازه عدد مشخص شده در سند وجود داشته باشد

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  خواهیم پرداخت .

دیدگاه خود را بیان کنید.

باید وارد سایت شده باشید برای دیدگاه دادن