جستجو در محصولات

گالری پروژه های افتر افکت
گالری پروژه های PSD
جستجو در محصولات


تبلیغ بانک ها در صفحات
ربات ساز تلگرام در صفحات
ایمن نیوز در صفحات
.. سیستم ارسال پیامک ..
XSD چيست ؟( بخش دوم )
-(43 Body) 
XSD چيست ؟( بخش دوم )
Visitor 784
Category: کامپيوتر
در بخش اول  اين مقاله ، به  بررسي ضرورت استفاده از 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 توجه نمائيد )

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

توضيحات

مقدار نسبت داده شده

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

0

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

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

برگرفته از سايت سخا روش

Add Comments
Name:
Email:  
User Comments:
SecurityCode: Captcha ImageChange Image