elemento complexType di XML Schema
definizione e uso
l'elemento complexType definisce un tipo complesso. Gli elementi di tipo complesso sono elementi XML che contengono altri elementi e/o attributi.
informazioni sull'elemento
numero di apparizioni | all'interno dell'architettura è illimitato; all'interno dell'elemento è una volta. |
elemento padre | element, redefine, schema |
contenuto | annotation, simpleContent, complexContent, group, all, choice, sequence, attribute, attributeGroup, anyAttribute |
Sintassi
<complexType id=ID name=NCName abstract=true|false mixed=true|false block=(#all|lista di (extension|restriction)) final=(#all|lista di (extension|restriction)) any attributes > (annotation?,(simpleContent|complexContent|((group|all| choice|sequence)?,((attributo|attributoGroup)*,anyAttribute?)))) </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. Stabilisce l'ID unico dell'elemento.
name
Opzionale. Stabilisce il nome dell'elemento.
abstract
Opzionale. Stabilisce se è possibile utilizzare il tipo complesso nell'istanza del documento. 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. Stabilisce se i dati di carattere 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.
block
Opzionale. Protegge il tipo complesso con il tipo di derivazione specificato dal tipo complesso specificato. Il valore può includere #all o una lista, che è un sottoinsieme di extension o restriction:
- extension - Protegge i tipi complessi derivati tramite estensione dal tipo complesso specificato.
- restriction - Protegge i tipi complessi derivati tramite restrizione dal tipo complesso specificato.
- #all - Protegge tutti i tipi complessi derivati dal tipo complesso specificato.
final
Opzionale. Protegge il tipo specificato derivo dal tipo del elemento complexType. Il valore può includere #all o una lista, che è un 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. Specificare qualsiasi altra proprietà con namespace non dello schema.
Esempio
Esempio 1
Esempio 1. L'esempio seguente ha un elemento tipo complesso chiamato "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 2. Nel seguente esempio c'è 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>
在上面的例子中,上面的 "employee" 元素必须按顺序包含以下元素:"firstname"、"lastname"、"address"、"city" 以及 "country"。