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>