تبلیغات
آموزشASP.NET - XSD چیست ؟( بخش چهارم)
 
فردا روشن اسن به
آموزشASP.NET
صفحه نخست         تماس با مدیر         پست الکترونیک        RSS         ATOM
 
 
دوشنبه 23 اسفند 1389 :: نویسنده : ارش کاکاوند

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

در تشریح ساختار داده های یک موجودیت (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 مورد نظر در خارج از محدوده داخلی قرار گیرد .
در بخش پنجم این مقاله به بررسی حالات متفاوت ساختار ، خواهیم پرداخت .





نوع مطلب :
برچسب ها :
لینک های مرتبط :


پنجشنبه 23 شهریور 1396 06:23 ب.ظ
Hey there! I've been reading your website for a while now and
finally got the bravery to go ahead and give you a shout out from Huffman Tx!
Just wanted to mention keep up the good work!
چهارشنبه 15 شهریور 1396 03:24 ب.ظ
Every weekend i used to go to see this web site, for the reason that i want enjoyment, as this this web site conations genuinely nice funny information too.
چهارشنبه 1 شهریور 1396 01:54 ب.ظ
Actually when someone doesn't know after that its
up to other viewers that they will assist, so here it occurs.
 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر


درباره وبلاگ

سلام من آرش کاکاوند دانشجوی رشته کامپیوتر هستم و ورود شما رابه دنیای aspخوش امدمیگم.حتما نظر بدین تا من کارم رو بهتر ادامه بدم

مدیر وبلاگ : ارش کاکاوند
مطالب اخیر
نویسندگان
صفحات جانبی
نظرسنجی
شما کدام یک از برنامه های زیر را برای طراحی وب انتخاب می کنید؟








جستجو

آمار وبلاگ
کل بازدید :
بازدید امروز :
بازدید دیروز :
بازدید این ماه :
بازدید ماه قبل :
تعداد نویسندگان :
تعداد کل پست ها :
آخرین بازدید :
آخرین بروز رسانی :