مرجع (XSD Reference)
اینجا یک مرجع XSD ساده داریم. XSD یعنی XML Schema که ساختار یک فایل XML را تعریف می کند. «عنصر (Element)» یعنی تگ های داده. «قید/فاسته (Facet)» یعنی محدودیت روی داده ها. با مثال های مدرسه ای پیش می رویم و حفظی نمی خواهیم.
عناصر XSD (XSD Elements)
این جدول عناصر مهم را فهرست می کند. نام هر عنصر لینک منبع دارد. توضیح ها کوتاه و دانش آموزی هستند.
| عنصر | توضیح کوتاه |
|---|---|
| all | فرزندان با هر ترتیبی می آیند؛ هر کدام 0 یا 1 بار. |
| annotation | محل یادداشت ها و توضیحات در اسکیما. |
| any | اجازه افزودن عنصرهای خارج از اسکیما. |
| anyAttribute | اجازه افزودن خاصیت های خارج از اسکیما. |
| appinfo | اطلاعات مخصوص برنامه؛ داخل annotation قرار می گیرد. |
| attribute | تعریف یک خاصیت برای عناصر. |
| attributeGroup | گروه بندی چند خاصیت برای استفاده دوباره. |
| choice | از میان چند عنصر فقط یکی مجاز است. |
| complexContent | گسترش یا محدودسازی نوع های پیچیده دارای محتوا. |
| complexType | تعریف نوع پیچیده با عناصر یا متن و ویژگی ها. |
| documentation | متن توضیح؛ داخل annotation می آید. |
| element | تعریف یک عنصر XML. |
| extension | گسترش یک simpleType یا complexType موجود. |
| field | XPath برای تعیین مقدار قید هویتی. |
| group | گروه عناصر برای استفاده دوباره در نوع های پیچیده. |
| import | افزودن اسکیما با فضای نام متفاوت. |
| include | افزودن اسکیما با فضای نام یکسان. |
| key | کلید یکتا؛ مقدار خالی و تکراری ندارد. |
| keyref | ارجاع به یک key یا unique موجود. |
| list | تعریف نوع ساده به عنوان فهرست مقادیر. |
| notation | توصیف قالب داده های غیر-XML. |
| redefine | بازتعریف نوع ها و گروه ها از اسکیما خارجی. |
| restriction | اعمال محدودیت روی نوع ساده یا محتوا. |
| schema | عنصر ریشه تعریف اسکیما. |
| selector | XPath انتخاب مجموعه عناصر برای قید هویتی. |
| sequence | فرزندان باید با ترتیب مشخص بیایند؛ تکرار مجاز است. |
| simpleContent | گسترش یا محدودیت برای نوع های متن محور. |
| simpleType | تعریف نوع ساده و محدودیت های آن. |
| union | ترکیب چند نوع ساده در یک نوع. |
| unique | مقدار باید در محدوده یکتا باشد. |
نکته: اگر «choice» را بازی فرض کنیم، فقط یک کارت برمی داری. اگر «sequence» باشد، باید کارت ها را به ترتیب بچینی.
قیود/فاسته ها در XSD (Restrictions/Facets)
فاسته ها محدودیت ها را می سازند؛ مثل قوانین یک آزمون. طول، تعداد رقم، یا الگو را تعیین می کنند.
| قید | توضیح کوتاه |
|---|---|
| enumeration | فهرست مقادیر مجاز را تعیین می کند. |
| fractionDigits | حداکثر رقم های اعشار؛ باید ≥ 0 باشد. |
| length | تعداد دقیق کاراکترها یا موارد فهرست. |
| maxExclusive | بالاترین مقدار؛ مقدار باید کمتر باشد. |
| maxInclusive | بالاترین مقدار؛ مقدار ≤ این مقدار. |
| maxLength | حداکثر طول رشته یا فهرست؛ ≥ 0. |
| minExclusive | کمینه باز؛ مقدار باید بزرگ تر باشد. |
| minInclusive | کمینه بسته؛ مقدار ≥ این مقدار. |
| minLength | حداقل طول رشته یا فهرست؛ ≥ 0. |
| pattern | الگوی دقیق کاراکترها؛ مثل ماسک ورودی. |
| totalDigits | حداکثر تعداد کل رقم ها؛ > 0. |
| whiteSpace | رفتار فاصله ها و خط های جدید را مشخص می کند. |
برای توضیح کامل فاسته ها، صفحه XSD Restrictions را ببین.
گام های پیشنهادی برای استفاده
- عنصرها را انتخاب کن؛ ترتیب با
sequenceیا انتخاب باchoice. - نوع ها را تعریف کن؛ ساده با
simpleTypeیا پیچیده باcomplexType. - قیدها را اضافه کن؛ مثل
patternیاmaxLength. - کلیدها را بساز؛ با
keyو ارجاعkeyref.
محدودیت های XSD را نیز ببین. همچنین این لینک داخلی با کلیدواژه ماست: مرجع XSD.
جمع بندی سریع
- عنصرها اسکلت XML را می سازند.
- فاسته ها قوانین داده هستند.
- choice یعنی یکی؛ sequence یعنی ترتیب.
- enumeration یعنی فهرست مجاز.
- pattern یعنی الگوی ورودی.
صفحه منبع را باز کن و تمرین کن.