...
Similar to traditional programming languages like C, C#, etc there is a notion of static types i.e. the basic types that are defined by the TQLEngine A-Stack out-of-the box. The major advantage of ADL is the flexibility and productivity it offer to create dynamic types using simple syntax of Def XML Named Element. If you are coming from a dynamic type language, ADL will solve your performance and maintainability problems while maintaining productivity.
...
- Atom - This is the root for all primitive types
- System - Marker of all system types.
- Container - Root of all composite types
List of Primitive Types inherited from
...
...
Atom
...
...
<Def name="String" inherits="Atom"/>
<Def name="Binary" inherits="Atom"/>
<Def name="Boolean" inherits="Atom"/>
<Def name="Integer" inherits="Atom"/>
<Def name="Number" inherits="Atom"/>
<Def name="Short" inherits="Atom"/>
<Def name="Long" inherits="Atom"/>
<Def name="Byte" inherits="Atom"/>
<Def name="Float" inherits="Atom"/>
<Def name="Double" inherits="Atom"/>
<Def name="Decimal" inherits="Atom"/>
<Def name="DateTime" inherits="Atom" format="$SimpleDateFormat()"/>
<!-- Derived from Basic Primitives -->
<Def name="Clob" inherits="String"/>
<Def name="Blob" inherits="Binary"/>
<Def name="Date" inherits="DateTime"/>
<Def name="Time" inherits="DateTime"/>
<Def name="Duration" inherits="Time"/>
<Def name="YearDay" inherits="Integer"/>
<Def name="MonthDay" inherits="Integer"/>
<Def name="WeekDay" inherits="Integer"/>
<Def name="YearMonth" inherits="Integer"/>
<Def name="Year" inherits="Integer"/>
<Def name="Month" inherits="Integer"/>
<Def name="Day" inherits="Integer"/>
Examples of Using Primitive Types
Primitive types can be used in standard containers (ThingModel, DataModel,, ThingFacet, AppModel, AppFacet) or custom containers (types) defined by users.
General Usage of Primitive Types
Primitive types usage within containers requires primitive type as an XML Named Element. It takes four modifiers -
...
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
<PrimitiveTypeName Name=".." Cardinality="m..n" Alt="..." Default=""/> |
String
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
<DataModel Name="ZoneInfo"> <String name="ZoneName"/> </DataModel> |
Array of Primitive Types
Array of Primitive types is possible using Cardinality modifier at the time of usage
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
<DataModel Name="ZoneInfo"> <String name="ZoneName" cardinality="0..n"/> </DataModel> |
DateTime
DataTime uses Java SimpleDateFormat notation. Please refer to here for SimpleDateFormat
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
<DataModel Name="ZoneInfo"> <DateTime name="RecordDate" format="$SimpleDateFormat(yyyy-MM-dd'T'HH:mm:ss'Z')"/> </DataModel> |
...