عنصر restriction لنمط XML

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

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

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

ظهور مرة
العنصر الأم complexContent
المحتوى مجموعة،كل،اختيار،سلسلة،خصائص،مجموعة خصائص،أي خصائص

النحو

<restriction
id=ID
أساس=QName
خصائص
>
المحتوى للصنف البسيط:
(تعليق؟،(صنف بسيط؟،(minExclusive|minInclusive| 
maxExclusive|maxInclusive|عدد الأرقام الكلية|عدد الأرقام العشرية|
طول|minطول|maxطول|قائمة|مساحة بيضاء|نمط)*))
المحتوى لمحتوى البسيط:
(تعليق؟،(صنف بسيط؟،(minExclusive|minInclusive| 
maxExclusive|maxInclusive|عدد الأرقام الكلية|عدد الأرقام العشرية|
(طول|minطول|maxطول|قائمة|مساحة بيضاء|نمط)؟,, 
((خصائص|مجموعة خصائص)*, أي خصائص؟))
المحتوى لمحتوى المعقد:
(تعليق؟،(مجموعة|كل|اختيار|سلسلة)؟,
((خصائص|مجموعة خصائص)*, أي خصائص؟))
</restriction>

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

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

مثال

مثال 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" المسمى. يجب أن تكون القيمة المقبولة ثلاثة أحرف كبيرة أو صغيرة من 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>