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

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


تبلیغ بانک ها در صفحات
ربات ساز تلگرام در صفحات
ایمن نیوز در صفحات
.. سیستم ارسال پیامک ..
XSD چيست ؟( بخش چهارم)
-(45 Body) 
XSD چيست ؟( بخش چهارم)
Visitor 1216
Category: کامپيوتر
در تشريح ساختار داده هاي يک موجوديت (Entity)  ، برخي مواقع  به اجزاء  و يا المانهائي برخورد خواهيم کرد  که ارتباط تنگاتنگي با موجوديت داشته و بنوعي بعنوان يک خصلت يا ويژگي موجوديت مورد بررسي ، شناخته مي گردند.نحوه حضور اين اجزاء در ساختمان داده موجوديت از قبيل مقادير پيش فرض،مقادير ثابت يا خصلت تغيير ناپذيري از ويژگي هاي مهم اين اجزاء محسوب مي گردند . بعنوان مثال فرض کنيد در يک سازمان بزرگ براي تشکيل پرونده پرسنل، از يک  فيلد اطلاعاتي با  نام مليت  استفاده مي شود.بيش از 98 درصد پرسنل شرکت مزبور داراي مليت ايراني بوده  و تنها ممکن است يک  و يا دو درصد از پرسنل ، مليت غير ايراني داشته باشند.با توجه به وضعيت فوق ، مي توان  فيلد مليت  را به صورت پيش فرض مقدار دهي  و از تکرار آن در سند XML مربوطه جلوگيري  و صرفا" مليت افراد غير ايراني  را در سند مشخص نمود. در چنين مواردي علاوه بر حفظ يکپارچگي اطلاعات به مقدار زيادي در حجم اطلاعات سند XML  نيز صرفه جوئي خواهد شد . در تکنولوژي  XSD براي معرفي اينگونه اجزاء ، نشانه اي تحت عنوان <Attribute> پيش بيني  شده است . گرامر استفاده از attribute بصورت زير است :

گرامر استفاده از attribute

<XSD:attribute Name="name" Type="simple type"  Use="how used"  Value="value"/>

Name : نام Attribute را مشخص  و يک خصلت اجباري است .
Type : نوع داده attribute را مشخص و جزء خصلت هاي اجباري است ( نوع داده حتما" بايد از انواع داده ساده (simple type) باشد).
Use : نحوه استفاده از attribute را مشخص و مي تواند مقادير زير  را داشته باشد :

توضيحات

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

خصلت اجباري است 

Required

خصلت داراي مقدار پيش فرض است

Default

خصلت داراي مقدار ثابت و غير قابل تغيير است

Fixed

خصلت اختياري است

Optional

خصلت محافظت شده است

Prohibited

Value : اگر ويژگي Use داراي ارزش Default و يا Fixed باشد آنگاه ارزش مورد نظر مي بايست مشخص و در غير اينصورت نيازي به استفاده از ويژگي فوق ، نخواهد بود.

جايگاه فيزيکي و نحوه تعريف attribute در يک سند XSD
همانگونه که در بخش سوم اين مقاله اشاره گرديد ،  عناصر مرکب (ComplexType) عناصري هستند که دارا عناصر زير مجموعه و يا attribute باشند . بنابراين جايگاه فيزيکي attribute در داخل يک بلاک Complextype است (انتهاي بلاک و پس از توصيف کليه عناصر زير مجموعه) . بمنظور بررسي نحوه استفاده از attribute ، مثال ارائه شده در بخش سوم اين مقاله را مجددا" بررسي مي نمائيم .در مثال فوق ، قصد داريم عنصر ID را بصورت يک attribute تعريف  نمائيم . در چنين حالتي توصيف سند بصورت زير خواهد بود :

نحوه استفاده از 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:Element Name="GPA" Type="XSD:String" MinOccurs="1" MaxOccurs="1"/>
                    <XSD:Attribute Name="ID"  Type="XSD:String"  Use="Required" />
                </XSD:ComplexType>
            </XSD:Element>
      </XSD:Schema>

روش هاي توصيف attribute
جهت توصيف يک attribute از دو روش متفاوت استفاده مي گردد . اگر نوع داده attribute مورد نظر از انواع داده استاندارد و يا از پيش تعريف شده باشد ، آنگاه طبق گرامر ارائه شده ، مي توان  توصيف يک attribute را  بصورت زير انجام داد :

روش اول : توصيف يک Attribute

<XSD:attribute Name="name" Type="simple type"  Use="how used"  Value="value"/>

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

روش دوم : توصيف يک Attribute

<XSD:attribute Name="name"   Use="how used"  Value="value" >
     <XSD:simpletype>
            <XSD:restriction  Base="simple type">
                   <XSD:facet  Value="value" />
            </XSD:restriction>
     </XSD:simpletype>
</XSD:attribute>

facet ، حالات و ارزش هاي متفاوت آن در مقالات بعد به طور مفصل بررسي خواهد شد. جهت تشريح بهتر روش دوم،  به بررسي يک مثال  ديگر مي پردازيم . فرض کنيد که در مثال قبل ، قصد داريم  بر روي  نوع داده attribute ID ، محدوديتي خاصي را اعمال نمائيم :"طول رشته پنج و کاراکترهاي آن عدد باشند " ، در چنين حالتي توصيف سند بصورت زير خواهد بود :

مثال : توصيف يک سند با اعمال محدوديـت در رابطه با Attribute

<?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="GPA" Type="XSD:String" MinOccurs="1" MaxOccurs="1"/>
                    <XSD:Attribute Name="ID"    Use="Required">
                         <XSD:simpletype>
                               <XSD:restriction  Base="XSD:String">
                                        <XSD:Length="5" />
                                        <XSD:Pattern = "\d{5}" />
                               </XSD:restriction>
                         </XSD:simpletype>
                     </XSD:attribute>
                </XSD:ComplexType>
            </XSD:Element>
      </XSD:Schema>

همانگونه که مشاهده مي گردد ( با اندکي دقت ! ) ، توصيف هاي ارائه شده براي خصلت ID داخلي بوده و امکان استفاده مجدد از آن وجود نخواهد داشت . در صورت نياز به استفاده مجدد از توصيف يک Attribute در مکان هائي ديگر از سند ، مي بايست توصيف Attribute مورد نظر در خارج از محدوده داخلي قرار گيرد .
در بخش پنجم اين مقاله به بررسي حالات متفاوت ساختار ، خواهيم پرداخت .

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

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