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=interoNonNegativo nillable=true|false abstract=true|false block=(#all|lista di (extension|restriction)) final=(#all|lista di (extension|restriction)) ogni attributo > annotation?,((simpleType|complexType)?,(unique|key|keyref)*)) </element>
(? Il simbolo dichiarato nell'elemento element può apparire zero o una volta, * Il simbolo dichiarato può apparire zero o più volte.)
Attributi
id
Opzionale. Stabilisce l'ID unico dell'elemento.
name
Opzionale. Stabilisce il nome dell'elemento. Se l'elemento padre è un elemento schema, questo attributo è obbligatorio.
ref
Opzionale. Riferimento a un altro elemento. L'attributo ref può includere un prefisso di namespace. Se l'elemento padre è un elemento schema, non deve utilizzare questo attributo.
type
Opzionale. Stabilisce il nome del tipo dati built-in o il nome dell'elemento simpleType o complexType.
substitutionGroup
Opzionale. Stabilisce il nome dell'elemento che può sostituire questo elemento. L'elemento deve avere lo stesso tipo o deve essere derivato dal tipo specificato.
L'attributo non può essere utilizzato se l'elemento padre non è un elemento schema.
default
Opzionale. Stabilisce un valore predefinito per l'elemento (da utilizzare solo quando il contenuto dell'elemento è di tipo semplice o textOnly).
fixed
Opzionale. Stabilisce un valore fisso per l'elemento (da utilizzare solo quando il contenuto dell'elemento è di tipo semplice o textOnly).
form
Opzionale. La forma dell'elemento. Il valore predefinito è il valore dell'attributo elementFormDefault dell'elemento schema che contiene l'attributo. Il valore deve essere una delle seguenti stringhe: "qualified" o "unqualified".
Se l'elemento padre è un elemento schema, non è possibile utilizzare questo attributo.
- Se il valore è "unqualified", non è necessario limitare l'elemento con un prefisso di namespace.
- Se il valore è "qualified", l'elemento deve essere limitato con un prefisso di namespace.
maxOccurs
Opzionale. Stabilisce il numero massimo di volte in cui l'elemento element può apparire all'interno dell'elemento padre. Il valore può essere un intero non negativo o uguale a zero. Se non si desidera impostare alcun limite sul numero massimo, utilizzare la stringa "unbounded". Il valore predefinito è 1.
Se l'elemento padre è un elemento schema, non è possibile utilizzare questo attributo.
minOccurs
Opzionale. Regola il numero minimo di volte in cui l'elemento element può apparire nel padre. Il valore può essere un intero maggiore o uguale a zero. Il valore predefinito è 1.
Se l'elemento padre è un elemento schema, non è possibile utilizzare questo attributo.
nillable
Opzionale. Indica se può essere assegnato un valore nullo esplicito a questo elemento. Questa opzione si applica al contenuto dell'elemento e non è un attributo dell'elemento. Il valore predefinito è false.
Se nillable è true, il'istanza dell'elemento può impostare l'attributo nil su true. L'attributo nil è definito come parte dello spazio dei nomi XML dell'istanza.
Ad esempio, il seguente segmento definisce un singolo elemento e imposta nillable su true.
<xs:element name="myDate" type="xs:date" nillable="true"/>
Il seguente segmento utilizza questo elemento e ha un valore nullo esplicito (l'attributo nil impostato su true).
<myDate xsi:nil="true"></myDate>
abstract
Opzionale. Indica se l'elemento può essere utilizzato nel documento di istanza. Se il valore è true, l'elemento non può apparire nel documento di istanza. Al contrario, gli elementi che contengono il QName delimitato dell'elemento nella proprietà substitutionGroup devono apparire nella posizione dell'elemento. Più elementi possono riferirsi a questo elemento nella proprietà substitutionGroup. Il valore predefinito è false.
block
Opzionale. Tipo derivato. L'attributo block impedisce che l'elemento con il tipo derivato specificato venga utilizzato per sostituire questo elemento. Il valore può includere #all o una lista, che è un sottoinsieme di extension, restriction o substitution:
- extension - Evita che gli elementi derivati estesi vengano utilizzati per sostituire questo elemento.
- restriction - Evita che gli elementi derivati limitati vengano utilizzati per sostituire questo elemento.
- substitution - Evita che gli elementi derivati sostitutivi vengano utilizzati per sostituire questo elemento.
- #all - Evita che tutti gli elementi derivati vengano utilizzati per sostituire questo elemento.
final
Opzionale. Imposta il valore predefinito dell'attributo final dell'elemento element. Se l'elemento padre non è un elemento schema, non è possibile utilizzare questo attributo. Il valore può includere #all o una lista, che è un sottoinsieme di extension o restriction:
- extension - Evita che gli elementi derivati tramite estensione sostituiscano questo elemento
- restriction - Evita che gli elementi derivati tramite restrizione sostituiscano questo elemento
- #all - Evita che tutti gli elementi derivati sostituiscano questo elemento
ogni attributo
Opzionale. Specifica qualsiasi altra proprietà con uno spazio dei nomi non schema.
Esempio
Esempio 1
L'esempio seguente è uno schema che contiene quattro elementi semplici: "fname", "lname", "age" e "dateborn", i cui tipi sono string, nonNegativeInteger e 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>
Esempio 2
L'esempio seguente è uno schema con un elemento di tipo complesso "note" che contiene quattro elementi semplici: "to", "from", "heading" e "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>
Esempio 3
Questo esempio è lo stesso dell'esempio 2, ma in questo esempio scegliamo di utilizzare l'attributo ref per riferirci al nome dell'elemento:
<?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>