XML Schema complexType 元素
定义和用法
complexType 元素定义复杂类型。复杂类型的元素是包含其他元素和/或属性的 XML 元素。
元素信息
出现次数 | 在架构内为无限制;在元素内为一次。 |
父元素 | element、redefine、schema |
内容 | annotation、simpleContent、complexContent、group、all、choice、sequence、attribute、attributeGroup、anyAttribute |
Syarat
<complexType id=ID name=NCName abstract=true|false mixed=true|false block=(#all|senarai daripada (extension|restriction)) final=(#all|senarai daripada (extension|restriction)) any attributes > (annotation?,(simpleContent|complexContent|((group|all| choice|sequence)?,((attribute|attributeGroup)*,anyAttribute?)))) </complexType>
(?Simbol pemberitahuan di dalam elemen complexType, elemen boleh muncul nol atau sekurang-kurangnya sekali, *Simbol pemberitahuan elemen boleh muncul nol atau sekurang-kurangnya sekali.)
Atribut
id
Pilihan. Tentukan ID unik elemen ini.
name
Pilihan. Tentukan nama elemen.
abstract
Pilihan. Tentukan sama ada jenis kompleks boleh digunakan dalam dokumen instans. Jika nilai ini adalah true, elemen tidak boleh digunakan jenis kompleks ini secara langsung, malah harus digunakan jenis kompleks yang diwarisi daripada jenis kompleks ini. Nama ini boleh mengandungi #all atau senarai, di mana senarai ini adalah subset daripada extension atau restriction:
mixed
Pilihan. Tentukan sama ada data huruf diizinkan untuk muncul di antara anak jenis kompleks ini. Nama ini boleh mengandungi #all atau senarai, di mana senarai ini adalah subset daripada extension atau restriction:
- Jika elemen simpleContent adalah anak, sifat mixed ini adalah tidak diizinkan.
- Jika elemen complexContent adalah anak, sifat mixed ini boleh ditulis semula oleh sifat mixed elemen complexContent.
block
Pilihan. Halangan daripada mengguna pakai jenis kompleks yang diwarisi dengan jenis yang ditentukan untuk menggantikan jenis kompleks ini. Nama ini boleh mengandungi #all atau senarai, di mana senarai ini adalah subset daripada extension atau restriction:
- extension - Halangan daripada mengguna pakai jenis kompleks yang diwarisi melalui pengembangan untuk menggantikan jenis kompleks ini.
- restriction - Halangan daripada mengguna pakai jenis kompleks yang diwarisi melalui penghadangan untuk menggantikan jenis kompleks ini.
- #all - Halangan daripada mengguna pakai jenis kompleks yang diwarisi untuk menggantikan jenis kompleks ini.
final
Pilihan. Halangan daripada mengguna pakai jenis yang diwarisi daripada elemen complexType ini. Nama ini boleh mengandungi #all atau senarai, di mana senarai ini adalah subset daripada extension atau restriction.
- extension - Mencegah turunan melalui ekspansi.
- restriction - Mencegah turunan melalui batasan.
- #all - Mencegah semua turunan (ekspansi dan batasan).
any attributes
Pilihan. Tentukan semua properti lain dengan non-schema namespace.
Contoh
Contoh 1
Contoh di bawah ini mempunyai elemen kompleks bernama "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>
Contoh 2
Dalam contoh di bawah ini ada tipe kompleks "fullpersoninfo" yang diperluas melalui tiga elemen tambahan (address, city dan country) untuk tipe yang diwarisi, yang berasal dari tipe kompleks lain "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>
在上面的例子中,上面的 "employee" 元素必须按顺序包含以下元素:"firstname","lastname","address","city" 以及 "country"。