Condividi tramite


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

element, redefine, schema

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.

  1. group | sequence | choice | all

  2. attribute | attributeGroup

  3. 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