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

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


تبلیغ بانک ها در صفحات
ربات ساز تلگرام در صفحات
ایمن نیوز در صفحات
.. سیستم ارسال پیامک ..
XSD چيست ؟( بخش سوم )
-(51 Body) 
XSD چيست ؟( بخش سوم )
Visitor 966
Category: کامپيوتر
در بخش اول اين مقاله به بررسي  مقاهيم و جايگاه نکنولوژي XSD اشاره  و در بخش دوم به بررسي  بررسي  گرامر XSD   پرداخته گرديد . در اين بخش به بررسي انواع داده ساده ( simple type ) و مرکب ( complex type ) ، خواهيم پرداخت .

انواع داده ( ساده ، مرکب ) 
جهت توصيف داده ها در يک سند XML با استفاده از تکنولوژي XSD ، از دو نوع  ساده و مرکب استفاده مي گردد که بمنظور بکارگيري آنان در گرامر XSD  ، نشانه هائي با همين عنوان يعني <SimpleType> و <ComplexType>  در نظر گرفته شده است . قبل از تشريح هر يک از موارد فوق ، لازم است جايگاه استفاده از هر يک بدرستي مشخص گردد .

نوع داده مرکب <ComplexType> زماني استفاده ميگردد که :

  • عنصر داده  داراي عناصر زير مجموعه باشد  و/  يا .

  • عنصر داده داراي خصائص (Attribute) باشد .

نوع داده ساده <SimpleType> زماني استفاده ميگردد که :

  • تصميم داريم با اعمال شرايط و يا محدوديتهائي بر روي يک نوع داده استاندارد (مثل String) يک نوع داده جديد (User Define Data Type) ايجاد نمائيم  و / يا

  • عنصر مورد نظر داراي عناصر زير مجموعه و يا خصائص (Attribute) نمي باشد.

بمنظور آشنائي با برخي از مفاهيم اوليه در اين خصوص ، مجددا" به مثال ارائه شده در بخش دوم مقاله ، مراجعه مي نمائيم .

يک سند 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 داراي دو زير عنصر ID و GPA است. بنابراين مي بايست عنصر Student بصورت مرکب توصيف گردد. بدين منظور لازم است پس از توصيف عنصر مربوطه و پيش از توصيف عناصر زير مجموعه آن از نشانه <ComplexType> استفاده شده  و در ادامه عناصر زير مجموعه را درون بلاکي  از اين نشانه قرار دهيم.( خطوط چهارم و نهم )
فرض کنيد ، مي خواهيم بر روي عنصر GPA که از نوع استاندارد String است ، محدوديتي خاص را اعمال نمائيم،  بطوريکه طول آن چهار حرف  و فرمت آن به صورت (Digit.DigitDigit) باشد .بمنظور تامين خواسته فوق ، لازم است يک نوع داده جديد با لحاظ نمودن محدوديت اشاره شده ، بر روي نوع داده استاندارد String تعريف گردد . با توجه به ضرورت تعريف يک نوع داده جديد ، مي بايست از نشانه <SimpleType> استفاده گردد . تشريح نوع داده جديد بر اساس تکنولوژي XSD ، بصورت زير خواهد بود. ( در مقالات بعد، بصورت مفصل تر به بررسي اعمال  محدوديت ، ارزش ها و الگوهاي مختلف ، پرداخته خواهد شد ).

تعريف يک نوع داده ساده با اعمال محدوديت

<XSD:simpletype  name="studentgpa"  minoccurs="1"   maxoccurs="1">
     <XSD:restriction  base="XSD:string">
           <XSD:length  value="4"/>
           <XSD:pattern value="\d{1}.\d{2}"/>
     </XSD:restriction>
</XSD:simpletype>

با توجه به تعريف نوع ساده مورد نظر و لحاظ نمودن محدوديت هاي مربوطه ، سند XSD مثال قبل به شکل ذيل خواهد بود :

يک سند 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="StudentGpa"/>
                    </XSD:Sequence>
                </XSD:ComplexType>
            </XSD:Element>
<XSD:simpletype  name="studentgpa"  minoccurs="1"   maxoccurs="1">
     <XSD:restriction  base="XSD:string">
           <XSD:length  value="4"/>
           <XSD:pattern value="\d{1}.\d{2}"/>
     </XSD:restriction>
</XSD:simpletype>                                                                                                          
      </XSD:Schema>

سند فوق، به شکل زير نيز مي تواند ارائه گردد :

يک سند 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="string"  minoccurs="1" maxoccurs="1"/>
                     
 <XSD:simpletype >
                          <XSD:restriction  base="XSD:string">
                               <XSD:length  value="4"/>
                               <XSD:pattern value="\d{1}.\d{2}"/>
                          </XSD:restriction>
                      </XSD:simpletype>                                                                                                          
                    </XSD:Sequence>
                </XSD:ComplexType>
            </XSD:Element>
</XSD:Schema>

تفاوت موجود در ارتباط با هر يک از روش هاي ارائه شده به قابليـت استفاده مجدد از نوع تعريف شده برمي گردد. در حالت اول،  نوع داده جديد studentgpa را ميتوان در هر محلي از سند (در تشريح هر يک از عناصر ديگر ) استفاده کرد (قابليت استفاده مجدد). در حالت دوم، نوع تعريف شده صرفا" بر روي عنصر GPA اعمال و امکان استفاده مجدد از وجود نخواهد داشت (غير قابل استفاده مجدد) .

جمع بندي
بمنظور تشريح عناصر ( نوع ساده و يا نوع مرکب ) ، از سه روش متفاوت استفاده مي گردد : 

  • روش اول : ميتوان در يک خط نام عنصر و نوع آن و حداقل و حداکثر حضور آن در سند را تعيين نمود .در واقع روش فوق ، عليرغم اينکه از نشانه <Simpletype> استفاده  نشده است ، يک عنصر ساده را تشريح مي نمايد.چرا که نوع داده اين نوع عناصر از انواع داده استاندارد بوده و در انتهاي خط نيز توصيف با علامت " / " خاتمه يافته است . توصيف عناصر ID و GPA در مثال ابتداي مقاله از مصاديق اين روش توصيف عناصر است .

    <XSD:element name="name"  Type="type"  minoccurs="int"  maxoccurs="int"/>

  • روش دوم : در اين روش نام عنصر، حداقل و حداکثر حضور آن در سند به عنوان عنصر مادر تشريح شده و سپس عناصر زير مجموعه آن در داخل يک بلاک <Complextype> تعيين ميگردند . اين نوع توصيف در  خصوص انواع داده مرکب يعني عناصري که داراي زير مجموعه و يا خصائص (attribute) ميباشند، استفاده مي گردد . توصيف عنصر Student در مثال ابتداي مقاله از مصاديق اين روش است .

    تعريف يک نوع مرکب

     <XSD:Element Name="name" Minoccurs="int" MaxOccurs="int">
         <XSD:ComplexType>
              .
              .
              .
         </XSD:ComplexType>
    </XSD:Element>

  • روش سوم : در اين روش نام عنصر ، حداقل و حداکثر حضور آن در سند توصيف و سپس محدوديت اعمال شده بر روي نوع داده استاندارد در يک بلوک <Simpletype> جهت تعريف يک نوع داده جديد،  توصيف ميگردد. در واقع روش فوق، نوع ديگر توصيف انواع داده ساده Simpletype  بوده  که با اعمال محدوديت بر روي يکي از انواع داده استاندارد ايجاد شده است . تعريف studentgpa در مثال قبل از مصاديق بکارگيري اين روش در توصيف عناصر است.

    تعريف يک نوع ساده

    <XSD:element  name = "name"  minoccurs="int"  maxoccurs="int" />
          <XSD:simpletype>
               <XSD:restriction>
                     .
                     .
                     .
               </XSD:restriction>
          </XSD:simpletype>
    </XSD:element>

 توانائي ايجاد انواع داده جديد با اعمال محدوديت بر روي انواع داده استاندارد از ويژگيهاي بسيار مهم و توانمند تکنولوژي XSD ميباشد .
در بخش چهارم اين مقاله به بررسي خصلت ها ، خواهيم پرداخت .

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

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