DAXP Preamble Specification
Status: Under active development
Overview
The DAXP preamble defines frame-level metadata required for protocol identification, decoding, namespace resolution, routing, and validation.
The preamble is always located at the beginning of a DAXP frame and must be processed before any messages contained within the frame.
Purpose
The DAXP preamble is a compact header composed of key=value elements separated by the pipe character (|).
Implementations may use the SOH character (0x01) as the field delimiter when operating in the corresponding wire format.
The preamble allows the receiving system to determine:
- which protocol and protocol version are being used,
- which character encoding should be applied,
- which namespace defines the message and tag semantics,
- which implementation produced the frame,
- how many messages are contained in the frame.
General Structure
DAXP|V=0.8|I=daxp-core-java|EN=UTF-8|NS=BANK.CRM|MQ=2|
The DAXP identifier must be the first element of the frame.
The remaining preamble fields should follow the canonical order defined by the protocol specification.
Preamble Tag Reference
| Tag | Symbol | Required | Description |
|---|---|---|---|
| DAXP | PROTOCOL | Yes | Identifies the frame as a DAXP frame. It must always be the first element of the preamble. |
| V | VERSION | Yes | Identifies the version of the DAXP protocol used to encode the frame. |
| I | IMPLEMENTATION | No | Identifies the implementation, library, runtime, or protocol profile that generated the frame. |
| EN | ENCODING | No | Defines the character encoding used by the frame. |
| NS | NAMESPACE | Yes | Identifies the namespace used to resolve message types, schemas, entities, and tag definitions. |
| MQ | MESSAGE_QUANTITY | No | Specifies the total number of messages contained within the current DAXP frame. |
Processing Rules
- The receiver must verify that the first element is the DAXP protocol identifier.
- The protocol version must be validated before parsing subsequent frame elements.
- The declared encoding must be applied before interpreting textual values.
- The namespace must be resolved before message types and numeric tags are interpreted.
- When MQ is present, the receiver should verify that the number of parsed messages matches the declared value.
- Unknown optional preamble fields may be ignored unless the active protocol profile defines stricter validation rules.
Example
DAXP|V=0.8|I=daxp-core-java|EN=UTF-8|NS=BANK.CRM.CUSTOMER|MQ=2|
This preamble declares:
- DAXP protocol version 0.8,
- daxp-core-java as the producing implementation,
- UTF-8 character encoding,
- the BANK.CRM.CUSTOMER namespace,
- two messages contained within the frame.