Elemento <xsd:complexType>
Definisce un tipo complesso, che determina il set di attributi e il contenuto di un elemento.
<complexType
abstract = Boolean : false
block = (#all | List of (extension | restriction))
final = (#all | List of (extension | restriction))
id = ID
mixed = Boolean : false
name = NCName
{any attributes with non-schema Namespace...}>
Content: (annotation?, (simpleContent | complexContent | ((group | all |
choice | sequence)?, ((attribute | attributeGroup)*, anyAttribute?))))
</complexType>
Attributi
abstract
Indica se è possibile utilizzare il tipo complesso in un documento di istanza. Se ha valore true, non è possibile utilizzare direttamente questo tipo complesso in un elemento, ma è necessario utilizzarne uno derivato da questo. Il valore predefinito è false.Facoltativo.
block
Il tipo di derivazione. L'attributo block impedisce di utilizzare, al posto di questo tipo complesso, un tipo complesso dotato del tipo di derivazione specificato. Il valore può contenere #all o un elenco costituito da un sottoinsieme di estensione o restrizione. L'attributo block viene utilizzato solo quando, durante la convalida, un documento di istanza utilizza l'attributo schema-instance:type per eseguire l'override del tipo normale relativo a un elemento. L'attributo block impedisce agli elementi di selezionare i tipi complessi definiti attraverso l'estensione e/o la restrizione allo scopo di sostituire il tipo originale specificato per l'elemento.extension
Impedisce di utilizzare i tipi complessi derivati per estensione in sostituzione di questo tipo complesso.
restriction
Impedisce di utilizzare i tipi complessi derivati per restrizione in sostituzione di questo tipo complesso.
#all
Impedisce di utilizzare tutti i tipi complessi derivati in sostituzione di questo tipo complesso.
Facoltativo.
final
Il tipo di derivazione. L'attributo final impedisce il tipo di derivazione specificato per l'elemento complexType. Questo valore può contenere #all o un elenco che sia un sottoinsieme di extension o restriction.extension
Impedisce la derivazione per estensione.
restriction
Impedisce la derivazione per restrizione.
#all
Impedisce tutte le derivazioni (estensione e restrizione).
Facoltativo.
id
L'identificatore di questo elemento. Il valore id deve essere del tipo identificatore e deve essere univoco all'interno del documento che contiene questo elemento.Facoltativo.
mixed
Indica se è consentita la visualizzazione dei dati carattere tra gli elementi figlio di questo tipo complesso. Il valore predefinito è false.Se simpleContent è un elemento figlio, l'attributo mixed non è consentito.
Se complexContent è un elemento figlio, è possibile eseguire l'override di questo attributo mixed con l'attributo mixed dell'elemento complexContent.
Facoltativo.
name
Il nome del tipo. Il nome deve essere senza due punti (NCName) in base alla specifica dello spazio dei nomi XML.Obbligatorio se l'elemento contenitore è l'elemento schema, non consentito in caso contrario.
Se specificato, il nome deve essere univoco tra tutti gli elementi simpleType e complexType.
Facoltativo.
Informazioni sull'elemento
Numero di occorrenze |
Illimitato all'interno dello schema. Una volta all'interno dell'elemento. |
Elementi padre |
|
Contenuto |
annotation, simpleContent, complexContent, group, all, choice, sequence, attribute, attributeGroup, anyAttribute |
Osservazioni
Un tipo complesso è essenzialmente una definizione di tipo per elementi che possono contenere attributi ed elementi. È possibile dichiarare un elemento utilizzando un attributo type che si riferisce a un elemento complexType che ne definisce la struttura, il contenuto e gli attributi. Nell'attributo type di un elemento è anche possibile accettare un riferimento a un elemento simpleType.
Un tipo complesso può contenere uno solo dei seguenti elementi, che determina il tipo di contenuto consentito nel tipo complesso.
Elemento | Descrizione |
---|---|
simpleContent |
Il tipo complesso contiene dati carattere o un simpleType, non contiene alcun elemento, ma può contenere attributi. |
complexContent |
Il tipo complesso contiene solo elementi o non ha contenuto (vuoto). |
group |
Il tipo complesso contiene gli elementi definiti nel gruppo a cui si fa riferimento. |
sequence |
Il tipo complesso contiene gli elementi definiti nella sequenza specificata. |
choice |
Il tipo complesso consente uno degli elementi specificati nell'elemento choice. |
all |
Il tipo complesso consente di specificare una sola volta uno qualsiasi o tutti gli elementi specificati nell'elemento all. |
Se come elemento figlio si specifica group, sequence, choice o all, è possibile scegliere di dichiarare gli attributi relativi a complexType tramite i seguenti elementi.
Elemento | Descrizione |
---|---|
attribute |
Il tipo complesso contiene l'attributo specificato. |
attributeGroup |
Il tipo complesso contiene gli attributi definiti nell'attributeGroup a cui si fa riferimento. |
anyAttribute |
Il tipo complesso può contenere qualsiasi attributo proveniente dagli spazi dei nomi specificati. |
È possibile utilizzare qualsiasi numero di elementi attribute o attributeGroup. È anche possibile utilizzare un'istanza di anyAttribute.
Se si specifica group, sequence, choice o all, è necessario indicare tali elementi nell'ordine che segue.
group | sequence | choice | all
attribute | attributeGroup
anyAttribute
Esempi
Nell'esempio che segue viene illustrato un tipo complesso contenente un tipo semplice (decimal) con una dichiarazione di attributo e di elemento che utilizza un tipo complesso.
Nell'esempio seguente viene illustrata un'istanza dell'elemento myShoeSize all'interno di un documento XML.
Nell'esempio seguente viene illustrato l'elemento myShoeSize con l'elemento complexType definito in modo anonimo al suo interno. (Notare l'assenza dell'attributo name).
Vedere anche
Riferimento
Riferimenti dello schema XML (XSD)
Elementi dello schema XML