Latest web development tutorials

XML Schema องค์ประกอบองค์ประกอบ

XML Schema อ้างอิง XML Schema สมบูรณ์อ้างอิง

ความหมายและการใช้งาน

องค์ประกอบองค์ประกอบกำหนดองค์ประกอบ

องค์ประกอบข้อมูล

  • องค์ประกอบหลัก: คีเลือกทั้งหมดลำดับ กลุ่ม

ไวยากรณ์

<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))
any attributes
>

annotation?,(simpleType|complexType)?,(unique|key|keyref)*

</element>

(ใช่หรือไม่ลงบอกว่าองค์ประกอบธาตุองค์ประกอบสามารถเกิดขึ้นได้เป็นศูนย์หรือครั้งเดียว * สัญญาณบอกว่าองค์ประกอบที่สามารถเกิดขึ้นได้เป็นศูนย์หรือมากกว่าครั้ง.)

可选。指示是否可以将显式的零值分配给该元素。此项应用于元素内容并且不是该元素的属性。 默认值为 false。

หาก nillable เป็นจริงก็จะทำให้เป็นตัวอย่างขององค์ประกอบที่สามารถแอตทริบิวต์ศูนย์ตั้งค่าเป็นจริง ส่วนศูนย์แอตทริบิวต์ถูกกำหนดให้เป็นตัวอย่างของ namespace คีมาของ XML

属性 描述
id 可选。规定该元素的唯一的 ID。
name 可选。规定元素的名称。如果父元素是 schema 元素,则此属性是必需的。
ref 可选。对另一个元素的引用。ref 属性可包含一个命名空间前缀。如果父元素是 schema 元素,则不是使用该属性。
type 可选。规定内建数据类型的名称,或者规定 simpleType 或 complexType 元素的名称。
substitutionGroup 可选。规定可用来替代该元素的元素的名称。 该元素必须具有相同的类型或从指定元素类型派生的类型。 如果父元素不是 schema 元素,则不可以使用该属性。
default 可选。为元素规定默认值(仅当元素内容是简单类型或 textOnly 时使用)。
fixed 可选。为元素规定固定值(仅当元素内容是简单类型或 textOnly 时使用)。
form

可选。该元素的形式。 默认值是包含该属性的 schema 元素的 elementFormDefault 属性的值。 该值必须是下列字符串之一: "qualified" 或 "unqualified"。

如果父元素是 schema 元素,则不能使用该属性。

  • 如果该值是 "unqualified",则无须通过命名空间前缀限定该元素。
  • 如果该值是 "qualified",则必须通过命名空间前缀限定该元素。
maxOccurs

可选。规定 element 元素在父元素中可出现的最大次数。该值可以是大于或等于零的整数。若不想对最大次数设置任何限制,请使用字符串 "unbounded"。 默认值为 1。

如果父元素是 schema 元素,则不能使用该属性。

minOccurs

可选。规定 element 元素在父元素中可出现的最小次数。该值可以是大于或等于零的整数。默认值为 1。

如果父元素是 schema 元素,则不能使用该属性。

nillable
นามธรรม

ไม่จำเป็น มันแสดงให้เห็นว่าองค์ประกอบที่สามารถนำมาใช้ในเอกสารอินสแตนซ์ หากมีค่าเป็นจริงองค์ประกอบไม่สามารถปรากฏในเอกสารอินสแตนซ์ แต่แอตทริบิวต์ substitutionGroup มีชื่อที่มีคุณสมบัติเหมาะสม (QName) ขององค์ประกอบขององค์ประกอบอื่นจะต้องปรากฏอยู่ในตำแหน่งขององค์ประกอบ องค์ประกอบหลายอย่างสามารถอ้างถึงไว้ในคุณสมบัติของ substitutionGroup ค่าเริ่มต้นเป็นเท็จ

กลุ่ม

ไม่จำเป็น ชนิดที่ได้มา องค์ประกอบบล็อกที่มีแอตทริบิวต์ที่ระบุเพื่อป้องกันไม่ให้ชนิดที่ได้มาใช้ในสถานที่ขององค์ประกอบ ค่านี้สามารถมี #all หรือรายการที่เป็นส่วนขยายข้อ จำกัด หรือเปลี่ยนตัวย่อย:

  • ขยาย - ป้องกันไม่ให้ส่วนที่ได้มาโดยการขยายจะใช้ในการเปลี่ยนองค์ประกอบ
  • ข้อ จำกัด - ป้องกันองค์ประกอบมาจากข้อ จำกัด ที่ใช้ในการเปลี่ยนองค์ประกอบ
  • เปลี่ยนตัว - ป้องกันองค์ประกอบมาทดแทนโดยจะใช้ในการเปลี่ยนองค์ประกอบ
  • #all - ป้องกันองค์ประกอบที่ได้มาทั้งหมดจะถูกนำมาใช้แทนองค์ประกอบ
สุดท้าย

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

  • ขยาย - ป้องกันไม่ให้ส่วนที่ได้มาโดยการขยายนำมาใช้แทนขององค์ประกอบ
  • ข้อ จำกัด - ป้องกันองค์ประกอบมาจากข้อ จำกัด ที่ใช้ในการเปลี่ยนองค์ประกอบ
  • #all - ป้องกันองค์ประกอบที่ได้มาทั้งหมดจะถูกนำมาใช้แทนองค์ประกอบ
คุณลักษณะใด ๆ

ไม่จำเป็น มันระบุอื่น ๆ แอตทริบิวต์ namespace ที่ไม่ใช่สคี

ตัวอย่างที่ 1

ตัวอย่างต่อไปนี้เป็นสคีซึ่งมีสี่องค์ประกอบง่าย: "fname", "lname", "อายุ" และ "dateborn" พิมพ์เป็นสตริง nonNegativeInteger และวันที่:

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

ตัวอย่างต่อไปนี้เป็นสคีประเภทที่ซับซ้อน "ทราบ" กับองค์ประกอบ "หมายเหตุ" องค์ประกอบที่มีสี่องค์ประกอบง่าย: "เพื่อ", "จาก", "หัวข้อ" และ "ร่างกาย":

<?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 แต่ในกรณีนี้เราเลือกที่จะใช้แอตทริบิวต์โทษในการอ้างถึงชื่อธาตุ:

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


XML Schema อ้างอิง XML Schema สมบูรณ์อ้างอิง