Derivazione di tipi semplici mediante il meccanismo Union
Quando un nuovo tipo semplice deriva da un tipo semplice esistente utilizzando il meccanismo Union, si specifica che il valore di questo attributo o elemento può essere di più di un tipo, in base a un elenco di tipi specificato. È ad esempio possibile specificare che il valore di un attributo o elemento sia una data, un'ora o un valore data/ora.
Per informazioni complete sulla derivazione di nuovi tipi semplici mediante il meccanismo Union, vedere il sito Web W3C. Per vari collegamenti a questo e ad altri siti Web, vedere Risorse XSD sul Web.
Per derivare un tipo semplice come unione di diversi tipi possibili, selezionare il nodo Elemento campo pertinente o Il nodo Attributo campo nell'albero dello schema e quindi, nella Finestra Proprietà, selezionare un tipo semplice dall'elenco a discesa per la proprietà Tipo di dati di base. Non appena è stato selezionato un valore per questa proprietà, la proprietà Derived By passa automaticamente dal valore predefinito a Restriction, che funge da valore predefinito per la derivazione del tipo. È necessario modificare la proprietà Derived By da Restriction a Union, che fa sì che la proprietà Tipo di dati di base venga rinominata come proprietà Member Types(Tipi membro ), per inciso, la proprietà rinominata viene spostata in una posizione diversa nell'elenco delle proprietà a causa dell'ordinamento alfabetico delle proprietà.
Infine, è possibile usare le caselle di controllo nell'elenco a discesa Tipi di membri per selezionare tipi aggiuntivi per consentire i valori corrispondenti nei messaggi di istanza.
Quando si modifica per la prima volta un nodo Elemento campo o un nodo Attributo campo dalla presenza di un tipo di dati a un tipo di dati di base (avviando quindi il processo di derivazione di tipo semplice) e quindi impostando la proprietà Derived By su Union, è possibile osservare la modifica seguente nel frammento corrispondente nella visualizzazione XSD.
In precedenza, con un nodo Elemento campo appena inserito denominato DatesAndOrTimes.
<xs:element name="ContainingRecord"> <xs:complexType> <xs:sequence> </xs:sequence> </xs:complexType> </xs:element>
Dopo aver impostato la proprietà Tipo di dati di base su xs:date e impostando la proprietà Derived By su Union (dopo la quale la proprietà Tipo di dati di base viene rinominata come proprietà Tipi di membri ), quindi selezionando anche xs:datetime e xs:time come tipi aggiuntivi consentiti nell'elenco a discesa Tipi di membri .
<xs:element name="ContainingRecord"> <xs:complexType> <xs:sequence> </xs:sequence> </xs:complexType> </xs:element>