XML Schema complexType Element
❮ การอ้างอิงสคีมา XML ที่สมบูรณ์
ความหมายและการใช้งาน
องค์ประกอบ complexType กำหนดประเภทที่ซับซ้อน องค์ประกอบประเภทที่ซับซ้อนคือองค์ประกอบ XML ที่มีองค์ประกอบและ/หรือแอตทริบิวต์อื่นๆ
ข้อมูลองค์ประกอบ
- องค์ประกอบหลัก:องค์ประกอบ กำหนดใหม่ schema
ไวยากรณ์
<complexType
id=ID
name=NCName
abstract=true|false
mixed=true|false
block=(#all|list of (extension|restriction))
final=(#all|list of (extension|restriction))
any attributes
>
(annotation?,(simpleContent|complexContent|((group|all|
choice|sequence)?,((attribute|attributeGroup)*,anyAttribute?))))
</complexType>
(เครื่องหมาย ? ประกาศว่าองค์ประกอบสามารถเกิดขึ้นได้เป็นศูนย์หรือครั้งเดียว และเครื่องหมาย * ประกาศว่าองค์ประกอบนั้นสามารถเกิดขึ้นได้เป็นศูนย์หรือมากกว่าภายในองค์ประกอบ complexType)
Attribute | Description |
---|---|
id | Optional. Specifies a unique ID for the element |
name | Optional. Specifies a name for the element |
abstract | Optional. Specifies whether the complex type can be used in an instance document. True indicates that an element cannot use this complex type directly but must use a complex type derived from this complex type. Default is false |
mixed | Optional. Specifies whether character data is allowed to appear between the child elements of this complexType element. Default is false. If a simpleContent element is a child element, the mixed attribute is not allowed! |
block | Optional. Prevents a complex type that has a specified type
of derivation from being used in place of this complex type. This value can
contain #all or a list that is a subset of extension or restriction:
|
final | Optional. Prevents a specified type of derivation of this
complex type element. Can contain #all or a list that is a subset of
extension or restriction.
|
any attributes | Optional. Specifies any other attributes with non-schema namespace |
ตัวอย่าง 1
ตัวอย่างต่อไปนี้มีองค์ประกอบชื่อ "โน้ต" ซึ่งเป็นประเภทที่ซับซ้อน:
<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>
ตัวอย่าง 2
ตัวอย่างต่อไปนี้มีประเภทที่ซับซ้อน "fullpersoninfo" ซึ่งมาจากประเภทที่ซับซ้อนอื่น "personinfo" โดยขยายประเภทที่สืบทอดมาด้วยองค์ประกอบเพิ่มเติมสามองค์ประกอบ (ที่อยู่ เมือง และประเทศ):
<xs:element name="employee" type="fullpersoninfo"/>
<xs:complexType name="personinfo">
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="fullpersoninfo">
<xs:complexContent>
<xs:extension base="personinfo">
<xs:sequence>
<xs:element name="address" type="xs:string"/>
<xs:element name="city" type="xs:string"/>
<xs:element name="country" type="xs:string"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
ในตัวอย่างข้างต้น องค์ประกอบ "พนักงาน" ต้องมีองค์ประกอบต่อไปนี้ตามลำดับ: "ชื่อ", "นามสกุล", "ที่อยู่", "เมือง" และ "ประเทศ"
❮ การอ้างอิงสคีมา XML ที่สมบูรณ์