Dérivation de type simple à l'aide du mécanisme d'union
Lorsque vous dérivez un nouveau type simple à partir d'un type simple existant à l'aide du mécanisme d'union, vous spécifiez que la valeur de cet attribut ou de cet élément peut appartenir à plus d'un type, d'après une liste de types que vous spécifiez. Par exemple, vous pouvez spécifier qu'une valeur d'attribut ou d'élément est une valeur de date, d'heure ou de date/heure.
Pour obtenir des informations complètes sur la dérivation de nouveaux types simples par le biais du mécanisme d'union, reportez-vous au site Web de W3C. Pour obtenir différents liens vers ce site web et d’autres, consultez Ressources XSD sur le web.
Pour dériver un type simple sous la forme d’une union de plusieurs types possibles, sélectionnez le nœud Field Element ou Field Attribute correspondant dans l’arborescence de schéma, puis, dans le Fenêtre Propriétés, sélectionnez un type simple dans la liste déroulante pour la propriété Type de données de base. Dès que vous avez sélectionné une valeur pour cette propriété, la propriété Derived By passe automatiquement de sa valeur par défaut à Restriction, qui sert de valeur par défaut pour la dérivation de type. Vous devez modifier la propriété Derived By de Restriction en Union, ce qui entraîne le renommage de la propriété Type de données de base en tant que propriété Member Types (incidemment, la propriété renommée passe à une autre position dans la liste de propriétés en raison du tri alphabétique des propriétés).
Enfin, vous pouvez utiliser les zones de case activée de la liste de contrôle déroulante Types de membres pour sélectionner des types supplémentaires afin d’autoriser les valeurs correspondantes dans instance messages.
Lorsque vous modifiez d’abord un nœud d’élément field ou un nœud Attribut de champ d’un type de données à un type de données de base (ce qui démarre le processus de dérivation de type simple), puis définissez la propriété Derived By sur Union, vous pouvez observer la modification suivante dans le fragment correspondant dans la vue XSD.
Auparavant, avec un nœud d’élément Field nouvellement inséré nommé DatesAndOrTimes.
<xs:element name="ContainingRecord"> <xs:complexType> <xs:sequence> </xs:sequence> </xs:complexType> </xs:element>
Après avoir défini la propriété Type de données de base sur xs :date et défini la propriété Derived By sur Union (après quoi la propriété Type de données de base est renommée en propriété Types de membres ), puis avoir sélectionné xs :datetime et xs :time comme types autorisés supplémentaires dans la liste de contrôle déroulante Types de membres .
<xs:element name="ContainingRecord"> <xs:complexType> <xs:sequence> </xs:sequence> </xs:complexType> </xs:element>