Extensibility
The Open Information Model (OIM) can be extended with vendor-specific meta data types. New classes, attributes, and associations are added using the Universal Modeling Language (UML) representation of the OIM. New elements may be either created from scratch or based on existing OIM types using specialization (inheritance). A vendor may choose to publish the model extensions in order to share the meta data with other vendors, or treat the extension as tool specific (private).
Using the OIM to Extensible Markup Language (XML) mapping rules described in this document, an XML Document Type Definition (DTD) for the model extension can be created from its UML representation. However, the XML DTD does not provide enough information for other vendors to interpret the model. This is a limitation of the current XML standard with DTD as schema description language. DTDs do not capture type inheritance and other sophisticated modeling structures. The World Wide Web Consortium (W3C), as XML standard body, is standardizing a new schema definition language called XML Schema.
Until the XML Schema specification is available, the OIM XML encoding format will support the use of the optional supertype attribute. This attribute is used to define which OIM type a new meta data type specializes. In the case where multiple OIM types are specialized, it is the responsibility of the exporting tool to choose one of the types.
The following example shows an instance of a new meta data type that extends the table class in the Database Schema Model.
Example
<Ext:MyTable supertype="DBM:Table" name="xxx" size="yyy" myVal="123"/>
An importer can decode the element structure even if the new subtype is unknown. It simply uses the schema of the known OIM type specified by the supertype attribute. Note that the attribute must contain a fully qualified class name (including namespace). It is also necessary to resolve attribute name conflicts using the rules described in the following sections.