Data Model
The Data Model Reference lists all API data model types. Yet, it may be beneficial for the developer to understand the objects the resources are made of.
The data types the API uses can be divided into three categories:
-
Scalar data types, i.e. strings or integers.
-
Xelion objects, i.e. persons or phone numbers.
-
Container objects that holds one or more objects of these three categories.
Scalars
Name | Description | Example |
---|---|---|
String |
A text string of maximum 4000 character, UTF-8 encoded1 |
|
Number |
An integer or a float number |
42 |
Boolean |
A boolean value: |
|
Date |
A date in UTC time, in the format: |
|
Binary String |
A base64 encoded string2 |
|
null |
Null (no) value. |
|
1) the text is converted to Windows 1252 encoding
2) the maximum size before encoding is currently 10 MB
Xelion object model
The Xelion object model is an object oriented data model, where real world entities are modeled by generalization, aggregation and relations.
The root object of all Xelion objects is XelionObject. This object holds three attributes:
oid |
An unique ID of this object. The ID forms the last part of the resource URL of the object, for example: |
objectType |
The object type. The type is important when a resource may return objects of various types. |
changeType |
Object modification flag. This attribute is required when the client modifies, creates or removes an object. |
Another important base object is Entity. This is the root object of all toplevel objects.
The toplevel resources, like communication
and addressable
return subclasses of Entity
.
Entity
adds, among other things, access rights to the object.
The following sections list the objects a client will probably use.
Addressables
Addressables are items in the the addressbook. Addressable resources start with URL <base-url>/addressables
. Some of the user’s lists, for example: the favorites list, contain addressable objects as well.
Addressable |
The base object of the addressbook. |
Person |
A person. A person object includes both private and employment information. |
Organisation |
An organisation. |
Object |
An object in the addressbook other than a person or an organisation. For example: (the telephone number of) a meeting room. |
Unknown Addressable |
Xelion creates this object when a phone call is received from an unknown phone number. This object is removed when a user adds this phone number to a contact or creates a new contact. |
Communication
Communication |
The base object of all communication events. |
Call Log |
The log of a phone call. |
User Chat |
A chat message. |
SMS Message |
An SMS message. |
Email Message |
An email message. |
Containers
Resources are often not a scalar or a XelionObject but an aggregation of various types.
For example: the resource /me/info contains two objects: the Person associated with the user and the Presence information of the user.
Most of the resources return REST information in addition to the resource data, namely HATEOAS information. (HATEOAS data contains links to associated resources to the current resource). In order to accomodate the REST data, most responses are wrapped in a Response Object or in a Response List.