- UML Profile for XML Schema
- Customizing the PO Schema Design Model
- Creating XML Schemas with hyperModel
- Schema Modularity and Reuse
- Tips for Success
Creating XML Schemas with hyperModel
To support an iterative modeling process, we have developed a web-based application that creates XML schemas from UML models. A key enabling technology is the XML Metadata Interchange (XMI) specification from the OMG that defines a standard for serializing UML models into an XML document interchange format. Many UML tools now support this standard import/export format and some use it as their native file format. hyperModel accepts any XMI 1.0 file containing a UML 1.3 model and transforms it into either HTML or several alternative XML schema languages.
I created the purchase order model in both Rational Rose and the Open Source ArgoUML tools. XMI files can be exported from Rational Rose by using the add-in developed by Unisys and available for download from Rational Software. ArgoUML uses XMI as its native file format. When the purchase order model from either tool is uploaded to hyperModel, the HTML view shown in Figure 2 is displayed in a Web browser.
Figure 2 An HTML view of UML in hyperModel.
hyperModel uses XSLT stylesheets to transform the XMI files into other representations, including HTML and XSD schemas. It allows individual classes or entire packages to be transformed and displayed in your browser. When the output transformation is changed to XSD, the schema representation of the selected class is displayed as shown in Figure 3. Selecting a UML package such as PO or Address displays the complete schema for a module in our vocabulary design.
Figure 3 Transformation of a UML class to XML Schema.
We have found this application to be a tremendous help in learning about and refining an object-oriented approach to the analysis and design of XML schemas. We also use this tool as an integral part of our training classes on modeling XML vocabularies. Even if you don't use UML as a primary design tool in your project, experimenting with schema models and alternative UML profile customizations is a productive way to understand XML schema structures and design guidelines.