Element element schematu XML

Definicja i użycie

Element element definiuje element.

Informacje o elemencie

Liczba wystąpień Liczba elementów zdefiniowanych w strukturze.
Element nadrzędny schema, choice, all, sequence
Zawartość simpleType, complexType, key, keyref, unique

Gramatyka

<element
id=ID 
name=NCName
ref=QName
type=QName
substitutionGroup=QName
default=string
fixed=string
form=qualified|unqualified
maxOccurs=nonNegativeInteger|nieograniczony
minOccurs=nonNegativeInteger
nillable=true|false
abstract=true|false 
block=(#all|lista (rozszerzenia|ograniczenia))
final=(#all|lista (rozszerzenia|ograniczenia))
Każde atrybuty
>
annotation?,((simpleType|complexType)?,(unique|key|keyref)*))
</element>

(? Symbol deklarowany w elemencie element, który może występować zero lub jeden raz, * Symbol deklaruje element, który może występować zero lub wiele razy).

Atrybut

id

Dostępny. Określa unikalny ID elementu.

name

Dostępny. Określa nazwę elementu. Jeśli element nadrzędny jest elementem schema, ten atrybut jest obowiązkowy.

ref

Dostępny. Wskazuje na inny element. Atrybut ref może zawierać prefiks przestrzeni nazw. Jeśli element nadrzędny jest elementem schema, nie używa się tego atrybutu.

type

Dostępny. Określa nazwę wbudowanego typu danych, lub nazwę elementu simpleType lub complexType.

substitutionGroup

Dostępny. Określa nazwę elementu, który może zastąpić ten element. Element musi mieć ten sam typ lub być typem pochodnym od określonego elementu.

Nie można używać tej atrybutu, jeśli element nadrzędny nie jest elementem schema.

default

Dostępny. Określa wartość domyślną elementu (używane tylko, gdy zawartość elementu jest typem prostym lub textOnly).

fixed

Dostępny. Określa stałą wartość elementu (używane tylko, gdy zawartość elementu jest typem prostym lub textOnly).

form

opcjonalny. Forma elementu. Domyślna wartość to wartość atrybutu elementFormDefault zawartego w elemencie szkieletu, który zawiera atrybut. Wartość musi być jednym z poniższych ciągów znaków: "qualified" lub "unqualified".

Nie można używać tego atrybutu, jeśli rodzic jest elementem schema.

  • Jeśli wartość wynosi "unqualified", element nie musi być ograniczony prefiksem przestrzeni nazw.
  • Jeśli wartość wynosi "qualified", element musi być ograniczony prefiksem przestrzeni nazw.

maxOccurs

opcjonalny. Określa maksymalną liczbę wystąpień elementu w rodzicu. Wartość może być całkowitą liczbą większą lub równą zero. Jeśli nie ma ograniczenia maksymalnej liczby wystąpień, użyj ciąg literek "unbounded". Domyślna wartość to 1.

Nie można używać tego atrybutu, jeśli rodzic jest elementem schema.

minOccurs

opcjonalny. Określa minimalną liczbę wystąpień elementu w rodzicu. Wartość może być całkowitą liczbą większą lub równą zero. Domyślna wartość to 1.

Nie można używać tego atrybutu, jeśli rodzic jest elementem schema.

nillable

opcjonalny. Indyfikator, czy można przypisać wyraźną wartość zerową temu elementowi. Dotyczy treści elementu, a nie jego atrybutów. Domyślna wartość to false.

Jeśli nillable wynosi true, instancja elementu może ustawić atrybut nil na true. Atrybut nil jest zdefiniowany jako część przestrzeni nazw XML szkieletu.

Na przykład, następny odcinek definiuje pojedynczy element, jednocześnie ustawiając nillable na true.

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

Następny odcinek używa tego elementu i ma wyraźną wartość zerową (wartość nil ustawiona na true).

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

abstract

opcjonalny. Indyfikator, czy element może być używany w dokumencie instancji. Jeśli wartość wynosi true, element nie może się pojawiać w dokumencie instancji. W przeciwnym razie, inne elementy zawierające QName ograniczający tego elementu w atrybucie substitutionGroup muszą się pojawiać w jego miejscu. Wiele elementów może odnosić się do tego elementu w atrybucie substitutionGroup. Domyślna wartość to false.

block

opcjonalny. Typ pochodny. Atrybut block zapobiega używaniu elementów o określonym typie pochodnym do zastępowania tego elementu. Wartość może zawierać #all lub listę, która jest podzbiorem rozszerzenia, ograniczenia lub zastąpienia:

  • rozszerzenie - zapobiega używaniu elementów pochodnych z rozszerzenia do zastępowania tego elementu.
  • restriction - zapobiega użyciu pochodnych elementów ograniczonych do zastąpienia tego elementu.
  • substitution - zapobiega użyciu pochodnych elementów zastępowujących do zastąpienia tego elementu.
  • #all - zapobiega użyciu wszystkich pochodnych elementów do zastąpienia tego elementu.

final

Opcjonalne. Ustawia domyślną wartość atrybutu final elementu. Jeśli rodzic nie jest elementem schema, nie można użyć tej właściwości. Wartość może zawierać #all lub listę, która jest podzbiorem extension lub restriction:

  • extension - zapobiega użyciu pochodnych elementów rozszerzonych do zastąpienia tego elementu
  • restriction - zapobiega użyciu pochodnych elementów ograniczonych do zastąpienia tego elementu
  • #all - zapobiega użyciu wszystkich pochodnych elementów do zastąpienia tego elementu

Każde atrybuty

Opcjonalne. Określa wszystkie inne atrybuty z non-schema命名空间。

Przykład

Przykład 1

Poniższy przykład to schema zawierające cztery proste elementy: "fname", "lname", "age" oraz "dateborn", typy to string, nonNegativeInteger oraz 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>

Przykład 2

Poniższy przykład to schema zawierające element o złożonym typie "note", który zawiera cztery proste elementy: "to", "from", "heading" oraz "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>

Przykład 3

W tym przykładzie jest podobny do przykładu 2, ale w tym przypadku wybieramy użycie atrybutu ref do odniesienia się do nazwy elementu:

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