Share |

lunedì 10 maggio 2010

XSD: Gli Indicatori di Ordinamento

Il linguaggio XSD è utilizzato per esprimere e definire qualunque tipo di informazione tramite un XSD_Schema e quindi deve offrire tantissime funzionalità e features per poter descrivere qualunque elemento XML in maniera particolareggiata e precisa.
Tra queste particolarità vi sono gli indicatori, di vario tipo come per esempio gli indicatori_di_frequenza o gli indicatori_di_raggruppamento.

Gli Indicatori di Ordinamento vengono utilizzati all'interno della dichiarazione <xs:complexType> per stabilire l'ordine, o la sequenza, con cui devono comparire gli elementi XML all'interno del loro parent. Essi sono:

  • all;
  • sequence;
  • choice;

L'indicatore all

L'indicatore xs:all indica che gli elementi di un tipo complesso possono apparire in qualsiasi ordine. Definendo un Complex_Type in questa maniera:

<xs:complexType name="piantaItem">  
  <xs:all> 
    <xs:element name="nome" type="xs:string" /> 
    <xs:element name="esterno" type="xs:boolean" /> 
  </xs:all> 
</xs:complexType>

si stabilisce che nel documento XML è possibile avere:

<pianta>
  <nome>Geranio</nome>
  <esterno>true</esterno>
</pianta>

Ma potrebbe essere anche cosi':

<pianta>
  <esterno>true</esterno>
  <nome>Geranio</nome>
</pianta>

L'indicatore sequence

L'indicatore xs:sequence indica che gli elementi di un tipo complesso devono apparire nella esatta sequenza con cui sono stati definiti.
Se si definisce un elemento complex type in questo modo:

<xs:complexType name="piantaItem"> 
  <xs:sequence>
    <xs:element name="nome" type="xs:string" />
    <xs:element name="esterno" type="xs:boolean" />
  </xs:sequence>
</xs:complexType>

L'elemento XML dovrebbe contenere esattamente:

<pianta>
  <nome>Geranio</nome>
  <esterno>true</esterno>
</pianta>

L'indicatore choice

L'indicatore xs:choice indica che gli elementi di un tipo complesso sono alternativi tra di loro, ovvero la presenza di uno esclude automaticamente gli altri. Un elemento complex type cosi fatto:

<xs:complexType name="piantaItem"> 
  <xs:choice>
    <xs:element name="nome" type="xs:string" />
    <xs:element name="esterno" type="xs:boolean" />
  </xs:choice>
</xs:complexType>

Potrà contenere un solo elemento a scelta tra nome ed esterno:

<pianta>
  <esterno>true</esterno>
</pianta>
<pianta>
  <nome>Geranio</nome>
</pianta>
<pianta>
  <nome>Rosa</nome>
</pianta>

Concludendo, gli indicatori di Ordinamento XSD sono molti utili in quanto rendono la definizione di una struttura rigida, quale uno Schema_XSD, molto flessibile.

Alla prossima, MA.

0 commenti:

Posta un commento

Non ti è chiaro qualcosa?
No problem, posta il tuo dubbio ;)

..... e ricordati di firmarlo!