The STEP Modules Repository is a collection of reusable XML building blocks for developing standards from information models defined in EXPRESS. An integral part of the repository's XML vocabulary is its representation of EXPRESS language constructs, i.e. its EXPRESS model. This specification shall refer to this EXPRESS model portion of the repository's XML vocabulary as STEPmod EXPRESS.
STEPmod EXPRESS was originally defined using a Document Type Definition (DTD) because, at that time, more expressive XML schema languages such as the World Wide Web Consortium (W3C) XML Schema definition language (XSD) and RELAX NG were not mature standards, and software tools supporting these languages were unstable. Although XSD has since become a W3C standard and RELAX NG has since become an ISO standards, the current XML schema for STEPmod EXPRESS does not use any of the expressive power offered by these languages. This may change in the future. For example, XSD and RELAX NG both provide stronger datatyping than DTD, and RELAX NG can enforce co-occurrence constraints between XML attributes. Both of these capabilities would be useful for improving the validation of STEPmod EXPRESS XML instances.
STEPmod EXPRESS takes a middle-of-the-road approach regarding the level of granularity of the XML markup with respect to to the EXPRESS language. High level EXPRESS structures such as data types, their attributes, and inheritance relationships are marked up. Expressions, on the other hand, are not. As a result, STEPmod EXPRESS is suitable for applications such as EXPRESS schema browsers as well as partial mappings to other modeling languages such as UML and OWL.