نحوه تشريح يک عنصر در سند XSD New Page 1



ساير




 

 

 

SAKHA RAVESH CO.

 ا مروز

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

    5 4 3 2 1 

 عنوان

 نويسنده

  مشاهده

 تعداد آراء

 امتياز

 XSD چيست ؟( بخش پنجم)

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

8329

7

4.4

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

 

XSD چيست ؟( بخش پنجم)  

XSD چيست ؟( بخش پنجم)  
آنچه تاکنون گفته شده است :
بخش اول :  مقاهيم و جايگاه نکنولوژی XSD
بخش دوم :  گرامر XSD 
بخش سوم :انواع داده ( ساده ، مرکب )
بخش چهارم : بررسی Attribute
در اين بخش به بررسی نحوه تشريح يک عنصر در سند XSD  خواهيم پرداخت .
دو راه متفاوت جهت تشريح عناصر يک سند XML با استفاده از متد XSD وجود دارد:

  • روش اول : در اين روش ، زير مجموعه های يک عنصر و خصلت های آن در داخل يک بلاک <COMPLEXTYPE> و بعد از تعريف عنصر اصلی مستقر و  تشريح می گردند.روش  فوق ، توصيف داخلی يا Nested ناميده می شود .

  • روش دوم : در اين روش ، توصيف عناصر زير مجموعه در داخل بدنه اصلی Schema ارائه گرديده و سپس در داخل بلاک <Complextype>  به عناصر مربوطه مراجعه خواهد شد. روش فوق ، توصيف عمومی يا Global ناميده می شود.

انتخاب هر يک از روش های فوق در توصيف عناصر ، بستگی به ماهيت خود عنصر و ديدگاه طراح دارد . بعبارت ديگر اگر تعريف يک عنصر با نوع داده ساده حالت انحصاری داشته باشد و در ساير عناصر سند جاری و يا عناصر اسناد ديگر قصد استفاده از آنان وجود نداشته باشد ، مناسب است از روش اول بمنظور تشريح عنصر استفاده گردد. در صورت عدم تحقق شرايط فوق ، مناسب است از روش دوم استفاده گردد. در واقع روش دوم، امکان استفاده مجدد از  توصيف انجام شده را فراهم می نمايد.  مثال زير نحوه تشريح يک عنصر در سند 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:Element Name="ID"      Type="XSD:String" MinOccurs="1" MaxOccurs="1"/>
                    <XSD:Element Name="GPA"  Type="XSD:String" MinOccurs="1" MaxOccurs="1"/>
                </XSD:ComplexType>
            </XSD:Element>
      </XSD:Schema>

در مثال فوق،عنصر Student به عنوان يکي از زير مجموعه های عنصر ريشه يا همان Schema توصيف و لذا به عنوان يک تعريف عمومی مطرح و  می توان ازآن  در هر محل  ديگر سند جاری و يا حتی اسناد ديگر استفاده نمود . اما عناصر ID و GPA به صورت عناصر زير مجموعه عنصر Student و آنهم در داخل آن (Nested) تشريح گرديده اند، لذا توصيف اين عناصر صرفا" در عنصر Student معتبر بوده و در هيچ محل ديگر سند جاری و يا اسناد ديگر، قابل استفاده نخواهند بود . فرض کنيد در ساختار سند فوق ،عنصر ديگری با نام Teacher ، وجود داشته باشد که دارای  دو زير عنصر ID و GPA می باشد. با توجه به فرضيات فوق ، مناسب است از روش دوم استفاده و تعاريف مربوط به عناصر ID و GPA را در داخل عنصر ريشه قرار دهيم . بدين ترتيب ، قادر خواهيم بود از تعاريف دو عنصر فوق در عناصر Student و Teacher بصورت  يکسان استفاده نمائيم . به مثال ذيل توجه کنيد :

مثال : توصيف يک سند و ضرورت استفاده از تعريف عمومی

<?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:Element Ref="ID"      MinOccurs="1" MaxOccurs="1"/>
                    <XSD:Element Ref="GPA"  MinOccurs="1" MaxOccurs="1"/>
                </XSD:ComplexType>
            </XSD:Element>
          <XSD:Element Name="Teacher" Minoccurs="0" MaxOccurs="Unbounded
">
               <XSD:ComplexType>
                    <XSD:Element Ref="ID"      MinOccurs="1" MaxOccurs="1"/>
                    <XSD:Element Ref="GPA"  MinOccurs="1" MaxOccurs="1"/>
                </XSD:ComplexType>
            </XSD:Element>
      <XSD:Element Name="ID"     Type="XSD:String"/>
      <XSD:Element Name="GPA" Type="XSD:String"/>
      </XSD:Schema>

در مثال فوق ، از خصلت Ref در مقابل Name استفاده شده است .در صورت نياز به هر نوع تغييردر توصيف عناصر ID وGPA کافی است تغيير مورد نظر را صرفا" در يک محل ( محلی که توصيف آنان انجام شده است ) اعمال نمود . بدين ترتيب ، تمام سند  و در هر مکانی که از عناصر فوق استفاده شده است ، متاثر از تغيير ايجاد شده بصورت اتوماتيک می گردد .
روش های فوق ، در خصوص انواع داده ساده (Simpletype) نيز صادق است . همانگونه که در بخش سوم اين مقاله اشاره گرديد ،  تعريف يک عنصر ساده (Simpletype) را  میتوان بصورت داخلی (Nested) و يا بصورت زير مجموعه ای از عنصر ريشه (Schema) ،  انجام داد. در حالت دوم ، امکان استفاده مجدد از  تعريف انجام شده وجود  داشته و می توان از آن در هر مکانی از توصيف جاری و يا حتی توصيفهای ديگر استفاده نمود. مثال ارائه شده در بخش سوم اين مقاله ، نحوه اعمال محدوديت بر روی يک  نوع داده استاندارد نظير  String و ايجاد نوع داده جديدی با نام StudentGpa  را نشان می دهد . مثال فوق ، در اين راستا می تواند مفيد واقع شود .

دسترسي به ساير توصيف ها
همانگونه که اشاره گرديد، عناصر و انواع داده ئی که بعنوان عنصر زير مجموعه ريشه Schema در يک توصيف  قرار می گيرند ، امکان استفاده مجدد از آنان در ساير توصيف ها وجود خواهد داشت . بدين منظور و در اولين مرحله می بايست از  Import  و يا Include استفاده گردد مثال زير ، نحوه استفاده از Include را نشان می دهد .

مثال : نحوه و جايگاه استفاده از Include

<?XML Version = "1.0"?>
<XSD:Schema Xmlns:XSD="http://www.w3.org/2001/xmlschema"
                          TargetNameSpace="URI goes here">
<XSD:Include Schemalocation="XSDfilename goes here"/>
     .
     .
     .
</XSD:Schema>

از گرامر فوق ، زمانی استفاده می شود که توصيف جاری و يا بعبارت ديگر Targetnamespace و توصيفی که می خواهيم از عناصر و يا انواع داده آن استفاده نمائيم ، در يک موقعيت فيزيکی  و يا Location قرار داشته باشند . به مثال ذيل توجه فرمائيد :

مثال : نحوه استفاده از Include

<?XML Version = "1.0"?>
<XSD:Schema Xmlns:XSD="http://www.w3.org/2001/xmlschema"
                          TargetNameSpace="http://www.srco.ir/students">
<XSD:Include Schemalocation="StudentGpa1.xsd"/>
    <XSD:Element Name="teacher"  Minoccurs="0"  MaxOccurs="Unbounded">
       <XSD:ComplexType>
          <XSD:Sequence>
               <XSD:Element Ref = "StudentGPA" Minoccurs="1"  MaxOccurs="1" />
               <XSD:Element Name="University" Type="XSD:String" />
          </XSD:Sequence>
       </XSD:Complextype>
    </XSD:Element>
</XSD:Schema>

در مثال فوق ، موقعيت فيزيکی توصيف جاری و توصيفی که می خواهيم از آن استفاده نمائيم (StudentGpa1.xsd) يکسان است . در تشريح عنصر Teacher ، از تعريف StudentGpa که در سند StudentGpa1.xsd توصيف شده است، استفاده گرديده است .
در صورتيکه موقعيت فيزيکی سند جاری و يا Targetnamespace و سندی که می خواهيم از تعاريف آن استفاده نمائيم يکسان نباشد ، می بايست از گرامر ذيل استفاده گردد :

مثال : نحوه و جايگاه استفاده از Import

<?XML Version = "1.0"?>
<XSD:Schema Xmlns:XSD="http://www.w3.org/2001/xmlschema"
                          TargetNameSpace="URI goes here">
<XSD:Import Namespace="URI goes here" 
                         Schemalocation = "XSD filename goes here"/>
     .
     .
     .
</XSD:Schema>

فرض کنيد در مثال قبل ، موقعيت فيزيکی سند جاری و يا Targetnamespace و سندی که تعريف studentgpa در آن توصيف شده است يکسان نباشد ، در چنين مواردی می توان از Import استفاده و توصيف سند مورد نظر را بصورت زير انجام داد :

مثال : نحوه استفاده از Import

<?XML Version = "1.0"?>
<XSD:Schema Xmlns:XSD="http://www.w3.org/2001/xmlschema"
                          TargetNameSpace="http://www.srco.ir/Teachers">
<XSD:Import Namespace = "http://www.srco.ir/students"
                         Schemalocation="StudentGpa1.xsd"/>
    <XSD:Element Name="teacher"  Minoccurs="0"  MaxOccurs="Unbounded">
       <XSD:ComplexType>
          <XSD:Sequence>
               <XSD:Element Name = "TeacherGPA" Type = "StudentGpa1:StudentGpa"
                                         Minoccurs="1"  MaxOccurs="1" />
               <XSD:Element Name="University" Type="XSD:String" />
          </XSD:Sequence>
       </XSD:Complextype>
    </XSD:Element>
</XSD:Schema>

همانگونه که مشاهده می گردد ، موقعيت فيزيکی  سند جاری  و سندی که از آن استفاده شده است ، يکسان نمی باشد (به نحوه استفاده از تعريف عنصر studentGpa توجه نمائيد ) .
در بخش ششم اين مقاله ، به بررسی انواع داده در XSD  و نحوه مستند سازی اسناد مربوطه ، خواهيم پرداخت .



جستجو

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


 

 

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



              

 

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