بررسی انواع داده ساده و مرکب New Page 1



ساير




 

 

 

SAKHA RAVESH CO.

 ا مروز

 پنجشنبه  10  فروردين  1396  2017  Mar.  30   Thursday ToDay
صفحه اصلی  مقالات نکته هادايره المعارف خودآموزها | تازه ها خود آزمون ها    
  نسخه قابل چاپ  

    5 4 3 2 1 

 عنوان

 نويسنده

  مشاهده

 تعداد آراء

 امتياز

 XSD چيست ؟( بخش سوم )

 مديريت نرم افزار

9123

7

4.3

با توجه به جایگاه داده در عصر حاضر و  لزوم نگاه جامع به این مقوله مهم ، بر آن شدیم تا محوریت فعالیت های خود را بر  روی این موضوع متمرکز نمائیم . از این رو گروه فابک با شعار فناوری اطلاعات برای کسب وکار شکل گرفت و  خدمات خود  را از طریق  سایت www.fabak.ir  به مخاطبان محترم عرضه می نماید

 

XSD چيست ؟( بخش سوم )

XSD چيست ؟( بخش سوم )
در بخش اول اين مقاله به بررسی  مقاهيم و جايگاه نکنولوژی 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 ميباشد .
در بخش چهارم اين مقاله به بررسی خصلت ها ، خواهيم پرداخت .



جستجو

مقالات                 
دايره المعارف       
دوره های آموزشی


 

 

مشاهده گروه ها



              

 

 تهيه شده در شرکت سخا روش -  1382