Prev | Next |
XSD Transformation
The XSD transformation converts Platform-Independent Model (PIM) elements to UML Profile for XML elements as an intermediary step in creating an XML Schema. Each selected PIM Class element is converted to an «XSDcomplexType» element.
Example
The PIM elements
After transformation become the PSM elements
These in turn generate this XSD
<?xml version="1.0" encoding="ISO-8859-1"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Account" type="Account"/>
<xs:complexType name="Account">
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="billingAddress" type="xs:string"/>
<xs:element name="emailAddress" type="xs:string"/>
<xs:element name="closed" type="xs:boolean"/>
<xs:element name="deliveryAddress" type="xs:string"/>
<xs:element ref="Order"/>
<xs:element ref="ShoppingBasket"/>
</xs:sequence>
</xs:complexType>
<xs:element name="LineItem" type="LineItem"/>
<xs:complexType name="LineItem">
<xs:sequence>
<xs:element name="quantity" type="xs:integer"/>
<xs:element ref="StockItem"/>
</xs:sequence>
</xs:complexType>
<xs:element name="Order" type="Order"/>
<xs:complexType name="Order">
<xs:sequence>
<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:sequence>
</xs:complexType>
<xs:simpleType name="OrderStatus">
<xs:restriction base="xs:string">
<xs:enumeration value="new"/>
<xs:enumeration value="packed"/>
<xs:enumeration value="dispatched"/>
<xs:enumeration value="delivered"/>
<xs:enumeration value="closed"/>
</xs:restriction>
</xs:simpleType>
<xs:element name="ShoppingBasket" type="ShoppingBasket"/>
<xs:complexType name="ShoppingBasket">
<xs:sequence>
<xs:element ref="LineItem"/>
</xs:sequence>
</xs:complexType>
<xs:element name="StockItem" type="StockItem"/>
<xs:complexType name="StockItem">
<xs:sequence>
<xs:element name="catalogNumber" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:element name="Transaction" type="Transaction"/>
<xs:complexType name="Transaction">
<xs:sequence>
<xs:element name="date" type="xs:date"/>
<xs:element name="orderNumber" type="xs:string"/>
<xs:element ref="Account"/>
<xs:element ref="LineItem"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
Learn more