XML Schema elementi complessi
elemento complesso contiene altri elementi e / o attributi.
h2> Che cosa è un elemento composito?
elemento composito si riferisce all'elemento XML che contiene altri elementi e / o attributi.
Ci sono quattro tipi di elementi compositi:
- elementi vuoti
- Esso contiene altri elementi di
- Elemento contiene solo testo
- Elemento contiene elementi e testo
Nota: Gli elementi di cui sopra possono contenere attributi!
Esempi di elementi compositi
elemento composito, "prodotto", è vuota:
elemento composito, "dipendente", contiene solo altri elementi:
<firstname>John</firstname>
<lastname>Smith</lastname>
</employee>
Complesso elemento XML, "cibo", che contiene solo il testo:
Complesso elemento XML, "Descrizione" contiene elementi e testo:
It happened on <date lang="norwegian">03.03.99</date> ....
</description>
Come definire elemento complesso?
Guardate questo elemento XML complesso, "dipendente", contiene solo altri elementi:
<firstname>John</firstname>
<lastname>Smith</lastname>
</employee>
In XML Schema, abbiamo due modi per definire elementi complessi:
1. Nome l'elemento direttamente alla dichiarazione "dipendente" elemento, in questo modo:
<xs:complexType>
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
Se si utilizza il metodo sopra descritto, l'unico "impiegato" può utilizzare il tipo complesso specificato. Si prega di notare che i suoi elementi figlio, "Nome" e "cognome", sono circondati da l'indicatore <sequence> in. Ciò significa che gli elementi figlio devono apparire nell'ordine in cui sono dichiarati. Potrai XSD Indicatori conoscere meglio gli indicatori di questa sezione.
2. Elemento "impiegato" può utilizzare l'attributo tipo, il ruolo di questo attributo è un riferimento al nome del tipo complesso da utilizzare:
<xs:complexType name="personinfo">
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
Se si utilizza il metodo sopra descritto, può essere utilizzato da un numero di elementi dello stesso tipo complesso, come questo:
<xs:element name="student" type="personinfo"/>
<xs:element name="member" type="personinfo"/>
<xs:complexType name="personinfo">
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
È possibile anche su un elemento composito esistente ad una base elemento composito, e quindi aggiungere alcuni elementi, come questo:
<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>