ویژگی ها (XSD Attributes)
در XSD، «ویژگی (Attribute)» همیشه «ساده» تعریف می شود. عنصرِ دارای ویژگی، «پیچیده (Complex)» حساب می شود. اما خود ویژگی فقط مقدار متنی دارد. مثل برچسب نام روی دفتر که فقط متن می گیرد.
ویژگی دقیقاً چیست؟
عنصر ساده ویژگی ندارد. اگر ویژگی دیدی، آن عنصر پیچیده است. بااین حال خود ویژگی یک نوع ساده دارد. نوع ساده یعنی مقدارِ بدون زیرساختار.
چگونه یک ویژگی تعریف کنیم؟
الگوی عمومی تعریف ویژگی در XSD این است:
<xs:attribute name="xxx" type="yyy" />
در اینجا، xxx نام ویژگی است. همچنین yyy نوع داده ویژگی است. نوع ها می توانند string، integer، boolean، date و غیره باشند.
نمونه عنصر همراه ویژگی
یک عنصر XML با ویژگی lang را ببین:
<lastname lang="EN">Smith</lastname>
و تعریف متناظر ویژگی در XSD به صورت زیر است:
<xs:attribute name="lang" type="xs:string" />
مقدار پیش فرض و مقدار ثابت
می توانی برای ویژگی «پیش فرض (default)» تعیین کنی. اگر مقدار ندهی، همان اعمال می شود:
<xs:attribute name="lang" type="xs:string" default="EN" />
«ثابت (fixed)» یعنی فقط همان مقدار مجاز است و تغییر نمی کند:
<xs:attribute name="lang" type="xs:string" fixed="EN" />
اختیاری یا اجباری بودن ویژگی
ویژگی ها پیش فرض «اختیاری» هستند. با use="required" آن را «اجباری» کن:
<xs:attribute name="lang" type="xs:string" use="required" />
قیود محتوا و اعتبارسنجی
وقتی نوع داده تعیین می کنی، محتوا محدود می شود. اگر نوع date است، متن آزاد معتبر نیست. می توانی «قیدها (Facets)» هم اضافه کنی. قید یعنی محدودیت مثل طول، الگو یا بازه.
گام های عملی سریع
- نام ویژگی را انتخاب کن.
- نوع داده درست را تعیین کن.
- درصورت نیاز default یا fixed بده.
- درصورت نیاز use را required بگذار.
نکته: برای مرور ریشه و فضاهای نام، به برچسب <schema> (XSD <schema>) سر بزن. برای ادامه قیود، صفحه قیود در XSD (Facets) را بخوان. همچنین لینک ویژگی های XSD را برای مرجع سریع نگه دار.
جمع بندی سریع
- ویژگی همیشه ساده تعریف می شود.
- default مقدار پیش فرض تعیین می کند.
- fixed مقدار را ثابت می کند.
- use="required" ویژگی را اجباری می کند.
- نوع داده، اعتبار را تضمین می کند.