عنصر restriction في XML Schema

التعريف والاستخدام

عنصر restriction يحدد القيود المفروضة على simpleType أو simpleContent أو complexContent المحددة.

معلومات العنصر

مرة الإصدار مرة
العمود complexContent
المحتوى group،all،choice،sequence،attribute،attributeGroup،anyAttribute

النحو

<restriction
id=ID
base=QName
خصائص أي
>
المحتوى لـ simpleType:
(annotation?,(simpleType?,(minExclusive|minInclusive| 
maxExclusive|maxInclusive|totalDigits|fractionDigits|
length|minLength|maxLength|enumeration|whiteSpace|pattern)*))
المحتوى لمحتوى بسيط:
(annotation?,(simpleType?,(minExclusive |minInclusive| 
maxExclusive|maxInclusive|totalDigits|fractionDigits|
(length|minLength|maxLength|enumeration|whiteSpace|pattern)*)?, 
((attribute|attributeGroup)*,anyAttribute?)
المحتوى لمحتوى معقد:
(annotation?,(group|all|choice|sequence)?,
((attribute|attributeGroup)*,anyAttribute?)
</restriction>

(? إشارة الإعلان في عنصر restriction يمكن أن يظهر صفر مرات أو مرة واحدة.)

سمة وصف
id اختياري. تحديد ID الفريد للعنصر.
أساس مطلوب. تحديد أسماء النوع الأساسي أو simpleType أو complexType المحددة في هذا النمط (أو أي نمط آخر يتم تحديده من قبل مساحة الاسم المحددة).
خصائص أي اختياري. تحديد أي خصائص أخرى تحتوي على مساحة اسمية غير النمطية.

مثال

مثال 1

هذا المثال يحدد عنصر "age" المحدد بالتحديد. لا يمكن أن تكون قيمة "age" أقل من 0 أو أكبر من 100:

<xs:element name="age">
  <xs:simpleType>
    <xs:restriction base="xs:integer">
      <xs:minInclusive value="0"/>
      <xs:maxInclusive value="100"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

مثال 2

هذا المثال يحدد عنصر "initials". يجب أن تكون القيمة المقبولة لـ "initials" ثلاثة أحرف كبيرة أو صغيرة من a إلى z:

<xs:element name="initials">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="[a-zA-Z][a-zA-Z][a-zA-Z]"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

مثال 3

هذا المثال يحدد عنصر "password". يجب أن يكون قيمة "password" محددة بين 5 و 8 حرفًا على الأقل:

<xs:element name="password">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:minLength value="5"/>
      <xs:maxLength value="8"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

مثال 4

هذا المثال يوضح تعريف نوع معقد مع تحديدات. النوع المعقد "Chinese_customer" يستمد من نوع معقد "customer" العادي، ويكون قيمة عنصر country ثابتة كـ "China":

<xs:complexType name="customer">
  <xs:sequence>
    <xs:element name="firstname" type="xs:string"/>
    <xs:element name="lastname" type="xs:string"/>
    <xs:element name="country" type="xs:string"/>
  </xs:sequence>
</xs:complexType>
<xs:complexType name="Chinese_customer">
  <xs:complexContent>
    <xs:restriction base="customer">
      <xs:sequence>
        <xs:element name="firstname" type="xs:string"/>
        <xs:element name="lastname" type="xs:string"/>
        <xs:element name="country" type="xs:string" fixed="China"/>
      </xs:sequence>
    </xs:restriction>
  </xs:complexContent>
</xs:complexType>