<XML Schema อ้างอิงที่สมบูรณ์
ความหมายและการใช้งาน
องค์ประกอบ complexType กำหนดประเภทที่ซับซ้อน องค์ประกอบที่ซับซ้อนชนิดเป็นองค์ประกอบ XML ที่มีองค์ประกอบอื่น ๆ และ / หรือแอตทริบิวต์
องค์ประกอบข้อมูล
- Parent elements: องค์ประกอบ redefine แบบแผน
วากยสัมพันธ์
<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)
คุณลักษณะ | ลักษณะ |
---|---|
id | ไม่จำเป็น ระบุรหัสเฉพาะสำหรับองค์ประกอบ |
name | ไม่จำเป็น ระบุชื่อสำหรับองค์ประกอบ |
abstract | ไม่จำเป็น ระบุว่าชนิดที่ซับซ้อนสามารถนำมาใช้ในเอกสารเช่น ทรูชี้ให้เห็นว่าเป็นองค์ประกอบที่ไม่สามารถใช้ชนิดที่ซับซ้อนนี้โดยตรง แต่ต้องใช้ชนิดที่มีความซับซ้อนได้มาจากประเภทที่ซับซ้อนนี้ เริ่มต้นเป็นเท็จ |
mixed | ไม่จำเป็น ระบุว่าข้อมูลตัวอักษรได้รับอนุญาตให้ปรากฏระหว่างองค์ประกอบของเด็กขององค์ประกอบ complexType นี้ เริ่มต้นเป็นเท็จ ถ้าองค์ประกอบ simpleContent เป็นองค์ประกอบเด็ก mixed แอตทริบิวต์ไม่ได้รับอนุญาต! |
block | ไม่จำเป็น ป้องกันไม่ให้ชนิดที่ซับซ้อนที่มีประเภทที่กำหนดมาจากการใช้ในสถานที่ของประเภทที่ซับซ้อนนี้ ค่านี้สามารถมี #all หรือรายการที่เป็นส่วนหนึ่งของการขยายหรือข้อ จำกัด :
|
final | ไม่จำเป็น ป้องกันไม่ให้ชนิดที่ระบุแหล่งที่มาขององค์ประกอบประเภทนี้มีความซับซ้อน สามารถมี #all หรือรายการที่เป็นส่วนหนึ่งของการขยายหรือข้อ จำกัด
|
any attributes | ไม่จำเป็น ระบุคุณลักษณะอื่น ๆ ใด ๆ ที่ไม่ใช่สคี namespace |
ตัวอย่างที่ 1
ตัวอย่างต่อไปนี้มีองค์ประกอบที่มีชื่อว่า "note" ที่เป็นประเภทที่ซับซ้อน:
<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" โดยการขยายประเภทได้รับมรดกที่มีสามองค์ประกอบเพิ่มเติม (address, city and country) :
<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>
ในตัวอย่างข้างต้น "employee" องค์ประกอบที่จะต้องมีในลำดับองค์ประกอบต่อไปนี้: "firstname" , "lastname" , "address" , "city" และ "country"
<XML Schema อ้างอิงที่สมบูรณ์