مؤشر مخطط XML
بواسطة المؤشر، نتمكن من السيطرة على استخدام العناصر في وضع وثيقة.
مؤشر
هناك سبعة مؤشرات:
المؤشرات أجل:
- جميع
- الاختيار
- تسلسل
مؤشر الحدوث:
- maxOccurs
- minOccurs
مؤشر المجموعة:
- اسم المجموعة
- اسم attributeGroup
مؤشر أجل
تستخدم مؤشرات لتحديد ترتيب العناصر.
كل المؤشرات
<الكل> يمكن أن يظهر المؤشر وفقا لأحكام عناصر فرعية في أي أمر، ويجب أن تظهر كل عنصر الطفل مرة واحدة فقط:
<xs:complexType>
<xs:all>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:all>
</xs:complexType>
</xs:element>
ملاحظة: عند استخدام <كل> المؤشر، يمكنك وضع <minOccurs> يتم تعيين إلى 0 أو 1، لكن يتم تعيين سوى مؤشر <maxOccurs> ل1 (شرح في وقت لاحق <minOccurs> و <maxOccurs>).
المؤشر اختيار
<اختيار> يوفر مؤشر لعنصر دون أن يحدث أو قد يحدث عنصر طفل آخر (أو غيرها):
<xs:complexType>
<xs:choice>
<xs:element name="employee" type="employee"/>
<xs:element name="member" type="member"/>
</xs:choice>
</xs:complexType>
</xs:element>
المؤشر تسلسل
يجب تحديد <تسلسل> عنصر تابع في ترتيب معين:
<xs:complexType>
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
مؤشر حدوث
تستخدم مؤشرات حدوث لتحديد وتيرة عنصرا يحدث.
ملاحظة: للحصول علىكل من "النظام" ومؤشر "المجموعة" (أي، كل شيء، خيار، تسلسل ، اسم المجموعة ومرجعية المجموعة)، التي maxOccurs وminOccurs الافتراضية هي 1.
مؤشر maxOccurs
<MaxOccurs> مؤشر يمكن تحديد الحد الأقصى لعدد المرات التي يمكن أن تحدث عنصر:
<xs:complexType>
<xs:sequence>
<xs:element name="full_name" type="xs:string"/>
<xs:element name="child_name" type="xs:string" maxOccurs="10"/>
</xs:sequence>
</xs:complexType>
</xs:element>
الأمثلة المذكورة أعلاه تبين أن عنصر "CHILD_NAME" الطفل قد تظهر في أقل عنصر "شخص" مرة واحدة (حيث القيمة الافتراضية minOccurs هي 1)، ويبدو في معظم 10 مرات.
مؤشر minOccurs
<MinOccurs> المؤشر قد تتطلب الحد الأدنى لعدد المرات التي يمكن أن تحدث عنصر:
<xs:complexType>
<xs:sequence>
<xs:element name="full_name" type="xs:string"/>
<xs:element name="child_name" type="xs:string"
maxOccurs="10" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
الأمثلة المذكورة أعلاه تبين أن عنصر "CHILD_NAME" الطفل قد يكون هناك ما لا يقل عن 0 في العنصر "شخص"، يظهر 10 في معظم الأوقات.
نصيحة: لجعل عدد من الحوادث عنصر لا يقتصر، يرجى استخدام maxOccurs = "غير محدود" هذا البيان:
مثال عملي:
ودعا "Myfamily.xml" ملف XML:
<persons xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="family.xsd">
<person>
<full_name>Hege Refsnes</full_name>
<child_name>Cecilie</child_name>
</person>
<person>
<full_name>Tove Refsnes</full_name>
<child_name>Hege</child_name>
<child_name>Stale</child_name>
<child_name>Jim</child_name>
<child_name>Borge</child_name>
</person>
<person>
<full_name>Stale Refsnes</full_name>
</person>
</persons>
فوق هذا ملف XML يحتوي على العنصر الجذر المسمى "أشخاص" من. داخل هذا العنصر الجذر، حددنا ثلاثة "الشخص" عنصر. يجب أن يحتوي على كل "شخص" عنصرا من عناصر "FULL_NAME"، لكنها قد تحتوي على ما يصل إلى 5 "CHILD_NAME" عنصر.
هذا هو ملف المخطط "family.xsd":
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified">
<xs:element name="persons">
<xs:complexType>
<xs:sequence>
<xs:element name="person" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="full_name" type="xs:string"/>
<xs:element name="child_name" type="xs:string"
minOccurs="0" maxOccurs="5"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
مؤشر مجموعة
مؤشر المجموعة لعدة دفعات من العناصر المتعلقة بتعريف.
المجموعة عنصر
مجموعة العناصر التي حددتها مجموعة أعلنت:
...
</xs:group>
يجب عليك تعريف بيان داخل الجماعة كل شيء، اختيار العناصر أو التسلسل. يحدد المثال التالي مجموعة تسمى "persongroup"، الذي يحدد مجموعة من العناصر التي يجب أن تكون موجودة وفقا لنظام دقيق:
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
<xs:element name="birthday" type="xs:date"/>
</xs:sequence>
</xs:group>
بعد تعريف اكتمال المجموعة، يمكنك الرجوع إليه في تعريف آخر:
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
<xs:element name="birthday" type="xs:date"/>
</xs:sequence>
</xs:group>
<xs:element name="person" type="personinfo"/>
<xs:complexType name="personinfo">
<xs:sequence>
<xs:group ref="persongroup"/>
<xs:element name="country" type="xs:string"/>
</xs:sequence>
</xs:complexType>
مجموعة عقارية
السمة مجموعات المحددة بيان attributeGroup:
...
</xs:attributeGroup>
يحدد المثال التالي مجموعة الخاصية المسماة "personattrgroup" من:
<xs:attribute name="firstname" type="xs:string"/>
<xs:attribute name="lastname" type="xs:string"/>
<xs:attribute name="birthday" type="xs:date"/>
</xs:attributeGroup>
بعد عرفتها مجموعة كاملة من الصفات، ويمكنك الرجوع إليه في تعريف آخر، كما يلي:
<xs:attribute name="firstname" type="xs:string"/>
<xs:attribute name="lastname" type="xs:string"/>
<xs:attribute name="birthday" type="xs:date"/>
</xs:attributeGroup>
<xs:element name="person">
<xs:complexType>
<xs:attributeGroup ref="personattrgroup"/>
</xs:complexType>
</xs:element>