As the old saying goes: "A picture is worth a thousand words." Maybe ten-thousand words when it comes to XML Schema definitions. Many people agree that a concise UML class diagram is the best way to get an overview of XML vocabulary models, which are most frequently published using the W3C XML Schema language. The pages listed below present UML diagrams for some common XML Schemas.
All diagrams were produced by the hyperModel application, which requires only 5 minutes to go from schema to diagrams. All diagram layout is 100% automated. Using hyperModel, you can pick any class in the UML model (which is reverse engineered from the original schema) and adjust several presentation parameters, such as depth of traversal to related classes.
These UML class diagrams are intended to assist understanding the XML vocabulary definitions, but without requiring that the reader understand the XML Schema syntax. The diagrams intentionally suppress some of the detail from the XML Schemas that is also represented in the reverse-engineered UML model. For example, this UML implementation model contains the sequence order of elements within a complex type definition, but this information is not included in the diagrams. Part of the transformation process from XML Schema to UML model is designed to create a useful object-oriented representation that could be used for other software engineering work based on this model (e.g. the OMG's model driven architecture). Consider two examples where this choice affects the resulting UML model. First, the "Type" suffix of XML Schema complexType names are removed when creating the UML class name to yield an object class name independent of XSD syntax. Second, complex type child elements with simple content values are represented in UML as class attributes, whereas elements with complex content are represented as associations to those type classes.
Please send any comments or questions about these diagrams to Dave Carlson [dcarlson (at) xmlmodeling (dot) com].