XML Schema element 元素

定义和用法

element 元素定义一个元素。

元素信息

出现次数 在架构中定义的元素的数目。
父元素 schema、choice、all、sequence
内容 simpleType、complexType、key、keyref、unique

语法

<element
id=ID 
name=NCName
ref=QName
type=QName
substitutionGroup=QName
default=string
fixed=string
form=qualified|unqualified
maxOccurs=nonNegativeInteger|unbounded
minOccurs=عدد طبيعي لا يقل عن صفر
nillable=true|false
abstract=true|false 
block=(#all|قائمة من (extension|restriction))
final=(#all|قائمة من (extension|restriction))
خصائص أي
>
annotation؟((simpleType|complexType)؟,(unique|key|keyref)*)
</element>

(؟ رمز يعني أن العنصر يمكن أن يظهر صفراً أو مرة واحدة، * رمز يعني أن العنصر يمكن أن يظهر صفراً أو مرات متعددة.)

خصائص

id

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

name

اختياري. تحديد اسم العنصر. إذا كان العنصر الأبوي هو عنصر schema، يجب أن تكون هذه الخاصية ضرورية.

ref

اختياري. إشارة إلى عنصر آخر. يمكن أن يحتوي ref على مسبق النطاق. إذا كان العنصر الأبوي هو عنصر schema، لا يمكن استخدام هذه الخاصية.

type

اختياري. تحديد اسم نوع بنيوي أو اسم عنصر simpleType أو complexType.

substitutionGroup

اختياري. تحديد اسم العنصر الذي يمكن استبداله بالعنصر الحالي. يجب أن يكون هذا العنصر نفس النوع أو أن يكون نوعه مستمداً من هذا النوع.

لا يمكن استخدام هذه الخاصية إذا لم يكن العنصر الأبوي عنصر schema.

default

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

fixed

اختياري. تحديد قيمة ثابتة للعنصر (يستخدم فقط عندما يكون محتوى العنصر نوع بسيط أو textOnly).

form

اختياري. شكل العنصر. القيمة الافتراضية هي قيمة الخاصية elementFormDefault للعنصر schema الذي يحتوي على هذه الخاصية. يجب أن تكون القيمة واحدة من الأنواع التالية: "qualified" أو "unqualified".

إذا كان العنصر الأب هو عنصر schema، فإن هذا الخصائص غير قابلة للتطبيق.

  • إذا كانت هذه القيمة "unqualified"، فيمكنك تقييد العنصر دون الحاجة إلى مسبق النطاق.
  • إذا كانت هذه القيمة "qualified"، فيجب تقييد العنصر بناءً على مسبق النطاق.

maxOccurs

اختياري. يحدد عدد المرات التي يمكن أن يظهر فيها عنصر element داخل العنصر الأبوي. يمكن أن يكون هذا الرقم أكبر أو يساوي صفراً كعدد طبيعي. إذا لم تريد تحديد أي حدود لعدد المرات، استخدم الكلمة "unbounded". القيمة الافتراضية هي 1.

إذا كان العنصر الأب هو عنصر schema، فإن هذا الخصائص غير قابلة للتطبيق.

minOccurs

اختياري. يحدد عدد الأنواع التي يمكن أن تظهر العنصر في العنصر الأب. يمكن أن يكون هذا القيمة عددًا صحيحًا أكبر أو مساويًا لـ 0. القيمة الافتراضية هي 1.

إذا كان العنصر الأب هو عنصر schema، فإن هذا الخصائص غير قابلة للتطبيق.

nillable

اختياري. يشير إلى ما إذا كان يمكن تخصيص القيمة الصفرية المحددة للعنصر. هذا التطبيق ينطبق على محتوى العنصر وليس خاصيته. القيمة الافتراضية هي false.

إذا كان nillable هو true، فإنه سيجعل المكون الخاص بالعنصر يمكنه تعيين خاصية nil على true. يتم تعريف خاصية nil كجزء من مساحة الاسم النموذجية للXML.

على سبيل المثال، تعريف الفقرة التالية لمكون واحد، مع ضبط nillable على true.

<xs:element name="myDate" type="xs:date" nillable="true"/>

استخدام هذا العنصر في الفقرة التالية مع قيمة صفرية واضحة (تم ضبط خاصية nil على true).

<myDate xsi:nil="true"></myDate>

abstract

اختياري. يشير إلى ما إذا كان العنصر يمكن استخدامه في مستند الحالة الفعلية. إذا كان القيمة هي true، فإن العنصر لا يمكن أن يظهر في مستند الحالة الفعلية. على العكس من ذلك، يجب أن تحتوي خاصية substitutionGroup على العناصر التي تحتوي على اسم محدد (QName) للعنصر نفسه في نفس الموضع. يمكن أن تشير عدة عناصر إلى العنصر في خاصية substitutionGroup. القيمة الافتراضية هي false.

block

اختياري. النوع المشتق. خاصية block تمنع استخدام العناصر التي تحتوي على نوع مشتق معين لتعويض هذا العنصر. يمكن أن يحتوي هذا القيمة على #all أو قائمة، والقائمة هي مجموعة من extension، restriction أو substitution:

  • extension - يمنع استخدام العناصر المشتقة عن طريق التوسيع لتعويض هذا العنصر.
  • restriction - يمنع استخدام العناصر المشتقة عن طريق التحديد لتعويض هذا العنصر.
  • substitution - يمنع استخدام العناصر المشتقة عن طريق الاستبدال لتعويض هذا العنصر.
  • #all - يمنع استخدام جميع العناصر المشتقة لتعويض هذا العنصر.

final

اختياري. ضبط القيمة الافتراضية للخصائص النهائية لجهاز element. إذا لم يكن العنصر الأب هو عنصر schema، فإن هذا الخصائص غير قابلة للتطبيق. يمكن أن يحتوي هذا القيمة على #all أو قائمة، والقائمة هي مجموعة من extension أو restriction:

  • extension - يمنع الاستبدال من خلال العناصر المشتقة الموسعة
  • restriction - يمنع الاستبدال من خلال العناصر المشتقة المحدودة
  • #all - يمنع جميع العناصر المشتقة من الاستبدال هذا العنصر

خصائص أي

اختياري. يحدد أي خصائص أخرى تحتوي على اسم فرعي غير النموذج.

مثال

مثال 1

في هذا المثال، هو نموذج يحتوي على أربعة عناصر بسيطة: "fname", "lname", "age" و "dateborn"، وهي من النوع string و nonNegativeInteger و date:

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="fname" type="xs:string"/>
<xs:element name="lname" type="xs:string"/>
<xs:element name="age" type="xs:nonNegativeInteger"/>
<xs:element name="dateborn" type="xs:date"/>
</xs:schema>

مثال 2

في هذا المثال، هو نموذج يحتوي على عنصر "note" من النوع المعقد. يحتوي عنصر "note" على أربعة عناصر بسيطة: "to", "from", "heading" و "body":

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="note">
    <xs:complexType>
      <xs:sequence>
	<xs:element name="to" type="xs:string"/>
	<xs:element name="from" type="xs:string"/>
	<xs:element name="heading" type="xs:string"/>
	<xs:element name="body" type="xs:string"/>
      </xs:sequence>
    </xs:complexType>
</xs:element>
</xs:schema>

مثال 3

هذا المثال مشابه للاعتماد 2، ولكن في هذا المثال، اخترنا استخدام خاصية ref لاستدعاء اسم العنصر:

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="note">
  <xs:complexType>
    <xs:sequence>
      <xs:element ref="to"/>
      <xs:element ref="from"/>
      <xs:element ref="heading"/>
      <xs:element ref="body"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>
<xs:element name="to" type="xs:string"/>
<xs:element name="from" type="xs:string"/>
<xs:element name="heading" type="xs:string"/>
<xs:element name="body" type="xs:string"/>
</xs:schema>