DAXP Frame Example — Single Message with Nested Collection (2050)
DAXP|V=0.7beta|EN=UTF-8|CX=CRM|
$:1=CRM.DATA|$:3=3|
$:4=1|$:5=I|$:6=2000|2001=1|2002=Robert|2003=Homa|2004=
$:4=2|$:5=V|$:6=2050|3201=3|2001=1|3202=4000|3203=2345678767|3205^N|$:132=2345678767|
$:4=3|$:5=V|$:6=2050|3201=2|2001=1|3202=2000|3203=1234567876|3205^N|$:132=1234567876|
$:9=28|
Frame contents
- 1 frame
- 1 message
- 3 blocks
- 1 CUSTOMER instance
- 1 nested collection
- 2 elements in the contractMap collection
- 1 message checksum
1. Preamble
DAXP|V=0.7beta|EN=UTF-8|CX=CRM|
| Element | Value | Description |
|---|---|---|
| DAXP | DAXP | Protocol identifier |
| V | 0.7beta | Protocol version |
| EN | UTF-8 | Character encoding |
| CX | CRM | Business context / namespace |
The preamble applies to the entire frame.
2. Message Header
$:1=CRM.DATA|$:3=3|
| Tag | Name | Value | Description |
|---|---|---|---|
| $:1 | Message type | CRM.DATA | Customer data message |
| $:3 | Block quantity | 3 | Number of blocks contained in the message |
The frame contains exactly one message: CRM.DATA.
3. Message Body
The message body contains three blocks.
Block 1 — Customer Instance
$:4=1|$:5=I|$:6=2000| 2001=1| 2002=Robert| 2003=Homa| 2004=
Block metadata
| Tag | Name | Value | Description |
|---|---|---|---|
| $:4 | Block counter | 1 | First block in the message |
| $:5 | Block type | I | Instance — one occurrence of an entity |
| $:6 | Entity identifier | 2000 | CUSTOMER entity |
Customer fields
| Tag | Field | Value / operation | Description |
|---|---|---|---|
| 2001 | customerId | 1 | Customer identifier |
| 2002 | name | Robert | Customer name |
| 2003 | surname | Homa | Customer surname |
| 2004 | Customer email address | ||
| 2005 | town | ^N | Field is explicitly set to NULL |
| 2006 | telephone | ^N | Field is explicitly set to NULL |
| 2007 | type | ^N | Field is explicitly set to NULL |
| 2050 | contractMap | @2;3 | Reference to nested blocks 2 and 3 |
The expression:
means that field 2050, named contractMap, references blocks 2 and 3.
The @ operator is a reference operator.
Block 2 — First Contract Collection Element
$:4=2|$:5=V|$:6=2050| 3201=3| 2001=1| 3202=4000| 3203=2345678767| 3205^N| $:132=2345678767|
Block metadata
| Tag | Name | Value | Description |
|---|---|---|---|
| $:4 | Block counter | 2 | Second block in the message |
| $:5 | Block type | V | Value — an element of a collection |
| $:6 | Collection identifier | 2050 | contractMap collection |
Collection 2050 contains elements based on entity 3000.
Contract fields
| Tag | Field | Value / operation | Description |
|---|---|---|---|
| 3201 | id | 3 | Contract identifier |
| 2001 | customerId | 1 | Identifier of the owning customer |
| 3202 | amount | 4000 | Contract amount |
| 3203 | contractNo | 2345678767 | Contract number |
| 3205 | status | ^N | Contract status is explicitly set to NULL |
| $:132 | Block identity | 2345678767 | Identity or reference value of the collection element |
Block 3 — Second Contract Collection Element
$:4=3|$:5=V|$:6=2050| 3201=2| 2001=1| 3202=2000| 3203=1234567876| 3205^N| $:132=1234567876|
Block metadata
| Tag | Name | Value | Description |
|---|---|---|---|
| $:4 | Block counter | 3 | Third block in the message |
| $:5 | Block type | V | Value — an element of a collection |
| $:6 | Collection identifier | 2050 | contractMap collection |
Contract fields
| Tag | Field | Value / operation | Description |
|---|---|---|---|
| 3201 | id | 2 | Contract identifier |
| 2001 | customerId | 1 | Identifier of the owning customer |
| 3202 | amount | 2000 | Contract amount |
| 3203 | contractNo | 1234567876 | Contract number |
| 3205 | status | ^N | Contract status is explicitly set to NULL |
| $:132 | Block identity | 1234567876 | Identity or reference value of the collection element |
4. Message Trailer
$:9=28|
| Tag | Name | Value | Description |
|---|---|---|---|
| $:9 | Checksum | 28 | Checksum of the CRM.DATA message |
The trailer belongs to the single CRM.DATA message.
It is not a separate message.
Operators
| Operator | Category | Meaning |
|---|---|---|
| = | Value assignment | Assigns a value to a field |
| ^ | State Modifier | Changes the logical state of a field |
| ^N | State Modifier — Null | Explicitly sets the field to NULL |
| @ | Reference | References another block or set of blocks |
| @2;3 | Block reference | References blocks 2 and 3 |
Block Types
| Type | Name | Meaning |
|---|---|---|
| I | Instance | A single occurrence of an entity |
| V | Value | An element belonging to a collection or composite field |