XML Schema element อนุธรรณ์
การกำหนดและการใช้งาน
องค์ประกอบ element กำหนดองค์ประกอบ
ข้อมูลองค์ประกอบ
จำนวนที่ปรากฏขึ้น | จำนวนองค์ประกอบที่ถูกกำหนดในโครงสร้าง |
องค์ประกอบพ่อ | schema、choice、all、sequence |
หลักฐาน | simpleType、complexType、key、keyref、unique |
การใช้งาน
<element id=ID name=NCName ref=QName type=QName substitutionGroup=QName default=string fixed=string form=qualified|unqualified maxOccurs=nonNegativeInteger|unbounded minOccurs=nonNegativeInteger nillable=true|false abstract=true|false block=(#all|list of (extension|restriction)) final=(#all|list of (extension|restriction)) attributes อื่นๆ > annotation?,((simpleType|complexType)?,(unique|key|keyref)*)) </element>
(? สัญลักษณ์ประกาศในองค์ประกอบ element องค์ประกอบนี้สามารถปรากฏขึ้นน้อยหรือหนึ่งครั้ง * สัญลักษณ์ประกาศองค์ประกอบสามารถปรากฏขึ้นน้อยหรือหลายครั้ง)
รายการคุณสมบัติ
id
ให้ความเลือกได้เลย กำหนด ID ที่มีความเป็นเดี่ยวซึ่งขององค์ประกอบนี้。
name
ให้ความเลือกได้เลย กำหนดชื่อองค์ประกอบ ถ้าองค์ประกอบพ่อเป็นองค์ประกอบ schema แล้วนั้นควรมีขอบเขตนี้。
ref
ให้ความเลือกได้เลย อ้างอิงองค์ประกอบอื่น ขอบเขต ref สามารถมีหน้าที่หน้ากากเนื้อหาหรือไม่ ถ้าองค์ประกอบพ่อเป็นองค์ประกอบ schema ไม่ใช้นั้น。
type
ให้ความเลือกได้เลย กำหนดชื่อประเภทข้อมูลที่เป็นรูปแบบรวม หรือกำหนดชื่อองค์ประกอบ simpleType หรือ complexType。
substitutionGroup
ให้ความเลือกได้เลย กำหนดชื่อองค์ประกอบที่สามารถใช้แทนองค์ประกอบนี้ องค์ประกอบต้องมีประเภทเดียวกันหรือเป็นประเภทที่ขึ้นมาจากประเภทที่กำหนดไว้。
ไม่สามารถใช้นั้นได้ ถ้าองค์ประกอบพ่อไม่ใช่องค์ประกอบ schema。
default
ให้ความเลือกได้เลย กำหนดค่าเริ่มต้นสำหรับองค์ประกอบ (ใช้เมื่อองค์ประกอบเป็นประเภทข้อมูลที่เดี่ยวยากหรือ textOnly เท่านั้น)。
fixed
ให้ความเลือกได้เลย กำหนดค่าที่เป็นตัวเดี่ยวกับองค์ประกอบ (ใช้เมื่อองค์ประกอบเป็นประเภทข้อมูลที่เดี่ยวยากหรือ textOnly เท่านั้น)。
form
เลือกตั้ง。รูปทางของสิ่งนี้ ค่าเริ่มต้นคือค่าของ elementFormDefault ของ schema ที่มีคุณสมบัตินี้ ค่านี้ต้องเป็นหนึ่งในคำว่า "qualified" หรือ "unqualified"
ไม่สามารถใช้ค่านี้ถ้าตัวแปรพ่อเป็น schema
- ถ้าค่านี้เป็น "unqualified" ไม่ต้องใช้ชื่อพื้นฐานของช่องนาม
- ถ้าค่านี้เป็น "qualified" ต้องใช้ชื่อพื้นฐานของช่องนาม
maxOccurs
เลือกตั้ง。กำหนดจำนวนครั้งที่สิ่งนี้สามารถปรากฏในตัวแปรพ่อของมัน ค่านี้สามารถเป็นตัวเลขเต็มที่มากกว่าหรือเท่ากับ 0 หรือใช้คำว่า "unbounded" ถ้าไม่ต้องกำหนดจำนวนครั้งที่สูงสุด ค่าเริ่มต้นคือ 1
ไม่สามารถใช้ค่านี้ถ้าตัวแปรพ่อเป็น schema
minOccurs
เลือกตั้ง。กำหนดจำนวนครั้งที่สิ่งนี้สามารถปรากฏในตัวแปรพ่อของมัน ค่านี้สามารถเป็นตัวเลขเต็มที่มากกว่าหรือเท่ากับ 0 ค่าเริ่มต้นคือ 1
ไม่สามารถใช้ค่านี้ถ้าตัวแปรพ่อเป็น schema
nillable
เลือกตั้ง。บอกว่าสามารถจัดสรรค่านิล (nil) โดยเฉพาะให้กับสิ่งนี้หรือไม่ นี้นั้นถูกใช้สำหรับเนื้อหาของสิ่งนี้ และไม่ใช่ค่าของสิ่งนี้ ค่าเริ่มต้นคือ false
ถ้า nillable เป็น true จะทำให้สิ่งนี้สามารถกำหนดค่า nil ให้เป็น true ค่า nil ถูกนิยามในช่องนาม XML Schema ของตัวแปร
ตัวอย่างเช่น บทต่อไปนี้นิยามสิ่งเดียวและกำหนด nillable ให้เป็น true
<xs:element name="myDate" type="xs:date" nillable="true"/>
บทต่อไปใช้สิ่งนี้และมีค่านิล (nil ที่กำหนดเป็น true) โดยเฉพาะ
<myDate xsi:nil="true"></myDate>
abstract
เลือกตั้ง。บอกว่าสิ่งนี้สามารถใช้ในเอกสารตัวอย่างหรือไม่ ถ้าค่านี้เป็น true สิ่งนี้จะไม่สามารถปรากฏในเอกสารตัวอย่าง ข้างต้น substitutionGroup ตัวแปรที่มี QName ของสิ่งนี้ต้องปรากฏในตำแหน่งของสิ่งนี้ สิ่งหลายสิ่งสามารถอ้างถึงสิ่งนี้ในตัวแปร substitutionGroup ของตน ค่าเริ่มต้นคือ false
block
เลือกตั้ง。ชนิดที่เกิดขึ้นจากการขยาย。ตัวแปร block ป้องกันไม่ให้สามารถใช้สิ่งที่มีชนิดที่กำหนดเป็น派生ที่มีในลิสต์นี้ ในการแทนสิ่งนี้: รวมถึง #all หรือลิสต์ตัวเลขที่เป็นส่วนหนึ่งของ extension, restriction หรือ substitution
- extension - ป้องกันไม่ให้สามารถใช้สิ่งที่เกิดขึ้นจากการขยายมาแทนสิ่งนี้。
- restriction - ป้องกันไม่ให้อิเล็มที่ยืมมาใช้ผ่านการจำกัดแทนอิเล็มนี้
- substitution - ป้องกันไม่ให้อิเล็มที่ยืมมาใช้ผ่านการแทนที่แทนอิเล็มนี้
- #all - ป้องกันไม่ให้อิเล็มที่ยืมมาใช้ทั้งหมดแทนอิเล็มนี้
final
เลือกตัวเลือกเดียว。กำหนดค่าปริยายสำหรับคุณสมบัติ final ของอิเล็ม element หากอิเล็มพ่อไม่ใช่อิเล็ม schema ไม่สามารถใช้คุณสมบัตินี้ได้ ค่านี้สามารถประกอบด้วย #all หรือรายการที่เป็นชุดรวมของ extension หรือ restriction:
- extension - ป้องกันไม่ให้อิเล็มที่ยืมมาใช้ผ่านการขยายแทนอิเล็มนี้
- restriction - ป้องกันไม่ให้อิเล็มที่ยืมมาใช้ผ่านการจำกัดแทนอิเล็มนี้
- #all - ป้องกันไม่ให้อิเล็มที่ยืมมาใช้ทั้งหมดแทนอิเล็มนี้
attributes อื่นๆ
เลือกตัวเลือกเดียว。กำหนดคุณสมบัติอื่นที่มีชื่อแบบระบบ non-schema ใดๆ
ตัวอย่าง
ตัวอย่าง 1
ตัวอย่างด้านล่างเป็น schema ที่มีอิเล็มที่เป็นประกอบสี่อย่าง: "fname", "lname", "age" และ "dateborn" โดยชนิดคือ string, nonNegativeInteger และ date:
<?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="fname" type="xs:string"/> <xs:element name="lname" type="xs:string"/> <xs:element name="age" type="xs:nonNegativeInteger"/> <xs:element name="dateborn" type="xs:date"/> </xs:schema>
ตัวอย่าง 2
ตัวอย่างด้านล่างเป็น schema ที่มีอิเล็มที่มีความหมายเด็ดขาด "note" ซึ่งมีอิเล็มที่เป็นประกอบได้สี่อย่าง: "to", "from", "heading" และ "body":
<?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="note"> <xs:complexType> <xs:sequence> <xs:element name="to" type="xs:string"/> <xs:element name="from" type="xs:string"/> <xs:element name="heading" type="xs:string"/> <xs:element name="body" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
ตัวอย่าง 3
นี่เป็นตัวอย่างที่เหมือนตัวอย่างที่ 2 แต่ในตัวอย่างนี้เราเลือกใช้คุณสมบัติ ref ในการอ้างอิงชื่ออิเล็ม:
<?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="note"> <xs:complexType> <xs:sequence> <xs:element ref="to"/> <xs:element ref="from"/> <xs:element ref="heading"/> <xs:element ref="body"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="to" type="xs:string"/> <xs:element name="from" type="xs:string"/> <xs:element name="heading" type="xs:string"/> <xs:element name="body" type="xs:string"/> </xs:schema>