در تشریح ساختار داده های یک موجودیت (Entity) ، برخی مواقع به اجزاء و یا المانهائی برخورد خواهیم کرد که ارتباط تنگاتنگی با موجودیت داشته و بنوعی بعنوان یک خصلت یا ویژگی موجودیت مورد بررسی ، شناخته می گردند.نحوه حضور این اجزاء در ساختمان داده موجودیت از قبیل مقادیر پیش فرض،مقادیر ثابت یا خصلت تغییر ناپذیری از ویژگی های مهم این اجزاء محسوب می گردند . بعنوان مثال فرض کنید در یک سازمان بزرگ برای تشکیل پرونده پرسنل، از یک فیلد اطلاعاتی با نام ملیت استفاده می شود.بیش از ۹۸ درصد پرسنل شرکت مزبور دارای ملیت ایرانی بوده و تنها ممکن است یک و یا دو درصد از پرسنل ، ملیت غیر ایرانی داشته باشند.با توجه به وضعیت فوق ، می توان فیلد ملیت را به صورت پیش فرض مقدار دهی و از تکرار آن در سند 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″?> |
روش های توصیف 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” > |
facet ، حالات و ارزش های متفاوت آن در مقالات بعد به طور مفصل بررسی خواهد شد. جهت تشریح بهتر روش دوم، به بررسی یک مثال دیگر می پردازیم . فرض کنید که در مثال قبل ، قصد داریم بر روی نوع داده attribute ID ، محدودیتی خاصی را اعمال نمائیم :”طول رشته پنج و کاراکترهای آن عدد باشند ” ، در چنین حالتی توصیف سند بصورت زیر خواهد بود :
| مثال : توصیف یک سند با اعمال محدودیـت در رابطه با Attribute |
|
<?XML Version = “1.0″?> |
همانگونه که مشاهده می گردد ( با اندکی دقت ! ) ، توصیف های ارائه شده برای خصلت ID داخلی بوده و امکان استفاده مجدد از آن وجود نخواهد داشت . در صورت نیاز به استفاده مجدد از توصیف یک Attribute در مکان هائی دیگر از سند ، می بایست توصیف Attribute مورد نظر در خارج از محدوده داخلی قرار گیرد .
در بخش پنجم این مقاله به بررسی حالات متفاوت ساختار ، خواهیم پرداخت .
دیدگاه خود را بیان کنید.
باید وارد سایت شده باشید برای دیدگاه دادن