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))
คุณสมบัติอื่นๆ
>
annotation?,((simpleType|complexType)?,(unique|key|keyref)*))
</element>

(? สัญลักษณ์การบอกออกมาในอิเลเมนต์ element อิเลเมนต์นี้สามารถปรากฏขึ้นโดยไม่มีครั้งหรือครั้งเดียว * สัญลักษณ์การบอกออกมาในอิเลเมนต์สามารถปรากฏขึ้นโดยไม่มีครั้งหรือปรากฏขึ้นหลายครั้ง)

attribute

id

ความเลือกตั้งได้ กำหนด ID แรงเด่นของอิเลเมนต์

name

ความเลือกตั้งได้ กำหนดชื่ออิเลเมนต์ ถ้าอิเลเมนต์ปลายทางเป็นอุปกรณ์ schema นี้คุณสมบัตินี้เป็นข้อจำเป็น

ref

ความเลือกตั้งได้ อ้างอิงอิเลเมนต์อื่น คุณสมบัติ ref สามารถมีชื่อช่วยหน้าชื่อสาธารณะ

type

ความเลือกตั้งได้ กำหนดชื่อของประเภทข้อมูลที่มีอยู่ในลำดับ หรือกำหนดชื่ออิเลเมนต์ simpleType หรือ complexType

substitutionGroup

ความเลือกตั้งได้ กำหนดชื่ออิเลเมนต์ที่สามารถใช้แทนอิเลเมนต์นี้ อิเลเมนต์นี้ต้องมีประเภทเดียวกันหรือประเภทที่มีมาจากประเภทที่กำหนด

ไม่สามารถใช้คุณสมบัตินี้ได้ ถ้าอิเลเมนต์ปลายทางไม่ใช่อุปกรณ์ schema

default

ความเลือกตั้งได้ กำหนดค่าที่เป็นที่นั่ง (ใช้เมื่อเนื้อหาของอิเลเมนต์เป็นประเภทของข้อมูลเรียบเรียงหรือ textOnly)

fixed

ความเลือกตั้งได้ กำหนดค่าที่เป็นที่นั่ง (ใช้เมื่อเนื้อหาของอิเลเมนต์เป็นประเภทของข้อมูลเรียบเรียงหรือ textOnly)

form

ความเลือกตั้งได้ รูปแบบของอิเลเมนต์ ค่าเริ่มต้นคือค่าของอุปกรณ์ schema ที่มีอยู่ในคุณสมบัติ elementFormDefault ของอุปกรณ์นี้ ค่านี้ต้องเป็นหนึ่งในคำตะพาะดังนี้: "qualified" หรือ "unqualified"

ถ้าองค์ประกอบพ่อคือองค์ประกอบ schema ไม่สามารถใช้คุณสมบัตินี้ได้

  • ถ้าค่านี้เป็น "unqualified" ไม่จำเป็นต้องจำกัดอิเลเมนต์ด้วยชื่อช่วยหน้าชื่อชนิดที่มีอยู่ในชื่อสาธารณะ
  • ถ้าค่านี้เป็น "qualified" ต้องจำกัดอิเลเมนต์ด้วยชื่อช่วยหน้าชื่อชนิดที่มีอยู่ในชื่อสาธารณะ

maxOccurs

ความเลือกตั้งได้ กำหนดจำนวนครั้งที่อิเลเมนต์เฉพาะได้ปรากฏในตัวปลายทาง ค่านี้เป็นตัวเลขเต็มที่มากกว่าหรือเท่ากับ 0 ถ้าไม่ต้องการตั้งข้อจำกัดเกี่ยวกับจำนวนครั้งที่สูงสุด ใช้คำตะพาะ "unbounded" ค่าเริ่มต้นคือ 1

ถ้าองค์ประกอบพ่อคือองค์ประกอบ schema ไม่สามารถใช้คุณสมบัตินี้ได้

minOccurs

เลือกได้ กำหนดจำนวนครั้งที่องค์ประกอบ element สามารถปรากฏในองค์ประกอบพ่อ ค่านี้เป็นตัวเลขเต็มที่มากกว่าหรือเท่ากับ 0 ค่าเริ่มต้นคือ 1

ถ้าองค์ประกอบพ่อคือองค์ประกอบ schema ไม่สามารถใช้คุณสมบัตินี้ได้

nillable

เลือกได้ หน้าตาว่าจะสามารถจัดสรรค่าเริ่มต้นที่เป็นศูนย์สูตรแก่องค์ประกอบหรือไม่ จะนำไปใช้สำหรับเนื้อหาขององค์ประกอบและไม่ใช่คุณสมบัติขององค์ประกอบ ค่าเริ่มต้นคือ 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 - ป้องกันไม่ให้องค์ประกอบที่ย่อยมาแทนองค์ประกอบนี้

คุณสมบัติอื่นๆ

เลือกตัวเลือกเล็ก. กำหนดคุณสมบัติที่มีชื่อที่ไม่มีมาตราฐาน.

ตัวอย่าง

ตัวอย่าง 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>