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