Element Schema XML

Definisi dan penggunaan

Elemen element mendefinisikan elemen.

Informasi elemen

Kali muncul Jumlah elemen yang didefinisikan dalam arsitektur.
Elemen induk schema, choice, all, sequence
Konten simpleType, complexType, key, keyref, unique

Gramata

<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|daftar (extension|restriction))
final=(#all|daftar (extension|restriction))
atribut apa saja
>
annotation?,((simpleType|complexType)?,(unique|key|keyref)*))
</element>

(Simbol ? menyatakan di dalam elemen element, elemen ini dapat muncul nol kali atau sekali, simbol * menyatakan elemen dapat muncul nol kali atau beberapa kali).

Properti

id

Boleh dipilih. Menentukan ID unik bagi elemen ini.

name

Boleh dipilih. Menentukan nama elemen. Jika elemen induk adalah elemen schema, maka properti ini wajib digunakan.

ref

Boleh dipilih. Referensi ke elemen lain. Properti ref dapat mengandung prefiks namespace. Jika elemen induk adalah elemen schema, maka properti ini tidak digunakan.

type

Boleh dipilih. Menentukan nama tipe data baku, atau menentukan nama elemen simpleType atau complexType.

substitutionGroup

Boleh dipilih. Menentukan nama elemen yang dapat digunakan untuk menggantikan elemen ini. Elemen ini harus memiliki tipe yang sama atau turunannya dari tipe yang ditentukan.

Tidak dapat digunakan properti ini jika elemen induk bukan elemen schema.

default

Boleh dipilih. Menentukan nilai baku bagi elemen (hanya digunakan saat konten elemen adalah tipe sederhana atau textOnly).

fixed

Boleh dipilih. Menentukan nilai tetap bagi elemen (hanya digunakan saat konten elemen adalah tipe sederhana atau textOnly).

form

Pilihan. Bentuk elemen ini. Nilai defaultnya adalah nilai atribut elementFormDefault elemen schema yang mengandung atribut ini. Nilai ini harus berupa 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 ditandai dengan prefix namespace.
  • Jika nilai ini adalah "qualified", elemen ini harus ditandai dengan prefix namespace.

maxOccurs

Pilihan. Menentukan jumlah maksimum penampilan elemen di dalam elemen induk. Nilai ini dapat berupa bilangan integer yang lebih besar atau sama dengan nol. Jika tidak ingin menetapkan batasan untuk jumlah maksimum, gunakan string "unbounded". Nilai defaultnya adalah 1.

Jika elemen induk adalah elemen schema, atribut ini tidak dapat digunakan.

minOccurs

Pilihan. Menentukan jumlah minimum penampilan elemen di dalam elemen induk. Nilai ini dapat berupa bilangan integer yang lebih besar atau sama dengan nol. Nilai defaultnya adalah 1.

Jika elemen induk adalah elemen schema, atribut ini tidak dapat digunakan.

nillable

Pilihan. Menunjukkan apakah nilai nol yang ekspresi dapat ditetapkan untuk elemen ini. Ini berlaku untuk konten elemen dan bukan atribut elemen. Nilai defaultnya adalah false.

Jika nillable adalah true, instansiasi elemen ini dapat menetapkan atribut nil ke true. Atribut nil didefinikan sebagai bagian dari namespace XML schema instansiasi.

Contohnya, bab berikut mendefinisikan elemen tunggal dan mengatur nillable ke true.

<xs:element name="myDate" type="xs:date" nillable="true"/>

Bab berikut menggunakan elemen ini dan memiliki nilai nol yang jelas (nilai atribut nil diatur ke true).

<myDate xsi:nil="true"></myDate>

abstract

Pilihan. Menunjukkan apakah elemen dapat digunakan dalam dokumen instansiasi. Jika nilai ini adalah true, elemen ini tidak dapat muncul dalam dokumen instansiasi. Sebaliknya, elemen lain yang mengandung QName yang ditentukan oleh atribut substitutionGroup harus muncul di posisi elemen ini. Beberapa elemen dapat diambil di dalam atribut substitutionGroup elemen ini. Nilai defaultnya adalah false.

block

Pilihan. Tipe turunan. Atribut block mencegah elemen yang memiliki tipe turunan yang ditentukan digunakan untuk menggantikan elemen ini. Nilai ini dapat mengandung #all atau daftar, daftar ini adalah turunan ekspansi, restriksi, atau penggantian:

  • extension - mencegah elemen yang berasal dari ekspansi digunakan untuk menggantikan elemen ini.
  • restriction - Mencegah elemen turunan yang diatur untuk digunakan untuk menggantikan elemen ini.
  • substitution - Mencegah elemen turunan yang digantikan untuk digunakan untuk menggantikan elemen ini.
  • #all - Mencegah semua elemen turunan untuk digunakan untuk menggantikan elemen ini.

final

Pilihan. Menetapkan nilai default atribut final elemen. Jika elemen induk bukan elemen schema, atribut ini tidak dapat digunakan. Nilai ini dapat berisi #all atau daftar, yang merupakan subset dari extension atau restriction:

  • extension - Mencegah elemen turunan yang dijalankan untuk digunakan untuk menggantikan elemen ini
  • restriction - Mencegah elemen turunan yang diatur untuk digunakan untuk menggantikan elemen ini
  • #all - Mencegah semua elemen turunan untuk digunakan untuk menggantikan elemen ini

atribut apa saja

Pilihan. Menentukan setiap atribut lain yang terdapat di luar namespace schema.

Instance

Contoh 1

Contoh di bawah ini adalah schema yang mempunyai empat elemen sederhana: "fname", "lname", "age" serta "dateborn", dengan tipe 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 ini adalah schema yang mempunyai elemen kompleks "note" yang 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 di contoh ini, kita 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>