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>