ล่าสุดการพัฒนาเว็บบทเรียน
×

XML เกี่ยวกับการสอน

XML บ้าน XML บทนำ XML วิธีใช้ XML ต้นไม้ XML วากยสัมพันธ์ XML องค์ประกอบ XML แอตทริบิวต์ XML namespaces XML แสดง XML XSLT XML XPath XML XLink XML ตรวจสอบ XML DTD XML schema XML เซิร์ฟเวอร์ XML การประยุกต์ใช้งาน XML ตัวอย่าง XML ทดสอบ XML ใบรับรอง

XML DOM

DOM แนะนำ DOM โหนด DOM XMLHttpRequest DOM การเข้าถึง DOM ข้อมูลโหนด DOM รายการโหนด DOM ภายใน DOM การนำทาง DOM ได้รับค่า DOM Change โหนด DOM Remove โหนด DOM Replace โหนด DOM Create โหนด DOM Add โหนด DOM Clone โหนด DOM ตัวอย่าง

DOM การอ้างอิง

DOM ประเภทโหนด DOM ปม DOM NodeList DOM NamedNodeMap DOM เอกสาร DOM ธาตุ DOM คุณลักษณะ DOM ข้อความ DOM CDATA DOM คิดเห็น DOM XMLHttpRequest DOM parser

XML DTD

DTD แนะนำ DTD การก่อสร้างตึก DTD องค์ประกอบ DTD แอตทริบิวต์ DTD องค์ประกอบ VS attr DTD หน่วยงาน DTD ตัวอย่าง

XSD Schema

XSD แนะนำ XSD ทำอย่างไร XSD <schema> XSD องค์ประกอบ XSD แอตทริบิวต์ XSD ข้อ จำกัด

XSD ซับซ้อน

XSD องค์ประกอบ XSD ว่างเปล่า XSD เพียงองค์ประกอบ XSD ข้อความเท่านั้น XSD ผสม XSD ตัวชี้วัด XSD <any> XSD <anyAttribute> XSD การแทน XSD ตัวอย่าง

XSD Data

XSD เชือก XSD วันที่ XSD เป็นตัวเลข XSD อื่น ๆ XSD การอ้างอิง

Web บริการ

XML บริการ XML WSDL XML SOAP XML RDF XML RSS

 

ตัวชี้วัด XSD


เราสามารถควบคุมวิธีการที่องค์ประกอบที่จะใช้ในเอกสารที่มีตัวชี้วัด


ตัวชี้วัด

มีเจ็ดตัวชี้วัด:

ตัวชี้วัดที่สั่งซื้อ:

  • All
  • Choice
  • Sequence

ตัวชี้วัดที่เกิดขึ้น:

  • maxOccurs
  • minOccurs

หุ้นกลุ่ม:

  • Group name
  • attributeGroup name

ตัวชี้วัดการสั่งซื้อสินค้า

ตัวชี้วัดการสั่งซื้อจะถูกใช้ในการกำหนดคำสั่งขององค์ประกอบ

ดัชนีทั้งหมด

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

Note: เมื่อใช้ <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>

ตัวชี้วัดที่เกิดขึ้น

ตัวชี้วัดที่เกิดขึ้นจะใช้ในการกำหนดวิธีการที่มักจะเป็นองค์ประกอบที่สามารถเกิดขึ้นได้

Note: สำหรับทั้งหมด "Order" และ "Group" ตัวชี้วัด (ใด ๆ ทั้งหมดทางเลือกลำดับชื่อกลุ่มและการอ้างอิงกลุ่ม) ค่าเริ่มต้นสำหรับ 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) และสูงสุดไม่เกินสิบครั้งใน "person" องค์ประกอบ

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" องค์ประกอบ

Tip: ในการอนุญาตให้เป็นองค์ประกอบที่จะปรากฏได้ไม่ จำกัด จำนวนครั้งที่ใช้ maxOccurs = คำสั่ง "มากมาย"

A working example:

ไฟล์ 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 ข้างต้นมีองค์ประกอบหลักที่มีชื่อว่า "persons" ภายในองค์ประกอบรากนี้เราได้กำหนดไว้สาม "person" องค์ประกอบ แต่ละ "person" องค์ประกอบที่จะต้องมี "full_name" องค์ประกอบและมันสามารถมีได้ถึงห้า "child_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>