MSE Specification

MSE is a file format to store FM3 compliant metamodels and models.

NB all MSE files must use UTF-8 encoding.

   Root := Document ?
   Document := OPEN ElementNode \* CLOSE
   ElementNode := OPEN NAME Serial ? AttributeNode \* CLOSE
   Serial := OPEN ID INTEGER CLOSE
   AttributeNode := OPEN Name ValueNode \* CLOSE
   ValueNode := Primitive | Reference | ElementNode
   Primitive := STRING | NUMBER | Boolean | Unlimited
   Boolean := TRUE | FALSE
   Unlimited := NIL
   Reference := IntegerReference | NameReference
   IntegerReference := OPEN REF INTEGER CLOSE
   NameReference := OPEN REF NAME CLOSE
   OPEN := "("
   CLOSE := ")"
   ID := "id:"
   REF := "ref:"
   TRUE := "true"
   FALSE := "false"
   NAME := letter ( letter | digit ) \* ( "." letter ( letter | digit ) ) \*
   INTEGER := digit +
   NUMBER := "-" ? digit + ( "." digit + ) ? ( ( "e" | "E" ) ( "-" | "+" ) ? digit + ) ?
   STRING := ( "'" \[^'] \* "'" ) +
   digit := \[0-9] 
   letter := \[a-zA-Z_]

Whitespace are the usual suspects, and comments are

 comment := "\"" \[^"] \* "\""

On the nodes and commands

An MSE implementation MUST support all nodes and commands below


Change list

Edit of February 24, 2009

Edit of December 3, 2007

Edit of November 11, 2007

Edit of October 12, 2007

Edit of October 11, 2007