| @namespace(uri="services", prefix="") | |
| package services; | |
| class Model { | |
| val Service[*] services; | |
| val Type[*] types; | |
| } | |
| class Service { val Operation[*] operations; } | |
| class Operation { | |
| attr String name; | |
| val TypedElement[*] incoming; | |
| val TypedElement[*] outgoing; | |
| } | |
| class TypedElement { | |
| attr String name; | |
| attr boolean many; | |
| ref Type type; | |
| } | |
| abstract class Type { attr String name; } | |
| class PrimitiveType extends Type {} | |
| class Struct extends Type { | |
| val TypedElement[*] fields; | |
| } |