gototopgototop
 
Sei in: Home Page Corso XML Dichiarare un elemento di tipo complesso in uno schema xml

Dichiarare un elemento di tipo complesso in uno schema xml

L' unico tipo complesso predefinito che può essere usato per dichiarare un elemento è: xsd:anyType. È l' elemento predefinito che viene assegnato se non viene specificato l'attributo type nel tag iniziale xsd:element. Di seguito un esempio con questo codice:

<xsd:element name="LIBRO" type="anyType" />

In un elemento contenente xsd:anyType può essere incluso qualsiasi dato di tipo carattere e qualsiasi elemento o attributo dichiarato all' interno di xsd:schema.
Un tipo di elemento complesso viene definito tramite la sintassi: xsd:complexType

Dichiarare un elemento con contenuto elemento

Un elemento dichiarato con contenuto elemento potrà contenere uno o più elementi secondari specificati. è inoltre necessario definire il tipo di elemento tramite xsd:complexType ed includere al suo interno un "modello di contenuto", il quale descrive gli elementi ammessi. Un modello di contenuto viene creato utilizzando i seguenti 3 elementi: xsd:sequence, xsd:choice, xsd:all. Un gruppo di elementi dichiarato con xsd:sequence deve riportare lo stesso ordine con il quale è stato dichiarato. Per esempio:

<xsd:element name="LIBRO">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="TITOLO" type="xsd:string" />
<xsd:element name="AUTORE" type=xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>

Il seguente codice, quindi, sarà valido:

<LIBRO>
<TITOLO>Come il mare</TITOLO>
<AUTORE>Wilbur Smith</AUTORE>
</LIBRO>

Se, invece, un gruppo di elementi secondari viene dichiarato all' interno di un elemento xsd:choice ogni elemento può essere visualizzato all' interno dell' elemento principale, così come può essere omesso in quanto si tratta di una "scelta". Si veda il seguente codice:

<xsd:element name="LIBRO">
<xsd:complexType>
<xsd:choice>
<xsd:element name="TITOLO" type="xsd:string" />
<xsd:element name="AUTORE" type=xsd:string" />
<xsd:element name="COPERTINA" type="xsd:string" />
</xsd:choice>
</xsd:complexType>
</xsd:element>

Il seguente elemento sarà valido:

<LIBRO>
<TITOLO>Come il mare</TITOLO>
</LIBRO>

in quanto ho solo dichiarato un elemento tra quelli presenti più su. Infine se un gruppo di elementi è dichiarato all' interno di xsd:all, possono essere descritti con un qualsiasi ordine. Ogni elemento secondario deve essere trascritto una volta, ma può essere opzionale includendo: minOccurs="0". Si veda il seguente codice:

<xsd:element name="LIBRO">
<xsd:complexType>
<xsd:all>
<xsd:element name="TITOLO" type="xsd:string" />
<xsd:element name="AUTORE" type=xsd:string" />
<xsd:element name="COPERTINA" type="xsd:string" minOccurs="0" />
</xsd:all>
</xsd:complexType>
</xsd:element>

I seguenti elementi saranno validi:

<LIBRO>
<COPERTINA>Tascabile economico</COPERTINA>
<AUTORE>Wilbur Smith</AUTORE>
<TITOLO>Come il mare</TITOLO>
</LIBRO>

Dichiarare un elemento con contenuto vuoto

Se un elemento viene dichiarato con contenuto vuoto, non potrà avere nè elementi secondari nè dati di tipo carattere. Per poter specificare questo tipo di elemento, lo si deve definire in un <xsd:complexType> e si deve omettere il modello di contenuto, come nell' esempio:

<xsd:element name="br">
<xsd:complexType>
</xsd:complexType>
</xsd:element>

pertanto il seguente elemento <br /> sarà valido:

<br></br> così come: <br />

Nelle prossime lezioni cominceremo a vedere come visualizzare i documenti XML tramite il Binding dei dati in una pagina HTML o XHTML. Continuate e seguire, ciao!!

© www.extrowebsite.com - Grafica, layout, articoli e guide sono di esclusiva proprietà del webmaster - Tutti i diritti riservati