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>