Latest web development tutorials

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:

<product pid="1345"/>

elemento composito, "dipendente", contiene solo altri elementi:

<employee>
<firstname>John</firstname>
<lastname>Smith</lastname>
</employee>

Complesso elemento XML, "cibo", che contiene solo il testo:

<food type="dessert">Ice cream</food>

Complesso elemento XML, "Descrizione" contiene elementi e testo:

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

<employee>
<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:element name="employee">
<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:element name="employee" 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>

Se si utilizza il metodo sopra descritto, può essere utilizzato da un numero di elementi dello stesso tipo complesso, come questo:

<xs:element name="employee" type="personinfo"/>
<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: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>