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|list of (extension|restriction))
final=(#all|list of (extension|restriction))
herhangi bir özellik
>
annotation?,((simpleType|complexType)?,(unique|key|keyref)*))
</element>

(? sembolü element içinde belirtilir, bu element sıfır veya bir kez çıkabilir, * sembolü belirtilen element sıfır veya birden fazla kez çıkabilir.)

Özellik

id

Seciştir. Bu element'in benzersiz ID'sini belirtir.

name

Seciştir. Elementin adını belirtir. Ebeveyn element schema element ise, bu özellik zorunludur.

ref

Seciştir. Başka bir elemente olan atıf. ref özelliği bir ad alan ön eki içerebilir. Ebeveyn element schema element ise, bu özellik kullanılmaz.

type

Seciştir. İçerik türünün adını belirtir veya simpleType veya complexType elementinin adını belirtir.

substitutionGroup

Seciştir. Bu element'in yerine kullanılabilir element'in adını belirler. Bu element, aynı türde veya belirtilen element türünden türetilmiş türde olmalıdır.

Ebeveyn element schema element değilse, bu özellik kullanılamaz.

default

Seciştir. Element için varsayılan bir değer belirtir (sadece element içeriği basit tür veya textOnly ise kullanılır).

fixed

Seciştir. Element için sabit bir değer belirtir (sadece element içeriği basit tür veya textOnly ise kullanılır).

form

Seciştir. Bu element'in formu. Varsayılan değeri, bu özelliğe sahip schema elementinin elementFormDefault özelliğinin değeri içerir. Bu değer, aşağıdaki dizgelerden biri olmalıdır: "qualified" veya "unqualified".

Eğer ebeveyn eleman schema elemanı ise, bu özellik kullanılamaz.

  • Bu değer "unqualified" ise, element için bir ad alan ön eki ile belirtilmez.
  • Bu değer "qualified" ise, element için bir ad alan ön eki ile belirtilmelidir.

maxOccurs

Seciştir. Element element'in ebeveyn element içinde çıkabileceği maksimum sayıyı belirler. Bu değer, sıfır veya daha büyük olan bir tam sayı olabilir. Maksimum sayıya herhangi bir sınırlama koymak istemezseniz, "unbounded" dizgesini kullanın. Varsayılan değeri 1'dir.

Eğer ebeveyn eleman schema elemanı ise, bu özellik kullanılamaz.

minOccurs

Seçmeli. Elementin ebeveyn elemanında görünebilecek en küçük sayıyı belirler. Bu değer, sıfırdan büyük veya eşit olan bir tamsayıdır. Varsayılan değeri 1'dir.

Eğer ebeveyn eleman schema elemanı ise, bu özellik kullanılamaz.

nillable

Seçmeli. Elemana açıkça sıfır değeri atlanabilir mi? Bu madde, elemanın içeriğine uygulanır ve bu elemanın özelliği değildir. Varsayılan değeri false'dır.

Eğer nillable true ise, bu elemanın örneği nil özelliğini true olarak ayarlayabilir. Nil özelliği, örneğin XML şeması namespace'inin bir parçası olarak tanımlanmıştır.

Örneğin, bu alt segment, tek bir eleman tanımlar ve nillable özelliğini true olarak ayarlar.

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

Bu alt segment, bu elemanı kullanır ve açıkça sıfır değeri (nil özelliği true olarak ayarlanır).

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

abstract

Seçmeli. Elemanın, örnek belgede kullanılabilir olup olmayacağını belirtir. Bu değeri true olarak ayarlanırsa, eleman örnek belgede görünemez. Aksine, substitutionGroup özelliği, bu elemanın belirli adlandırma (QName) içeren diğer elemanları, bu elemanın yerine görünmesini sağlar. Çok sayıda eleman, substitutionGroup özelliğinde bu elemana atıfta bulunabilir. Varsayılan değeri false'dır.

block

Seçmeli. Türetilen tür. Block özelliği, belirtilen türetilen türdeki elemanların bu elemanın yerine kullanılmalarını önler. Bu değer #all veya bir liste içerebilir, bu liste extension, restriction veya substitution'ın alt kısımlarıdır:

  • extension - Türetilen elemanların yerine kullanılmalarını önler.
  • restriction - Türetilen elemanların yerine kullanılmalarını önler.
  • substitution - Türetilen elemanların yerine kullanılmalarını önler.
  • #all - Tüm türetilen elemanların bu elemanın yerine kullanılmalarını önler.

final

Seçmeli. Element elemanının final özelliğinin varsayılan değerini ayarlar. Eğer ebeveyn eleman schema elemanı değilse, bu özellik kullanılamaz. Bu değer #all veya bir liste içerebilir, bu liste extension veya restriction'ın alt kısımlarıdır:

  • extension - Bu elementin türetilmiş elementlerinin bu elementin yerine kullanılmasını önler
  • restriction - Bu elementin türetilmiş elementlerinin bu elementin yerine kullanılmasını önler
  • #all - Bu elementin türetilmiş tüm elementlerinin bu elementin yerine kullanılmasını önler

herhangi bir özellik

Opsiyonel. Non-schema adlı alan adına sahip herhangi bir diğer özelliği belirtir.

Örnek

Örnek 1

Aşağıdaki örnek, "fname", "lname", "age" ve "dateborn" dört basit elementi içeren ve türleri string, nonNegativeInteger ve date olan bir schema'dır:

<?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>

Örnek 2

Aşağıdaki örnek, "note" adlı karmaşık türdeki bir element içeren bir schema'dır. "note" elementi, "to", "from", "heading" ve "body" dört basit elementi içerir:

<?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>

Örnek 3

Bu örnek, örnek 2 ile aynıdır, ancak bu örnekte, element adlarını referanslamak için ref özelliğini kullanmayı seçiyoruz:

<?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>