عنصر schema XML Schema

تعریف و استفاده

عنصر schema عنصر ریشه‌ای schema تعریف می‌کند.

اطلاعات

مرتبه‌ی یک
پدر بدون
محتوای include،import،annotation،redefine،attribute،attributeGroup،element،group،notation،simpleType،complexType

زبان نشانه‌ها

<schema
id=ID 
attributeFormDefault=qualified|unqualified
elementFormDefault=qualified|unqualified
blockDefault=(#all|list of (extension|restriction|substitution))
finalDefault=(#all|list of (extension|restriction|list|union))}}
targetNamespace=anyURI
version=token
xmlns=anyURI
any attributes
>
((include|import|redefine|annotation)*,(((simpleType|complexType|
(group|attributeGroup)|element|attribute|notation),annotation*)*)
</schema>

ویژگی

id

اختیاری. تعیین شناسه منحصر به فرد این عنصر.

attributeFormDefault

اختیاری. فرم ویژگی‌های تعریف شده در فضای نام هدف این schema. این مقدار باید یکی از این توابع باشد: "qualified" یا "unqualified". مقدار پیش‌فرض "unqualified" است.

  • "unqualified" نشان‌دهنده این است که نیازی به استفاده از پیشوند نام فضای نام برای ویژگی‌های هدف فضای نام نیست.
  • "qualified" نشان‌دهنده این است که باید ویژگی‌های هدف فضای نام با پیشوند نام فضای نام استفاده شوند.

elementFormDefault

اختیاری. فرم عناصر تعریف شده در فضای نام هدف این schema. این مقدار باید یکی از این توابع باشد: "qualified" یا "unqualified". مقدار پیش‌فرض "unqualified" است.

  • "unqualified" نشان‌دهنده این است که نیازی به استفاده از پیشوند نام فضای نام برای عناصر فضای نام هدف نیست.
  • "qualified" نشان‌دهنده این است که باید عناصر فضای نام هدف با پیشوند نام فضای نام استفاده شوند.

blockDefault

اختیاری. تعیین مقدار پیش‌فرض block属性 برای عناصر و elementهای complexType در فضای نام هدف. attribute block جلوگیری می‌کند تا نوع پیچیده (یا عنصر) با نوع مشتق شده مشخص شده به جای نوع پیچیده (یا عنصر) ارث‌برداری شده استفاده شود. این مقدار می‌تواند شامل #all یا لیستی از extension، restriction یا substitution باشد:

  • extension - جلوگیری از جایگزینی نوع پیچیده مشتق شده از طریق گسترش به جای نوع پیچیده اصلی.
  • restriction - جلوگیری از جایگزینی نوع پیچیده مشتق شده از طریق محدودیت به جای نوع پیچیده اصلی.
  • substitution - جلوگیری از جایگزینی عناصر.
  • #all - جلوگیری از استفاده همه نوع پیچیده مشتق شده به جای نوع پیچیده اصلی.

finalDefault

اختیاری. مشخص می‌کند که مقادیر پیش‌فرض برای属性 final element، simpleType و complexType در فضای نام هدف schema.

  • extension - به صورت پیش‌فرض، عناصر این schema نمی‌توانند از طریق گسترش مشتق شوند. تنها برای element و element‌های complexType مناسب است.
  • restriction - از مشتق‌سازی از طریق محدودیت جلوگیری می‌کند.
  • list - از مشتق‌سازی از طریق لیست جلوگیری می‌کند. تنها برای element‌های simpleType مناسب است.
  • union - از مشتق‌سازی از طریق اتحاد جلوگیری می‌کند. تنها برای element‌های simpleType مناسب است.
  • #all - به صورت پیش‌فرض، عناصر این schema نمی‌توانند از طریق هیچ روشی مشتق شوند.

targetNamespace

URI مرجع فضای نام این schema. همچنین می‌توان پیشوندی برای این فضای نام اختصاص داد. اگر هیچ پیشندی اختصاص داده نشده باشد، component schema این فضای نام می‌تواند با مراجع غیرمحدود استفاده شود.

version

اختیاری. مشخص می‌کند که نسخه schema.

xmlns

مشخص می‌کند که یک یا چند URI مرجع از فضاهای نام در این schema استفاده می‌شود. اگر پیشوندی اختصاص داده نشده باشد، component schema این فضای نام می‌تواند با مراجع غیرمحدود استفاده شود.

any attributes

اختیاری. مشخص می‌کند که هرگونه属性 با فضای نام non-schema باید مشخص شود.

مثال

مثال 1

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="values" type="xs:string">
</xs:schema>

مثال 2

در این مثال، component schema (name element, type) در فضای نام http://www.w3.org/2001/XMLSchema غیرمحدود است و http://www.codew3c.com/codew3cschema (mystring) از پیشوند wsc محدود شده است:

<?xml version="1.0"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:wsc="http://www.codew3c.com/codew3cschema">
<element name="fname" type="wsc:mystring"/>
</schema>