Latest web development tutorials

مؤشر مخطط XML

بواسطة المؤشر، نتمكن من السيطرة على استخدام العناصر في وضع وثيقة.


مؤشر

هناك سبعة مؤشرات:

المؤشرات أجل:

  • جميع
  • الاختيار
  • تسلسل

مؤشر الحدوث:

  • maxOccurs
  • minOccurs

مؤشر المجموعة:

  • اسم المجموعة
  • اسم attributeGroup

مؤشر أجل

تستخدم مؤشرات لتحديد ترتيب العناصر.

كل المؤشرات

<الكل> يمكن أن يظهر المؤشر وفقا لأحكام عناصر فرعية في أي أمر، ويجب أن تظهر كل عنصر الطفل مرة واحدة فقط:

<xs:element name="person">
<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:element name="person">
<xs:complexType>
<xs:choice>
<xs:element name="employee" type="employee"/>
<xs:element name="member" type="member"/>
</xs:choice>
</xs:complexType>
</xs:element>

المؤشر تسلسل

يجب تحديد <تسلسل> عنصر تابع في ترتيب معين:

<xs:element name="person">
<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:element name="person">
<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:element name="person">
<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:

<?xml version="1.0" encoding="ISO-8859-1"?>

<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":

<?xml version="1.0" encoding="ISO-8859-1"?>
<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 name="groupname">
...
</xs:group>

يجب عليك تعريف بيان داخل الجماعة كل شيء، اختيار العناصر أو التسلسل. يحدد المثال التالي مجموعة تسمى "persongroup"، الذي يحدد مجموعة من العناصر التي يجب أن تكون موجودة وفقا لنظام دقيق:

<xs:group name="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:group name="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: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 name="groupname">
...
</xs:attributeGroup>

يحدد المثال التالي مجموعة الخاصية المسماة "personattrgroup" من:

<xs:attributeGroup name="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:attributeGroup name="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:element name="person">
<xs:complexType>
<xs:attributeGroup ref="personattrgroup"/>
</xs:complexType>
</xs:element>