XML Schema Element Element

Definition and Usage

The element element defines an element.

Element Information

Occurrence The number of elements defined in the schema.
Parent Element schema, choice, all, sequence
Content simpleType, complexType, key, keyref, unique

Syntax

<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))
jegliche Attribute
>
annotation?,((simpleType|complexType)?,(unique|key|keyref)*))
</element>

(The ? symbol declares that the element can appear zero or once, and the * symbol declares that the element can appear zero or more times.)

Attribute

id

Optional. Specifies a unique ID for the element.

name

Optional. Specifies the name of the element. This attribute is required if the parent element is a schema element.

ref

Optional. Refers to another element. The ref attribute can include a namespace prefix. This attribute is not used if the parent element is a schema element.

type

Optional. Specifies the name of an intrinsic data type, or the name of a simpleType or complexType element.

substitutionGroup

Optional. Specifies the name of an element that can be used as a substitute for the current element. This element must have the same type or a type derived from the specified element type.

This attribute cannot be used if the parent element is not a schema element.

default

Optional. Specifies a default value for the element (to be used only when the element content is of a simple type or textOnly).

fixed

Optional. Specifies a fixed value for the element (to be used only when the element content is of a simple type or textOnly).

form

Optional. Die Form des Elements. Standardwert ist der Wert der elementFormDefault-Eigenschaft des Schema-Elements, das diese Eigenschaft enthält. Der Wert muss einer der folgenden Strings sein: "qualified" oder "unqualified".

Diese Eigenschaft kann nicht verwendet werden, wenn das übergeordnete Element das schema-Element ist.

  • Wenn dieser Wert "unqualified" ist, muss das Element nicht durch ein Namensraumpräfix eingeschränkt werden.
  • Wenn dieser Wert "qualified" ist, muss das Element durch einen Namensraumpräfix eingeschränkt werden.

maxOccurs

Optional. Regelt die maximale Anzahl der Ausgaben des element-Elements im übergeordneten Element. Der Wert kann eine natürliche Zahl sein, die größer oder gleich null ist. Wenn keine Begrenzung der maximalen Anzahl erforderlich ist, verwenden Sie den String "unbounded". Standardwert ist 1.

Diese Eigenschaft kann nicht verwendet werden, wenn das übergeordnete Element das schema-Element ist.

minOccurs

Optional. Regelt die minimale Anzahl der Ausgaben des element-Elements im übergeordneten Element. Der Wert kann eine natürliche Zahl sein, die größer oder gleich null ist. Standardwert ist 1.

Diese Eigenschaft kann nicht verwendet werden, wenn das übergeordnete Element das schema-Element ist.

nillable

Optional. Zeigt an, ob einem Element ein expliziter Nullwert zugewiesen werden kann. Dies gilt für den Inhalt des Elements und nicht für das Attribut des Elements. Standardwert ist false.

Wenn nillable auf true gesetzt ist, kann der Instance des Elements das nil-Attribut auf true setzen. Das nil-Attribut wird als Teil der XML-Schema-Namespace-Namensräume der Instanz definiert.

Zum Beispiel definiert der nächste Abschnitt ein einzelnes Element und setzt nillable auf true.

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

Das nächste Abschnitt verwendet dieses Element und hat einen expliziten Nullwert (nil-Attribut auf true gesetzt).

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

abstract

Optional. Zeigt an, ob das Element im Instanzdokument verwendet werden kann. Wenn der Wert true ist, darf das Element nicht im Instanzdokument auftreten. Im Gegensatz dazu muss das Element, das die QName des Elements im substitutionGroup-Attribut enthält, an der Stelle des Elements auftreten. Mehrere Elemente können das Element im substitutionGroup-Attribut referenzieren. Standardwert ist false.

block

Optional. Abgeleiteter Typ. Die block-Eigenschaft verhindert, dass Elemente mit der angegebenen abgeleiteten Typbezeichnung verwendet werden, um das Element zu ersetzen. Der Wert kann #all oder eine Liste enthalten, die eine Teilmenge von extension, restriction oder substitution ist:

  • Verhindert, dass durch Erweiterungen abgeleitete Elemente verwendet werden, um das Element zu ersetzen.
  • restriction - Verhindert, dass durch Einschränkung abgeleitete Elemente als Ersatz für dieses Element verwendet werden.
  • substitution - Verhindert, dass durch Substitution abgeleitete Elemente als Ersatz für dieses Element verwendet werden.
  • #all - Verhindert, dass alle abgeleiteten Elemente als Ersatz für dieses Element verwendet werden.

final

Optional. Setzt die Standardwerte für das Attribut final des Elementes. Wenn das übergeordnete Element nicht das Schema-Element ist, kann dieses Attribut nicht verwendet werden. Der Wert kann #all oder eine Liste enthalten, die aus einer Sammlung von extension oder restriction besteht:

  • extension - Verhindert, dass durch Erweiterung abgeleitete Elemente als Ersatz für dieses Element verwendet werden
  • restriction - Verhindert, dass durch Einschränkung abgeleitete Elemente als Ersatz für dieses Element verwendet werden
  • #all - Verhindert, dass alle abgeleiteten Elemente als Ersatz für dieses Element verwendet werden

jegliche Attribute

Optional. Definiert alle anderen Attribute mit non-schema Namensräumen.

Beispiel

Beispiel 1

Das folgende Beispiel ist ein Schema, das vier einfache Elemente enthält: "fname", "lname", "age" und "dateborn", deren Typen string, nonNegativeInteger und date sind:

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

Beispiel 2

Das folgende Beispiel ist ein Schema mit einem Element der komplexen Typ "note", das vier einfache Elemente enthält: "to", "from", "heading" und "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>

Beispiel 3

Dieser Beispiel ist dem Beispiel 2 ähnlich, aber in diesem Beispiel wählen wir die Verwendung der ref-Attribut, um auf den Elementnamen zu verweisen:

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