This document defines a standard modelling language, or meta-model, for expressing data models in the IVOA. Adopting such a uniform language for all models allows these to be used in a homogeneous manner and allows a consistent definition of reuse of one model by another. The particular language defined here includes a consistent identification mechanism for model which allows these to be referenced in an explicit and uniform manner also from other contexts, in particular from othe IVOA standard formats such as VOTable. The language defined in this specification is named VO-DML (VO Data Modeling Language). VO-DML is a conceptual modeling language that is agnostic of serializations, or physical representations. This allows it to be designed to fit as many purposes as possible. VO-DML is directly based on UML, and can be seen as a particular representation of a UML2 Profile. VO-DML is restricted to describing static data structures and from UML it only uses a subset of the el ements defined in its language for describing "Class Diagrams". Its concepts can be easily mapped to equivalent data modelling concepts in other representations such as relational databases, XML schemas and object-oriented computer languages. VO-DML has a representation as a simple XML dialect named VO-DML/XML that must be used to provide the formal representation of a VO-DML data model. VO-DML/XML aims to be concise, explicit and easy to parse and use in code that needs to interpret annotated data sets. VO-DML as described in this document is an example of a domain specific modeling language, where the domain here is defined as the set of data and meta-data structures handled in the IVOA and Astronomy at large. VO-DML provides a custom representation of such a language and as a side effect allows the creation and use of standards compliant data models outside of the IVOA standards context.