Elemento Schema XML
Definizione e uso
L'elemento element definisce un elemento.
Informazioni sull'elemento
Frequenza di apparizione | Numero di elementi definiti nell'architettura. |
Padre dell'elemento | schema, choice, all, sequence |
Contenuto | simpleType, complexType, key, keyref, unique |
Sintassi
<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|lista di (extension|restriction)) final=(#all|lista di (extension|restriction)) qualsiasi attributi > annotation?,((simpleType|complexType)?,(unique|key|keyref)*)) </element>
(Il simbolo ? dichiara nell'elemento element, che può apparire zero o una volta, il simbolo * dichiara che l'elemento può apparire zero o più volte.).
Attributo
id
Opzionale. Stabilisce un ID unico per l'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 utilizzare questa proprietà.
type
Opzionale. Stabilisce il nome del tipo dati integrato, o il nome dell'elemento simpleType o complexType.
substitutionGroup
Opzionale. Stabilisce il nome dell'elemento che può essere utilizzato per sostituire questo elemento. L'elemento deve avere lo stesso tipo o un tipo derivato dal tipo specificato.
Non è possibile utilizzare questa proprietà 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 del elemento schema che contiene l'attributo. Il valore deve essere una delle seguenti stringhe: "qualified" o "unqualified".
Se l'elemento padre è lo schema, non può essere utilizzato questo attributo.
- Se il valore è "unqualified", l'elemento non deve essere qualificato tramite prefisso di namespace.
- Se il valore è "qualified", l'elemento deve essere qualificato tramite prefisso di namespace.
maxOccurs
opzionale. determina il numero massimo di volte che l'elemento element può apparire nel padre. Il valore può essere un intero maggiore 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 è lo schema, non può essere utilizzato questo attributo.
minOccurs
opzionale. determina il numero minimo di volte che 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 è lo schema, non può essere utilizzato 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, l'istanza dell'elemento può impostare l'attributo nil su true. L'attributo nil è definito come parte dello spazio dei nomi del modello 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>
astratto
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, l'attributo substitutionGroup contiene l'elemento con il nome qualificato (QName) dell'elemento deve apparire nella posizione dell'elemento. Più elementi possono fare riferimento a questo elemento nel suo attributo substitutionGroup. Il valore predefinito è false.
block
opzionale. tipo derivato. l'attributo block impedisce agli elementi con un tipo derivato specificato di essere utilizzati per sostituire l'elemento. Il valore può contenere #all o una lista, che è un sottoinsieme di extension, restriction o substitution:
- estensione - prevenire che gli elementi derivati dall'estensione vengano utilizzati per sostituire l'elemento.
- restriction - Impedisce che gli elementi derivati attraverso restrizioni sostituiscano questo elemento.
- substitution - Impedisce che gli elementi derivati attraverso sostituzione sostituiscano questo elemento.
- #all - Impedisce che tutti gli elementi derivati sostituiscano questo elemento.
final
Opzionale. Imposta il valore predefinito dell'attributo final dell'elemento. Se il padre non è un elemento schema, non può essere utilizzato questo attributo. Il valore può includere #all o una lista che è sottoinsieme di extension o restriction:
- extension - Impedisce che gli elementi derivati attraverso estensioni sostituiscano questo elemento
- restriction - Impedisce che gli elementi derivati attraverso restrizioni sostituiscano questo elemento
- #all - Impedisce che tutti gli elementi derivati sostituiscano questo elemento
qualsiasi attributi
Opzionale. Specifica qualsiasi altra proprietà con namespace non schema.
Esempio
Esempio 1
Esempio seguente è uno schema con quattro elementi semplici: "fname", "lname", "age" e "dateborn", i cui tipi sono stringa, 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
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 abbiamo scelto 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>