Latest web development tutorials

ตัวบ่งชี้ XML Schema

โดยตัวบ่งชี้ที่เราสามารถควบคุมการใช้งานขององค์ประกอบในโหมดเอกสาร


ตัวบ่งชี้

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

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

  • ทั้งหมด
  • ทางเลือก
  • ลำดับ

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

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

ทางเลือกที่ดัชนี

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

ลำดับดัชนี

<อเนื่อง> องค์ประกอบของเด็กจะต้องมีการระบุไว้ในลำดับที่เฉพาะเจาะจง:

<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 = "มากมาย" คำสั่งนี้:

ตัวอย่างที่ practical:

เรียกว่า "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>