عنصر attribute في XML Schema

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

يحدد عنصر attribute الخاصية.

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

مرة الظهور يُحدد مرة واحدة في عنصر schema. يتم استدعاءه عدة مرات في نوع معقد أو مجموعة خصائص.
العنصر الأب attributeGroup،schema،complexType،restriction (simpleContent)،extension (simpleContent)،restriction (complexContent)،extension (complexContent)
المحتوى annotation،simpleType

النحو

<attribute
default=string
fixed=string
form=qualified|unqualified
id=ID
name=NCName
ref=QName
type=QName
use=optional|prohibited|required
صفات أي
>
(annotation?,(simpleType?))
</attribute>

الرمز (?) يشير إلى أن هذا العنصر يمكن أن يظهر صفرًا أو مرة واحدة في عنصر attribute.

الخصوصية

default

اختياري. يحدد القيمة الافتراضية للخصوصية. لا يمكن استخدام الخاصيتين default و fixed معًا.

fixed

اختياري. يحدد القيمة الثابتة للخصوصية. لا يمكن استخدام الخاصيتين default و fixed معًا.

form

اختياري. يحدد تنسيق الخصوصية. القيمة الافتراضية هي قيمة الخاصية attributeFormDefault في عنصر schema الذي يحتوي على هذا الخصوصية. يمكن تعيين القيمة إلى أي مما يلي:

  • "qualified" - يشير إلى أن يجب تحديد هذا الخصوصية من خلال مقدم اسم النطاق واسم هذا الخصوصية بدون مقدم اسم النطاق (NCName).
  • "unqualified" - يشير إلى أن هذا الخصوصية لا يتطلب تحديدها بناءً على مقدم اسم النطاق، ولا يتطلب مطابقة اسم هذا الخصوصية بدون مقدم اسم النطاق (NCName)، أي الاسم المحلي.

id

اختياري. تحديد ID الفريد للعنصر.

اسم

اختياري. تحديد اسم الصفة. لا يمكن استخدام صفة name وصفة ref في نفس الوقت.

استدلال

اختياري. تحديد استدلال الصفة المحددة. لا يمكن استخدام صفة name وصفة ref في نفس الوقت. إذا كان هناك ref، لا يمكن استخدام عنصر simpleType وصفة form وصفة type.

نوع

اختياري. تحديد النوع البياني المدمج أو النوع البسيط. يمكن استخدام صفة type فقط إذا لم يحتوي المحتوى على عنصر simpleType.

استخدام

اختياري. تحديد كيفية استخدام الصفة. يمكن تعيين القيم التالية:

  • اختياري - الصفة اختيارية ويمكن أن تملك أي قيمة (افتراضي).
  • منع - لا يمكن استخدام الصفة.
  • مطلوب - صفة ضرورية.

صفات أي

اختياري. تحديد أي صفة أخرى تحتوي على مساحة اسمية غير النمط.

مثال

مثال 1

<xs:attribute name="code">
<xs:simpleType>
  <xs:restriction base="xs:string">
    <xs:pattern value="[A-Z][A-Z]"/>
  </xs:restriction>
</xs:simpleType>
</xs:attribute>

النموذج أعلاه يشير إلى أن صفة "code" لها تحديد. القيمة المقبولة الوحيدة هي زوج من الأحرف الكبيرة A إلى Z.

مثال 2

لإعلان صفة باستخدام تعريف صفة موجودة مسبقًا في النوع المعقد، استخدم صفة ref:

<xs:attribute name="code">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:pattern value="[A-Z][A-Z]"/>
    </xs:restriction>
  </xs:simpleType>
</xs:attribute>
<xs:complexType name="someComplexType">
  <xs:attribute ref="code"/>
</xs:complexType>

مثال 3

يمكن للصفة أن تملك قيمة افتراضية أيضًا، أو قيمة محددة مسبقًا. إذا لم يتم تحديد أي قيمة أخرى، سيتم تعيين القيمة الافتراضية تلقائيًا للصفة. في المثال التالي، القيمة الافتراضية هي "EN":

<xs:attribute name="lang" type="xs:string" default="EN"/>

إذا لم يتم تحديد أي قيمة أخرى، سيتم تعيين القيمة المحددة تلقائيًا للصفة. ولكن ليس مثل القيمة الافتراضية، إذا كنت قدحددت قيمة أخرى غير القيمة المحددة للصفة، سيتم التحقق من صحة الوثيقة كغير صالحة. في المثال التالي، القيمة المحددة هي "EN":

<xs:attribute name="lang" type="xs:string" fixed="EN"/>

مثال 4

جميع الخصائص هي افتراضًا قابلة للتحديد. إذا كنت ترغب في تحديد خصائص كقابلة للتحديد بشكل صريح، استخدم خاصية "use":

<xs:attribute name="lang" type="xs:string" use="optional"/>

جعل الخاصية ضروريةً:

<xs:attribute name="lang" type="xs:string" use="required"/>