Pré. | Proc. |
Transformation XSD
La transformation XSD convertit les éléments PIM (Platform-Independent Modèle ) en profil UML pour les éléments XML en tant qu'étape intermédiaire dans la création d'un schéma XML. Chaque élément de classe PIM sélectionné est converti en un élément « XSDcomplexType ».
Exemple
Les éléments PIM
Après la transformation deviennent les éléments PSM
Ceux-ci génèrent à leur tour ce XSD
<?xml version="1.0" encoding="ISO-8859-1"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Compte" type="Compte"/>
<xs:complexType name="Compte">
<xs:séquence>
<xs:element name="name" type="xs: string "/>
<xs:element name="billingAddress" type="xs: string "/>
<xs:element name="emailAddress" type="xs: string "/>
<xs:element name="fermé" type="xs:booléen"/>
<xs:element name="deliveryAddress" type="xs: string "/>
<xs:element ref="Order"/>
<xs:element ref="ShoppingBasket"/>
</xs:séquence>
</xs:complexType>
<xs:element name="LineItem" type="LineItem"/>
<xs:complexType name="LineItem">
<xs:séquence>
<xs:element name="quantity" type="xs: integer "/>
<xs:element ref="StockItem"/>
</xs:séquence>
</xs:complexType>
<xs:element name="Commande" type="Commande"/>
<xs:complexType name="Commande">
<xs:séquence>
<xs:element name="date" type="xs:date"/>
<xs:element name="deliveryInstructions" type="xs: string "/>
<xs:element name="orderNumber" type="xs: string "/>
<xs:element ref="LineItem"/>
<xs:element name="status" type="OrderStatus"/>
</xs:séquence>
</xs:complexType>
<xs:simpleType name="OrderStatus">
<xs:restriction base="xs: string ">
<xs:enumeration value="nouveau"/>
<xs:enumeration value="packed"/>
<xs:enumeration value="expédié"/>
<xs:enumeration value="delivered"/>
<xs:enumeration value="fermé"/>
</xs:restriction>
</xs:simpleType>
<xs:element name="ShoppingBasket" type="ShoppingBasket"/>
<xs:complexType name="ShoppingBasket">
<xs:séquence>
<xs:element ref="LineItem"/>
</xs:séquence>
</xs:complexType>
<xs:element name="StockItem" type="StockItem"/>
<xs:complexType name="StockItem">
<xs:séquence>
<xs:element name="catalogNumber" type="xs: string "/>
</xs:séquence>
</xs:complexType>
<xs:element name="Transaction" type="Transaction"/>
<xs:complexType name="Transaction">
<xs:séquence>
<xs:element name="date" type="xs:date"/>
<xs:element name="orderNumber" type="xs: string "/>
<xs:element ref="Compte"/>
<xs:element ref="LineItem"/>
</xs:séquence>
</xs:complexType>
</xs:schéma>