System defined types

 

 

System type definition
<Namespace name="Atomiton">
    <Def name="Entity" documentation="The root of all types"/>

    <Def name="Atom" inherits="Entity" documentation="Root of all primitive types"/>
    <Def name="Container" inherits="Entity" documentation="Root of all composite types"/>
    <Def name="CustomDef" inherits="Atom" documentation="Root of all custom def"/>
    <Def name="Transient" inherits="Entity" documentation="Marker of all non-persistent types"/>
    <Def name="System" inherits="Entity" documentation="Marker of all system types"/>
    <Def name="Specification" inherits="Entity" documentation="Root of all specifications"/>
    <Def name="Descriptor" inherits="Specification"/>
    <Def name="Qualifier" inherits="Specification"/>
    <Def name="Modifier" inherits="Specification"/>

    <Def name="String" inherits="Atom"/>
    <Def name="Integer" inherits="Atom"/>
    <Def name="Number" inherits="Atom"/>
    <Def name="Short" inherits="Atom"/>
    <Def name="Long" inherits="Atom"/>
    <Def name="Boolean" inherits="Atom"/>
    <Def name="Byte" inherits="Atom"/>
    <Def name="Double" inherits="Atom"/>
    <Def name="Float" inherits="Atom"/>
    <Def name="Decimal" inherits="Atom"/>
    <Def name="DateTime" inherits="Atom" format="$SimpleDateFormat()"/>
    <Def name="Date" inherits="DateTime"/>
    <Def name="Time" inherits="DateTime"/>
    <Def name="Duration" inherits="Time"/>

    <Def name="Sid" alt="sid" inherits="String,System"/>
    <Def name="Name" alt="SimpleName" inherits="Transient,System,Qualifier,String"/>
    <Def name="QName" alt="QualifiedName" inherits="Name"/>
    <Def name="FName" alt="FlatName,FullName" inherits="Name"/>
    <Def name="QType" alt="QualifiedType" inherits="QName"/>
    <Def name="Type" inherits="QName"/>

    <Def name="Override" inherits="Transient,System" documentation="Inheritance override pseudo type"/>
    <Def name="Keyword" inherits="Transient,System,Modifier,String" documentation="Root of all known keywords"/>
    <Def name="Use" inherits="Keyword"
         documentation="Deprecated. This is formal definition. Compiler recognizes this natively"/>
    <Def name="As" alt="Alt" inherits="Keyword"
         documentation="This is formal definition. Compiler recognizes this natively"/>
    <Def name="Kind" alt="Modifiers" inherits="Keyword"
         documentation="Not implemented yet. This is formal definition. Compiler recognizes this natively"/>
    <Def name="Value" inherits="Keyword"
         documentation="Not implemented yet. This is formal definition. Compiler recognizes this natively"/>
    <Def name="Group" inherits="Keyword"
         documentation="Not implemented yet. This is formal definition. Compiler recognizes this natively"/>
    <Def name="Target" inherits="Keyword" documentation="This is formal definition. Compiler recognizes this natively"/>
    <Def name="Default" inherits="Keyword"
         documentation="This is formal definition. Compiler recognizes this natively"/>
    <Def name="Inherits" inherits="Keyword"
         documentation="This is formal definition. Compiler recognizes this natively"/>
    <Def name="Combines" inherits="Keyword"
         documentation="This is formal definition. Compiler recognizes this natively"/>
    <Def name="Cardinality" inherits="Keyword"
         documentation="This is formal definition. Compiler recognizes this natively"/>
    <Def name="Access" alt="Visibility" inherits="Keyword"
         documentation="Not implemented yet. This is formal definition. Compiler recognizes this natively"/>
    <Def name="Documentation" inherits="Keyword"
         documentation="Not implemented yet. This is formal definition. Compiler recognizes this natively"/>
    <Def name="Comment" inherits="Keyword"
         documentation="Not implemented yet. This is formal definition. Compiler recognizes this natively"/>

    <Def name="Namespace" inherits="Container" documentation="Named container">
        <QName name="name" cardinality="1..1" visibility="public"/>
    </Def>
    <Def name="Collection" inherits="Container">
        <Type name="Type" cardinality="0..1" visibility="public"/>
    </Def>
    <Def name="List" inherits="Collection"/>
    <Def name="ListName" inherits="Transient,System,String,List" type="Name"/>
    <Def name="ListQName" inherits="Transient,System,String,List" type="QName"/>

    <Def name="Def" inherits="Namespace"
         documentation="This is a formal self-definition. MDL compiler recognizes this tag natively"/>
    <!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
    <Def name="Data" inherits="Namespace" documentation="Base type for all data"/>
    <Def name="Thing" inherits="Namespace" documentation="Base type for all things"/>
    <Def name="App" inherits="Namespace" documentation="Base type for all apps"/>
    <Def name="Macro" inherits="Namespace" documentation="Base type for all language extensions">
        <Container name="Argument" cardinality="0..1" visibility="public"/>
        <Container name="Result" cardinality="1..1" visibility="public"/>
    </Def>
    <Def name="Action" inherits="Transient,Namespace" documentation="Base type for all actions"/>

    <Def name="Facet" inherits="Namespace"
         documentation="Named container for an incomplete, but reusable part of something"/>
    <Def name="Model" inherits="Namespace"
         documentation="Named container for a complete unit of something"/>
    <Def name="Domain" inherits="Namespace"
         documentation="Named container for a complete set or system of units"/>
    <!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
    <Def name="Constraint" inherits="Transient,Container">
        <Type name="Type" cardinality="1..1" visibility="public"/>
        <QName name="Target" cardinality="0..1" visibility="public"/>
        <Entity name="Value" cardinality="1..m" visibility="public"/>
    </Def>
    <Def name="Eq" inherits="Constraint" type="eq" alt="Equal" modifier-type="Inline Constraints"/>
    <Def name="Le" inherits="Constraint" type="le" alt="LessOrEqual" modifier-type="Inline Constraints"/>
    <Def name="Lt" inherits="Constraint" type="lt" alt="LessThan" modifier-type="Inline Constraints"/>
    <Def name="Ge" inherits="Constraint" type="ge" alt="GreaterOrEqual" modifier-type="Inline Constraints"/>
    <Def name="Gt" inherits="Constraint" type="gt" alt="GreaterThan" modifier-type="Inline Constraints"/>
    <Def name="Ne" inherits="Constraint" type="ne" alt="NotEqual" modifier-type="Inline Constraints"/>
    <Def name="In" inherits="Constraint" type="in" alt="AnyOneOf" modifier-type="Inline Constraints"/>
    <Def name="Like" inherits="Constraint" type="like" alt="Pattern" modifier-type="Inline Constraints"/>
    <Def name="Between" inherits="Constraint" type="between" alt="Interval" modifier-type="Inline Constraints"/>

    <Def name="Not" inherits="Constraint" type="not" alt="NoneOf" modifier-type="Inline Constraints"/>
    <Def name="And" inherits="Constraint" type="and" alt="AllOf" modifier-type="Inline Constraints"/>
    <Def name="Xor" inherits="Constraint" type="xor" alt="OneOf" modifier-type="Inline Constraints"/>
    <Def name="Or" inherits="Constraint" type="or" alt="AnyOf" modifier-type="Inline Constraints"/>

    <Def name="Unique" inherits="Transient,Qualifier,Namespace"
         documentation="Data Identity definition: list of attributes a combination of values of which must be unique across all objects.">
        <ListQName name="Value" cardinality="1..m" visibility="public"/>
    </Def>
    <Def name="DataModel" inherits="Model"
         documentation="A unit of data visibility/exchange with an external system like database">
        <SystemId name="*" cardinality="1"/>
        <Unique name="*" cardinality="0..m"/>
    </Def>

    <Def name="ThingFacet" alt="ApplicationFacet" inherits="Thing"
         documentation="A reusable part of a ThingModel">
        <Action name="*" cardinality="0..m"/>
    </Def>
    <Def name="ThingModel" alt="ApplicationModel" inherits="ThingFacet"
         documentation="A complete model of a device or other kind of thing">
    </Def>

    <Def name="AppFacet" alt="" inherits="App"
         documentation="">
        <Action name="*" cardinality="0..m"/>
    </Def>
    <Def name="AppModel" alt="" inherits="AppFacet"
         documentation=""/>

    <Def name="Storage" inherits="Descriptor,Namespace">
        <QName name="Type" cardinality="1..1" visibility="public"/>
    </Def>
    <Def name="Reference" inherits="Namespace">
        <QName name="Type" cardinality="0..1" visibility="public"/>
        <QName name="Value" cardinality="1..1" visibility="public"/>
    </Def>
    <Def name="Attribute" inherits="Reference"/>
    <Def name="Input" inherits="Channel">
        <String name="kind" modifiers="public,0..1"/>
    </Def>
    <Def name="Invoke" inherits="Container"/>
    <Def name="Output" inherits="Channel"/>
    <Def name="Task" inherits="Namespace">
        <Input name="*" cardinality="0..n" visibility="*"/>
        <Invoke name="*" cardinality="0..n" visibility="*"/>
        <Output name="*" cardinality="0..n" visibility="public"/>
    </Def>

    <Def name="Operation" inherits="Action">
        <String name="OpName" cardinality="1..1" visibility="public"/>
        <Parameter name="OpParams" cardinality="0..n" visibility="public"/>
        <String name="OpReturnValue" cardinality="0..1" visibility="public"/>
    </Def>

    <Def name="Channel" inherits="Namespace" kind="abstract">
        <String name="type" kind="public,0..1"/>
    </Def>
</Namespace>