رشته (XSD String)
در XSD، «رشته (String)» یعنی داده متنی. مثل نام دانش آموز. ما سه رفتار مهم داریم: string، normalizedString، و token. هرکدام با فاصله ها فرق دارند.
نوع رشته در XSD
«string» هر کاراکتری را می پذیرد؛ خط جدید و تب هم. پردازشگر مقدار را دستکاری نمی کند.
<xs:element name="customer" type="xs:string" />
«normalizedString» از «string» مشتق می شود؛ اما تب و خط جدید را به فاصله تبدیل می کند.
<xs:element name="customer" type="xs:normalizedString" />
«token» شدیدتر است؛ تب، خط جدید، فاصله ابتدا و انتها، و چند فاصله پشت سرهم را حذف می کند.
<xs:element name="customer" type="xs:token" />
نمونه مقدارهای رشته ای
مثال های زیر از سند نشان می دهند که فاصله ها ممکن اند وجود داشته باشند.
<customer>John Smith</customer>
<customer> John Smith </customer>
انواع خانواده رشته
همه موارد زیر از «string» مشتق اند (به جز خود string):
- ID: فقط برای ویژگی ها؛ شناسه یکتا.
- IDREF: ارجاع به ID؛ فقط برای ویژگی ها.
- language: یک شناسه زبانِ معتبر.
- Name: یک نامِ معتبر XML.
- NMTOKEN: نشانه معتبر؛ فقط برای ویژگی ها.
- normalizedString
- token
- string
- ENTITY
- ENTITIES
- IDREFS
- NCName
- NMTOKENS
- QName
محدودیت های قابل اعمال
می توانید روی رشته ها این محدودیت ها را بگذارید.
- enumeration
- length
- maxLength
- minLength
- pattern (روی NMTOKENS، IDREFS، ENTITIES مجاز نیست)
- whiteSpace
گام های عملی
- عنصر را تعریف کن و type را string بگذار.
- اگر فاصله ها مهم اند، normalizedString یا token را انتخاب کن.
- با length یا pattern، مقدار را محدود کن.
جمع بندی سریع
- string هیچ فاصله ای را دستکاری نمی کند.
- normalizedString تب و خطوط را عادی می کند.
- token فاصله های اضافی را می زداید.
- محدودیت ها با الگو و طول اعمال می شوند.
برای نمونه کامل ببین: مثال XSD. همچنین بخش تاریخ در XSD را بعداً بخوان.