Elemento complexType dello schema XML

Definizione e uso

L'elemento complexType definisce un tipo complesso. Gli elementi del tipo complesso sono elementi XML che contengono altri elementi e/o attributi.

informazioni sull'elemento

frequenza di apparizione all'interno della struttura è illimitato; all'interno dell'elemento è una volta.
elemento genitore elemento, ridefinisci, schema
contenuto annotazione, simpleContent, complexContent, gruppo, tutti, scelta, sequenza, attributo, gruppo di attributi, attributoQualsiasi

sintassi

<complexType
id=ID 
nome=NCName 
astratto=true|false 
mixed=true|false
blocco=(#all|elenco di (estensione|restrizione))
final=(#all|elenco di (estensione|restrizione))
any attributes
>
(annotazione?,(simpleContent|complexContent|((gruppo|tutti| 
(choice|sequence)?,((attributo|gruppo di attributi)*,attributoQualsiasi?))))
</complexType>

(? simbolo dichiarato nell'elemento complexType, l'elemento può apparire zero o una volta, * simbolo dichiarato l'elemento può apparire zero o più volte).

attributi

id

opzionale. determinare l'ID unico dell'elemento.

nome

opzionale. determinare il nome dell'elemento.

astratto

opzionale. determinare se è possibile utilizzare il tipo complesso nell'documento di istanza. Se il valore è true, l'elemento non può utilizzare direttamente il tipo complesso, ma deve utilizzare il tipo complesso derivato dal tipo complesso. Il valore predefinito è false.

mixed

opzionale. determinare se i dati di testo possono apparire tra i sottoelementi di questo tipo complesso. Il valore predefinito è false.

  • se l'elemento simpleContent è un sottoelemento, non è permesso l'attributo mixed.
  • se l'elemento complexContent è un sottoelemento, l'attributo mixed può essere sovrascritto dall'attributo mixed dell'elemento complexContent.

blocco

opzionale. prevenire che il tipo complesso con il tipo derivato specificato venga utilizzato per sostituire il tipo complesso. Il valore può includere #all o una lista, che è un sottoinsieme di extension o restriction:

  • estensione - prevenire che i tipi complessi derivati dall'uso di estensioni vengano utilizzati per sostituire il tipo complesso.
  • restrizione - prevenire che i tipi complessi derivati dall'uso di limitazioni vengano utilizzati per sostituire il tipo complesso.
  • #all - Protegge il tipo complesso derivato da essere utilizzato per sostituire il tipo complesso.

final

Opzionale. Protegge il tipo specificato dal derivare dal tipo complesso. Il valore può includere #all o una lista che è sottoinsieme di extension o restriction.

  • extension - Protegge dalle derivazioni attraverso estensioni.
  • restriction - Protegge dalle derivazioni attraverso limitazioni.
  • #all - Protegge da tutte le derivazioni (estensioni e limitazioni).

any attributes

Opzionale. Specifica qualsiasi altra proprietà con uno spazio dei nomi non dello schema.

Esempio

Esempio 1

Esempio di un elemento tipo complesso denominato "note":

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

Esempio 2

Esempio di un tipo complesso "fullpersoninfo" che estende il tipo derivato utilizzando tre elementi supplementari (address, city e country) da un altro tipo complesso "personinfo":

<xs:element name="employee" type="fullpersoninfo"/>
<xs:complexType name="personinfo">
  <xs:sequence>
    <xs:element name="firstname" type="xs:string"/>
    <xs:element name="lastname" type="xs:string"/>
  </xs:sequence>
</xs:complexType>
<xs:complexType name="fullpersoninfo">
  <xs:complexContent>
    <xs:extension base="personinfo">
      <xs:sequence>
        <xs:element name="address" type="xs:string"/>
        <xs:element name="city" type="xs:string"/>
        <xs:element name="country" type="xs:string"/>
      </xs:sequence>
    </xs:extension>
  </xs:complexContent>
</xs:complexType>

Nell'esempio sopra, l'elemento "employee" deve contenere in ordine i seguenti elementi: "firstname", "lastname", "address", "city" e "country".