Defining this language requires first establishing a notation that humans can use to describe the data structures involved. I propose a simple notation to be used for describing data structures that are intended to be encoded using XML, the Extensible Markup Language. The notation is based in part on a small subset of UML, the Unified Modeling Language, a visual language for specifying software systems. There are three main advantages to using UML class diagrams as a basis for defining data structures. First, compared to using other notations or a programming language, the UML visual representations are generally easier to read and understand by readers who are not computer scientists.
Readers are therefore more likely to be familiar with it than other notations.
The scope of the notation is limited to classes and their attributes, not class methods or operations. One of the goals of this effort has been to develop a consistent, systematic method for translating UML-based class diagrams into XML Schemas. An important side-effect of this is that the vocabulary of the notation is purposefully limited to only a handful of constructs. This limited vocabulary has nevertheless been sufficient for the applications to which it has been applied so far in the Systems Biology workbench project. The notation proposed in this document is based on a subset of what could be used and what UML provides.