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

(Simbol ? menyatakan bahwa elemen dapat muncul nol atau satu kali, simbol * menyatakan bahwa elemen dapat muncul nol atau beberapa kali.)

Atribut

id

Pilihan. Tentukan ID unik elemen ini.

name

Pilihan. Tentukan nama elemen. Jika elemen induk adalah elemen schema, maka atribut ini wajib digunakan.

ref

Pilihan. Referensi ke elemen lain. Atribut ref dapat mengandung awalan namespace. Jika elemen induk adalah elemen schema, maka atribut ini tidak digunakan.

type

Pilihan. Tentukan nama tipe bawaan, atau tentukan nama elemen simpleType atau complexType.

substitutionGroup

Pilihan. Tentukan nama elemen yang dapat digantikan elemen ini. Elemen ini harus memiliki tipe yang sama atau turunan dari tipe elemen yang ditentukan.

Jika elemen induk bukan elemen schema, maka atribut ini tidak dapat digunakan.

default

Pilihan. Tentukan nilai standar untuk elemen (hanya digunakan saat konten elemen adalah tipe sederhana atau textOnly).

fixed

Pilihan. Tentukan nilai tetap untuk elemen (hanya digunakan saat konten elemen adalah tipe sederhana atau textOnly).

form

Pilihan. Bentuk elemen ini. Nilai standar 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", maka elemen ini tidak perlu ditentukan dengan awalan namespace.
  • Jika nilai ini adalah "qualified", maka elemen ini harus ditentukan dengan awalan namespace.

maxOccurs

Pilihan. Tentukan jumlah maksimal penampilan elemen element dalam elemen induk. Nilai ini dapat berupa bilangan bulat yang lebih besar atau sama dengan nol. Jika ingin menentukan batas maksimal penampilan tanpa batasan apapun, gunakan string "unbounded". Nilai standar adalah 1.

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

minOccurs

Pilihan. Tentukan frekuensi minimum penampilan elemen element dalam elemen induk. Nilai ini dapat berupa bilangan bulat 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 disetel untuk elemen ini. Ini berlaku untuk konten elemen dan bukan atribut elemen. Nilai defaultnya adalah false.

Jika nillable adalah true, instansia elemen ini dapat mengatur atribut nil menjadi true. Atribut nil didefinikan sebagai bagian dari namespace XML schema instance.

Contohnya, bagian berikut mendefinisikan elemen tunggal dan mengatur nillable menjadi true.

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

Bagian berikut menggunakan elemen ini dan memiliki nilai nol yang ekspresi (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 dapat muncul dalam dokumen instansia. Sebaliknya, elemen lain yang mengandung QName yang ditentukan oleh atribut substitutionGroup harus muncul di posisi elemen ini. Banyak elemen dapat mengutip elemen ini di atribut substitutionGroup. 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 subset dari extension, restriction, atau substitution:

  • extension - Mencegah elemen turunan digunakan untuk menggantikan elemen ini melalui ekspansi.
  • restriction - Mencegah elemen turunan digunakan untuk menggantikan elemen ini melalui restriksi.
  • substitution - Mencegah elemen turunan digunakan untuk menggantikan elemen ini melalui substitusi.
  • #all - Mencegah semua elemen turunan digunakan untuk menggantikan elemen ini.

final

Pilihan. Setel nilai bawaan atribut final elemen element. Jika elemen induk bukan elemen schema, atribut ini tidak dapat digunakan. Nilai ini dapat mengandung #all atau daftar, daftar ini adalah subset dari extension atau restriction:

  • extension - Mencegah elemen turunan yang dihadirkan melalui ekspansi untuk digantikan elemen ini
  • restriction - Mencegah elemen turunan yang dihadirkan melalui batasan untuk digantikan elemen ini
  • #all - Mencegah semua elemen turunan untuk digantikan elemen ini

attributes apapun

Pilihan. Menentukan atribut lain yang memiliki namespace non-schema.

Contoh

Contoh 1

Contoh di bawah ini adalah schema yang memiliki empat elemen: "fname", "lname", "age" dan "dateborn", tipe adalah string, nonNegativeInteger dan 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 memiliki elemen tipe kompleks "note", elemen "note" mengandung empat elemen sederhana: "to", "from", "heading" dan "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>