دروس XML

الصفحة الرئيسية لـ XML مقدمة XML كيفية استخدام XML شجرة XML بناء جملة XML عناصر XML سمات XML مساحات أسماء XML عرض XML طلب XML HttpRequest محلل XML XML DOM XML XPath XML XSLT XML XQuery XML XLink مدقق XML XML DTD مخطط XML خادم XML أمثلة XML مسابقة XML شهادة XML

XML AJAX

مقدمة أجاكس أجاكس XMLHttp طلب AJAX استجابة AJAX ملف AJAX XML أجاكس بي إتش بي أجاكس آسيا والمحيط الهادئ قاعدة بيانات أجاكس تطبيقات أجاكس أمثلة AJAX

XML DOM

مقدمة حول DOM عقد DOM الوصول إلى DOM معلومات عقدة DOM قائمة عقدة DOM عبور DOM التنقل في DOM DOM احصل على القيم DOM تغيير العقد DOM إزالة العقد استبدل DOM Nodes DOM إنشاء العقد DOM أضف العقد عقد استنساخ DOM أمثلة DOM

دروس XPath

مقدمة XPath عقد XPath بناء جملة XPath محاور XPath مشغلي XPath أمثلة XPath

XSLT التعليمي

XSLT مقدمة لغات XSL تحويل XSLT XSLT <template> XSLT <قيمة> XSLT <للجميع> XSLT <ترتيب> XSLT <if> XSLT <اختر> XSLT تطبيق XSLT على العميل XSLT على الخادم XSLT تحرير XML أمثلة XSLT

XQuery تعليمي

XQuery مقدمة مثال XQuery XQuery FLWOR XQuery HTML شروط XQuery بناء جملة XQuery XQuery إضافة XQuery حدد وظائف XQuery

XML DTD

مقدمة DTD مكعبات بناء DTD عناصر DTD سمات DTD عناصر DTD مقابل Attr كيانات DTD أمثلة DTD

مخطط XSD

مقدمة XSD XSD كيف XSD <المخطط عناصر XSD سمات XSD قيود XSD

مجمع XSD

عناصر XSD XSD فارغ عناصر XSD فقط نص XSD فقط XSD مختلط مؤشرات XSD XSD <أي> XSD <أي سمة> تبديل XSD مثال XSD

بيانات XSD

سلسلة XSD تاريخ XSD XSD الرقمية XSD متفرقات مرجع XSD

خدمات الويب

خدمات XML XML WSDL صابون XML XML RDF XML RSS

مراجع

أنواع عقدة DOM عقدة DOM قائمة عقدة DOM DOM NamedNodeMap مستند DOM عنصر DOM سمة DOM نص DOM DOM CDATA تعليق DOM DOM XMLHttpRequest محلل DOM عناصر XSLT وظائف XSLT / XPath

مؤشرات XSD


يمكننا التحكم في كيفية استخدام العناصر في المستندات ذات المؤشرات.


المؤشرات

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

مؤشرات الطلب:

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

مؤشرات التواجد:

  • maxOccurs
  • minOccurs

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

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

مؤشرات الطلب

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

كل مؤشر

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

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

ملاحظة: عند استخدام مؤشر <all> ، يمكنك ضبط مؤشر <minOccurs> على 0 أو 1 ويمكن فقط ضبط مؤشر <maxOccurs> على 1 (يتم وصف <minOccurs> و <maxOccurs> لاحقًا).

مؤشر الاختيار

يحدد مؤشر <choice> إمكانية حدوث عنصر فرعي واحد أو آخر:

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

مؤشر التسلسل

يحدد مؤشر <sequence> أن العناصر الفرعية يجب أن تظهر بترتيب معين:

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

يشير المثال أعلاه إلى أن عنصر "اسم_الأطفال" يمكن أن يحدث مرة واحدة على الأقل (القيمة الافتراضية لـ minOccurs هي 1) وبحد أقصى عشر مرات في عنصر "الشخص".

مؤشر 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" يمكن أن يحدث بحد أدنى صفر مرة وعشر مرات كحد أقصى في عنصر "person".

نصيحة: للسماح لعنصر بالظهور لعدد غير محدود من المرات ، استخدم maxOccurs = "غير مقيد" العبارة:

مثال عملي:

ملف XML يسمى "Myfamily.xml":

<?xml version="1.0" encoding="UTF-8"?>

<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" ويمكن أن يحتوي على ما يصل إلى خمسة عناصر من "اسم_الأطفال".

هنا ملف المخطط "family.xsd":

<?xml version="1.0" encoding="UTF-8"?>
<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>