يتم استخدام قيود لتحديد القيم المقبولة لعناصر XML أو سمات. ودعا القيود المفروضة على عناصر XML الأوجه.
القيود المفروضة على القيم
يحدد المثال التالي عنصر يسمى "age" مع التقييد. قيمة العمر لا يمكن أن يكون أقل من 0 أو أكبر من 120:
<xs:element name="age">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:minInclusive value="0"/>
<xs:maxInclusive value="120"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
القيود المفروضة على مجموعة من القيم
للحد من محتوى عنصر XML إلى مجموعة من القيم المقبولة، سوف نستخدم القيد التعداد.
يحدد المثال التالي عنصر يسمى "car" مع التقييد. القيم الوحيدة المقبولة هي: Audi, Golf, BMW :
<xs:element name="car">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Audi"/>
<xs:enumeration value="Golf"/>
<xs:enumeration value="BMW"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
في المثال أعلاه ويمكن أيضا أن يكون قد كتب من هذا القبيل:
<xs:element name="car" type="carType"/>
<xs:simpleType name="carType">
<xs:restriction base="xs:string">
<xs:enumeration value="Audi"/>
<xs:enumeration value="Golf"/>
<xs:enumeration value="BMW"/>
</xs:restriction>
</xs:simpleType>
Note: في هذه الحالة نوع "carType" يمكن استخدامها من قبل عناصر أخرى لأنها ليست جزءا من "car" عنصر.
القيود المفروضة على سلسلة من القيم
للحد من محتوى عنصر XML لتحديد سلسلة من الأرقام أو الحروف التي يمكن استخدامها، سوف نستخدم القيد النمط.
يحدد المثال التالي عنصر يسمى "letter" مع التقييد. القيمة الوحيدة المقبولة هي واحدة من أحرف صغيرة من الألف إلى الياء:
<xs:element name="letter">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[a-z]"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
يحدد المثال التالي عنصر يسمى "initials" مع التقييد. القيمة الوحيدة المقبولة هي ثلاثة من الأحرف الكبيرة من الألف إلى الياء:
<xs:element name="initials">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[A-Z][A-Z][A-Z]"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
يحدد المثال التالي أيضا عنصر يسمى "initials" مع التقييد. القيمة الوحيدة المقبولة هي ثلاثة من الصغيرة أو الكبيرة رسائل من الألف إلى الياء:
<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>
يحدد المثال التالي عنصر يسمى "choice" مع التقييد. القيمة الوحيدة المقبولة هي واحدة من الرسائل التالية: س، ص، ض أو:
<xs:element name="choice">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[xyz]"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
يحدد المثال التالي عنصر يسمى "prodid" مع التقييد. القيمة الوحيدة المقبولة هي خمسة أرقام في تسلسل، ويجب أن يكون كل رقم في نطاق 0-9:
<xs:element name="prodid">
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:pattern value="[0-9][0-9][0-9][0-9][0-9]"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
القيود الأخرى على سلسلة من القيم
يحدد المثال التالي عنصر يسمى "letter" مع التقييد. قيمة مقبولة هي صفر أو أكثر تكرارات بأحرف صغيرة من الألف إلى الياء:
<xs:element name="letter">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="([a-z])*"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
يحدد المثال التالي أيضا عنصر يسمى "letter" مع التقييد. قيمة مقبولة واحدة أو أكثر من أزواج من الرسائل، كل زوج تتألف من بريد إلكتروني حالة انخفاض يليه خطاب حالة العلوي. على سبيل المثال، "sToP" سيتم التصديق عليها من قبل هذا النمط، ولكن ليس "Stop" أو "STOP" أو "stop" :
<xs:element name="letter">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="([a-z][A-Z])+"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
يحدد المثال التالي عنصر يسمى "gender" مع التقييد. القيمة الوحيدة المقبولة من الذكور أو الإناث:
<xs:element name="gender">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="male|female"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
يحدد المثال التالي عنصر يسمى "password" مع التقييد. يجب أن يكون هناك بالضبط ثمانية أحرف على التوالي وتلك الأحرف يجب أن يكون أحرف صغيرة أو كبيرة من الألف إلى الياء، أو رقم 0-9:
<xs:element name="password">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[a-zA-Z0-9]{8}"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
القيود المفروضة على أحرف بيضاء
لتحديد كيف أحرف بيضاء يجب أن يتم التعامل معها، سوف نستخدم القيد بيضاء.
ويحدد هذا المثال عنصر يسمى "address" مع التقييد. تم تعيين القيد بيضاء إلى "preserve" ، وهو ما يعني أن المعالج XML لن يزيل أية أحرف المسافات:
<xs:element name="address">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:whiteSpace value="preserve"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
ويحدد هذا المثال أيضا عنصر يسمى "address" مع التقييد. تم تعيين القيد بيضاء إلى "replace" ، وهو ما يعني أن المعالج XML سيحل محل كل الحروف البيضاء الفضاء (يغذي الخط، علامات التبويب، مسافات، والإرجاع) مع مسافات:
<xs:element name="address">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:whiteSpace value="replace"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
ويحدد هذا المثال أيضا عنصر يسمى "address" مع التقييد. تم تعيين القيد بيضاء إلى "collapse" ، وهو ما يعني أن المعالج XML سيتم إزالة كافة الأحرف مساحة بيضاء (يغذي الخط، علامات التبويب، مسافات، يتم استبدال الإرجاع بمسافات، تتم إزالة المسافات البادئة والزائدة، ويتم تخفيض المسافات المتعددة ل مسافة واحدة):
<xs:element name="address">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:whiteSpace value="collapse"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
قيود على طول
للحد من طول قيمة في عنصر، سوف نستخدم طول، MAXLENGTH، والقيود MINLENGTH.
ويحدد هذا المثال عنصر يسمى "password" مع التقييد. يجب أن تكون قيمة بالضبط ثمانية أحرف:
<xs:element name="password">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:length value="8"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
ويحدد هذا المثال عنصر آخر يسمى "password" مع التقييد. يجب أن تكون قيمة الحد الأدنى خمسة أحرف والحد الأقصى ثمانية أحرف:
<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>
قيود على أنواع البيانات
قيود | وصف |
---|---|
enumeration | تعرف على قائمة من القيم المقبولة |
fractionDigits | يحدد الحد الأقصى لعدد من المنازل العشرية المسموح بها. يجب أن تكون مساوية أو أكبر من الصفر |
length | يحدد عدد الأحرف أو العناصر القائمة المسموح بها. يجب أن تكون مساوية أو أكبر من الصفر |
maxExclusive | تحديد الحدود العليا للقيم رقمية (يجب أن تكون القيمة أقل من هذه القيمة) |
maxInclusive | تحديد الحدود العليا للقيم رقمية (يجب أن تكون القيمة أقل من أو تساوي هذه القيمة) |
maxLength | يحدد الحد الأقصى لعدد الأحرف أو العناصر القائمة المسموح بها. يجب أن تكون مساوية أو أكبر من الصفر |
minExclusive | تحدد الحدود الدنيا للقيم رقمية (يجب أن تكون قيمة أكبر من هذه القيمة) |
minInclusive | تحدد الحدود الدنيا للقيم رقمية (يجب أن تكون قيمة أكبر من أو تساوي هذه القيمة) |
minLength | تحديد الحد الأدنى لعدد الأحرف أو العناصر القائمة المسموح بها. يجب أن تكون مساوية أو أكبر من الصفر |
pattern | يحدد التسلسل الدقيق للشخصيات مقبولة |
totalDigits | يحدد العدد الدقيق من الأرقام المسموح بها. يجب أن تكون أكبر من الصفر |
whiteSpace | تحدد كيفية أبيض الفضاء (يغذي الخط، علامات التبويب، مسافات، والإرجاع) يتم التعامل مع |