Elemen Schema XML
Definisi dan penggunaan
Elemen element mendefinisikan elemen.
Informasi elemen
Kali muncul | Bilangan elemen yang didefinisikan dalam arsitektur. |
Elemen induk | schema, choice, all, sequence |
Konten | simpleType, complexType, key, keyref, unique |
Sintaks
<element id=ID name=NCName ref=QName type=QName substitutionGroup=QName default=string fixed=string form=qualified|unqualified maxOccurs=nonNegativeInteger|tidak terbatas minOccurs=nonNegativeInteger nillable=true|false abstract=true|false block=(#all|senarai (extension|restriction)) final=(#all|senarai (extension|restriction)) atribut mana saja > annotation?,((simpleType|complexType)?,(unique|key|keyref)*)) </element>
(Simbol ? dinyatakan dalam elemen element, elemen ini boleh muncul nol kali atau sekali, simbol * dinyatakan elemen boleh muncul nol kali atau beberapa kali).
Atribut
id
Boleh dipilih. Menentukan ID unik bagi elemen ini.
name
Boleh dipilih. Menentukan nama elemen. Properti ini wajib jika elemen induk adalah elemen schema.
ref
Boleh dipilih. Rujukan kepada elemen lain. Properti ref boleh mengandungi awalan nama ruang.
type
Boleh dipilih. Menentukan nama jenis data baku, atau menentukan nama elemen simpleType atau complexType.
substitutionGroup
Boleh dipilih. Menentukan nama elemen yang dapat digantikan bagi elemen ini. Elemen ini mesti memiliki jenis yang sama atau turun dari jenis yang ditentukan.
Tidak boleh digunakan properti ini jika elemen induk bukan elemen schema.
default
Boleh dipilih. Menentukan nilai lalai bagi elemen (hanya digunakan ketika konten elemen adalah tipe sederhana atau textOnly).
fixed
Boleh dipilih. Menentukan nilai tetap bagi elemen (hanya digunakan ketika konten elemen adalah tipe sederhana atau textOnly).
form
Pilihan. Bentuk elemen ini. Nilai default adalah nilai atribut elementFormDefault elemen schema yang mengandung atribut ini. Nilai ini harus menjadi salah satu string berikut: "qualified" atau "unqualified".
Jika elemen induk adalah elemen schema, atribut ini tidak dapat digunakan.
- Jika nilai ini adalah "unqualified", elemen ini tidak perlu disebut dengan prefiks namespace.
- Jika nilai ini adalah "qualified", elemen ini harus disebut dengan prefiks namespace.
maxOccurs
Pilihan. Menentukan jumlah maksimum kemunculan elemen di dalam elemen induk. Nilai ini dapat berupa bilangan integer yang lebih besar atau sama dengan nol. Jika ingin tidak menentukan batas jumlah maksimum, gunakan string "unbounded". Nilai default adalah 1.
Jika elemen induk adalah elemen schema, atribut ini tidak dapat digunakan.
minOccurs
Pilihan. Menentukan jumlah minimum kemunculan elemen di dalam elemen induk. Nilai ini dapat berupa bilangan integer yang lebih besar atau sama dengan nol. Nilai default adalah 1.
Jika elemen induk adalah elemen schema, atribut ini tidak dapat digunakan.
nillable
Pilihan. Menunjukkan apakah nilai nol eksplisit dapat ditetapkan untuk elemen ini. Ini berlaku untuk konten elemen dan bukan atribut elemen. Nilai default adalah false.
Jika nillable adalah true, maka instansi elemen ini dapat menetapkan atribut nil menjadi true. Atribut nil didefinikan sebagai bagian dari namespace XML schema instansia.
Contohnya, bab berikut mendefinisikan elemen tunggal dan mengatur nillable menjadi true.
<xs:element name="myDate" type="xs:date" nillable="true"/>
Bab berikut menggunakan elemen ini dan memiliki nilai nol eksplisit (nilai atribut nil diatur menjadi true).
<myDate xsi:nil="true"></myDate>
abstract
Pilihan. Menunjukkan apakah elemen dapat digunakan dalam dokumen instansia. Jika nilai ini adalah true, elemen ini tidak boleh muncul dalam dokumen instansia. Sebaliknya, elemen lain yang memiliki QName (QName) yang ditentukan dalam atribut substitutionGroup harus muncul di posisi elemen ini. Beberapa elemen dapat diacu dalam atribut substitutionGroup. Nilai default adalah false.
block
Pilihan. Tipe turunan. Atribut block menghalangi elemen yang memiliki tipe turunan yang ditentukan untuk digunakan untuk menggantikan elemen ini. Nilai ini dapat mengandung #all atau daftar, daftar ini adalah turunan dari extension, restriction, atau substitution:
- extension - untuk mencegah elemen yang berasal dari ekspansi digunakan untuk menggantikan elemen ini.
- restriction - Mencegah elemen turunan yang dihalangi untuk digantikan elemen ini.
- substitution - Mencegah elemen turunan yang digantikan untuk digantikan elemen ini.
- #all - Mencegah semua elemen turunan untuk digantikan elemen ini.
final
Pilihan. Tetapkan nilai baku atribut final elemen. Jika elemen induk bukan elemen schema, atribut ini tidak dapat digunakan. Nilai ini dapat berisi #all atau daftar, yang adalah subset dari extension atau restriction:
- extension - Mencegah elemen turunan yang dijalankan untuk digantikan elemen ini
- restriction - Mencegah elemen turunan yang dihalangi untuk digantikan elemen ini
- #all - Mencegah semua elemen turunan untuk digantikan elemen ini
atribut mana saja
Pilihan. Tentukan setiap atribut lain yang memiliki namespace non-schema.
Contoh
Contoh 1
Contoh di bawah adalah schema yang memiliki empat elemen sederhana: "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 kompleks "note". 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 atribut 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>