MLML Informal Reference

Please note that this reference is very much work in progress. It is provided as a basis for discussions and test implementations. A full schema definition of the language will eventually be published in W3C Schema and/or RelaxNG formats.

In MLML there are no default attribute values - if an attribute is missing its value is undefined.

Language restrictions such as variable scope should be implemented as extensions. Source locators, annotations and documentation/comments are other examples of extensions that should be formalised separately.

MLML models the following abstract entities:


  Types
  Functions and Calls
  Variables and References
  Literals
  Operators and Operations
  Constructs and Statements
  Try blocks and Exceptions

MLML does not provide any of the specifics necessary to execute code, such as a processing model, type system or runtime environment.

A draft schema of MLML is available for download: mlml.xsd. There is also generated schema documentation that can be browsed here.

As an example of MLML use, the ECMA 335 Common Language Infrastrucure type system has been transformed (from the ECMA XML definitions) to the draft MLML format. More information is available on this page.