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|senarai (extension|restriction)) final=(#all|senarai (extension|restriction)) Attributes lain > annotation?,((simpleType|complexType)?,(unique|key|keyref)*)) </element>
(?Simbol pemberitahuan di dalam elemen element, elemen ini boleh muncul nol atau sekali, *Simbol pemberitahuan elemen boleh muncul nol atau beberapa kali.)
Atribut
id
Pilihan. Tetapan ID unik bagi elemen.
name
Pilihan. Tetapan nama bagi elemen. Jika bahan induk adalah bahan schema, maka atribut ini adalah wajib.
ref
Pilihan. Rujukan kepada elemen lain. Atribut ref boleh mengandungi awalan nama ruang.
type
Pilihan. Tetapan nama jenis binaan dalaman, atau tetapan nama elemen simpleType atau complexType.
substitutionGroup
Pilihan. Tetapan nama elemen yang boleh digantikan elemen ini. Elemen itu mesti mempunyai jenis yang sama atau diwarisi daripada jenis yang ditentukan.
Jika bahan induk bukan bahan schema, maka atribut ini tidak boleh digunakan.
default
Pilihan. Tetapan nilai baku bagi elemen (hanya digunakan bila kandungan elemen adalah jenis sederhana atau textOnly).
fixed
Pilihan. Tetapan nilai tetap bagi elemen (hanya digunakan bila kandungan elemen adalah jenis sederhana atau textOnly).
form
Pilihan. Bentuk elemen ini. Nilai baku adalah nilai atribut elementFormDefault bahan schema yang mengandungi atribut ini. Nama ini mesti menjadi salah satu daripada string berikut: "qualified" atau "unqualified".
Jika elemen induk adalah element schema, properti ini tidak boleh digunakan.
- Jika nilai ini adalah "unqualified", maka tiada perlu dihalangi dengan awalan nama ruang elemen itu.
- Jika nilai ini adalah "qualified", maka elemen itu harus dihalangi dengan awalan nama ruang.
maxOccurs
Pilihan. Tetapan jumlah maksimum yang boleh muncul elemen element dalam bahan induk. Nama ini boleh adalah bilangan bulat yang lebih besar atau sama dengan nol. Jika tiada batasan untuk jumlah maksimum, gunakan string "unbounded". Nilai baku adalah 1.
Jika elemen induk adalah element schema, properti ini tidak boleh digunakan.
minOccurs
Boleh pilih. Tetapkan keluasan minimum yang boleh muncul bagi element dalam elemen induk. Nilai ini adalah nombor bulat yang lebih besar atau sama dengan nol. Nilai asal adalah 1.
Jika elemen induk adalah element schema, properti ini tidak boleh digunakan.
nillable
Boleh pilih. Menentukan sama ada nilai nol jelas boleh ditetapkan kepada elemen ini. Ini berlaku untuk kandungan elemen dan bukan properti elemen. Nilai asal adalah false.
Jika nillable adalah true, akan membolehkan instans elemen ini untuk menetapkan nilai nil kepada true. Nilai nil diatur sebagai sebahagian daripada namaspace XML schema instans.
Contohnya, blok berikut menentukan satu elemen, dan menetapkan nillable kepada true.
<xs:element name="myDate" type="xs:date" nillable="true"/>
Blok berikut menggunakan elemen ini dan mempunyai nilai nol jelas (nilai nil diatur kepada true).
<myDate xsi:nil="true"></myDate>
abstract
Boleh pilih. Menentukan sama ada elemen boleh digunakan dalam dokumen instans. Jika nilai ini adalah true, elemen ini tidak boleh muncul dalam dokumen instans. Sebaliknya, elemen lain yang mengandungi QName yang sama seperti substitutionGroup properti elemen ini mesti muncul di tempat elemen ini. Banyak elemen boleh diambil di dalam properti substitutionGroup elemen ini. Nilai asal adalah false.
block
Boleh pilih. Jenis turun. Properti block menghalang elemen yang mempunyai jenis turun yang ditentukan daripada digunakan untuk menggantikan elemen ini. Nama nilai boleh mengandungi #all atau senarai, di mana senarai ini adalah subset daripada extension, restriction atau substitution:
- extension - Mencegah elemen turun daripada digunakan untuk menggantikan elemen ini melalui pengembangan.
- restriction - Mencegah elemen turun daripada digunakan untuk menggantikan elemen ini melalui penghadangan.
- substitution - Mencegah elemen turun daripada digunakan untuk menggantikan elemen ini melalui penggantian.
- #all - Mencegah semua elemen turun daripada digunakan untuk menggantikan elemen ini.
final
Boleh pilih. Tetapkan nilai asal bagi properti final element. Jika elemen induk bukan element schema, properti ini tidak boleh digunakan. Nama nilai boleh mengandungi #all atau senarai, di mana senarai ini adalah subset daripada extension atau restriction:
- extension - Mencegah elemen turunan yang digantikan melalui ekspansi
- restriction - Mencegah elemen turunan yang digantikan melalui batasan
- #all - Mencegah semua elemen turunan untuk digantikan elemen ini
Attributes lain
Pilihan. Tentukan properti lain yang mempunyai namespace non-schema.
Contoh
Contoh 1
Contoh di bawah adalah schema yang memiliki empat elemen: "fname", "lname", "age" serta "dateborn", jenisnya adalah string, nonNegativeInteger serta 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>
Contoh 2
Contoh di bawah adalah schema yang memiliki elemen jenis "note" yang kompleks. Elemen "note" mengandung empat elemen sederhana: "to", "from", "heading" serta "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>
Contoh 3
Contoh ini sama seperti contoh 2, tetapi dalam contoh ini, kami memilih untuk menggunakan properti ref untuk merujuk kepada nama elemen:
<?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>