حدود XSD / Facets
- الصفحة السابقة خصائص XSD
- الصفحة التالية عناصر XSD المركبة
قيود (restriction) تستخدم لتعريف القيم المقبولة للعناصر أو الخاصيات في XML. القيود التي تطبق على العناصر تسمى ميزة.
قيود القيمة
مثال أدنى يعرف عن عنصر يحتوي على قيود واسمه "age". قيمة 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 ك مجموعة من القيم المقبولة، يجب استخدام قيود التعداد (enumeration constraint).
النموذج التالي يحدد عنصرًا محددًا بأسم "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>
ملاحظة:في هذه الحالة، يمكن استخدام النوع "carType" من قبل العناصر الأخرى، لأنه ليس جزءًا من عنصر "car".
قيود مجموعة القيم
لتحديد محتوى عنصر XML كسلسلة من الأرقام أو الأحرف القابلة الاستخدام، يجب استخدام قيود النمط (pattern constraint).
النموذج التالي يحدد عنصرًا محددًا بأسم "letter". القيم المقبولة هي حرف صغير a - z واحد فقط:
<xs:element name="letter"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="[a-z]"/> </xs:restriction> </xs:simpleType> </xs:element>
النموذج التالي يحدد عنصرًا محددًا بأسم "initials". القيم المقبولة هي ثلاثة أحرف كبيرة من بين A - Z:
<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". القيم المقبولة هي ثلاثة أحرف كبيرة أو صغيرة من بين 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>
النموذج التالي يحدد عنصرًا محددًا بأسم "choice". القيم المقبولة هي حرف x، y أو z من بينها:
<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". القيم المقبولة هي صفر أو أكثر من الأحرف من a إلى z:
<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". القيم المقبولة هي male أو female:
<xs:element name="gender"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:pattern value="male|female"/> </xs:restriction> </xs:simpleType> </xs:element>
مثال أدنى يحدد عنصرًا محددًا بـ "password". القيم المقبولة هي سطر يحتوي على 8 حروف، ويجب أن تكون الأحرف الكبيرة أو الصغيرة a - z أو الأرقام 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>
تحديد الرموز البيانية
لتحديد كيفية التعامل مع الرموز البيانية (الرموز البيانية)، نحتاج إلى استخدام محدد whiteSpace.
مثال أدنى يحدد عنصرًا محددًا بـ "address". يتم تعيين محدد whiteSpace إلى "preserve"، مما يعني أن معالج XML لن يزيل أي رموز بيانية:
<xs:element name="address"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:whiteSpace value="preserve"/> </xs:restriction> </xs:simpleType> </xs:element>
هذا المثال يحدد أيضًا عنصرًا محددًا بـ "address". يتم تعيين محدد whiteSpace إلى "replace"، مما يعني أن معالج XML سيزيل جميع الرموز البيانية (الصفحات، المثلثات، المسافات، والتبويبات):
<xs:element name="address"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:whiteSpace value="replace"/> </xs:restriction> </xs:simpleType> </xs:element>
هذا المثال يحدد أيضًا عنصر "address" المحدد بتحديد. تم تعيين تحديد whiteSpace إلى "collapse"، مما يعني أن معالج XML سيزيل جميع الأحرفitespace (سيتم استبدال الأحرف البيضاء مثل النسخة والعودة والتسوية والسحابة بفضاءات، وسسيتم إزالة الفواصل البيضاء عند البداية والنهاية، وسيتم تقليص الفواصل البيضاء المتتالية إلى فاصلة واحدة فقط):
<xs:element name="address"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:whiteSpace value="collapse"/> </xs:restriction> </xs:simpleType> </xs:element>
تحديد الطول
لتحديد طول القيمة في العنصر، يجب استخدام تحديدات length وmaxLength وminLength.
هذا المثال يحدد أيضًا عنصر "password" المحدد بتحديد. يجب أن تكون قيمته دقيقة إلى 8 حرف:
<xs:element name="password"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:length value="8"/> </xs:restriction> </xs:simpleType> </xs:element>
هذا المثال يحدد أيضًا عنصر "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>
تحديد نوع البيانات
تحديد | وصف |
---|---|
enumeration | تعريف قائمة بالقيم المقبولة |
fractionDigits | تعريف عدد أرقام النقاط العشرية المسموح بها. يجب أن يكون أكبر أو مساوٍ لـ 0. |
length | تعريف عدد الأحرف المسموح بها أو عدد عناصر القائمة المحدد. يجب أن يكون أكبر أو مساوٍ لـ 0. |
maxExclusive | تعريف الحد الأعلى للقيمة. يجب أن تكون القيم المسموح بها أصغر من هذه القيمة. |
maxInclusive | تعريف الحد الأعلى للقيمة. يجب أن تكون القيم المسموح بها أصغر أو مساوية لهذه القيمة. |
maxLength | تعريف عدد الأحرف المسموح بها أو عدد عناصر القائمة القصوى. يجب أن يكون أكبر أو مساوٍ لـ 0. |
minExclusive | تعريف الحد الأدنى للقيمة. يجب أن تكون القيم المسموح بها أكبر من هذه القيمة. |
minInclusive | تحديد الحد الأدنى للرقم. يجب أن تكون القيم المسموح بها أكبر أو تساوي هذا القيمة. |
minLength | تحديد عدد الحروف أو العناصر المسموح بها كحد أدنى. يجب أن يكون أكبر أو يساوي 0. |
pattern | تحديد سلسلة الحروف المقبولة بدقة. يجب أن تكون صحيحة. |
totalDigits | تحديد عدد الأرقام العربية المسموح به بدقة. يجب أن يكون أكبر من 0. |
whiteSpace | تحديد كيفية معالجة مسافات البيضاء (التنقلات، النقاطع، المسافات والتبويبات). |
- الصفحة السابقة خصائص XSD
- الصفحة التالية عناصر XSD المركبة