Construct
A construct is essentially a container for holding one or many products with an indication, from the name or hierarchy of the construct, as to why the data is being provided or in what context the data should be interpreted. In effect, the constructs are the top level elements for actual data representation. MDDL defines two (2) constructs:
Snap:
The construct 'snap' holds any number of products with data that are valid at the time of production or are related to a specific market condition. The snap should be used to hold all "snapshot" quotes or "end-of-day" data delivered to the recipient. Senders may mark the snap with the appropriate dataDateTime (at least a date) or marketStatusType to clearly indicate the validity of the data or the context in which the data should be processed. For example, an “end-of-day” snap of data about a particular instrument may indicate the date for which the data is valid and is an indicator that the market is closed.
A single MDDL document may contain any number of snaps and each snap may contain multiple products - but all products within a single snap should have some relationship to one another (otherwise, use multiple 'snap' elements for each unique group of products).
Click here to view an example with 'snap'
Timeseries:
The construct 'timeseries' holds a number of events differentiated by time. Each event may hold any number of products or properties (collected in 'snap' elements). Timeseries is very useful when data for a single instrument is needed over a time range, with multiple data points. For example, a timeseries is used to convey the closing price of an instrument for each day in the previous month or the highest values in each of the five-minute intervals since the market opening.
A single MDDL document may contain any number of timeseries and each timeseries could contain multiple events (for related products or instruments!). Click here to view an example with 'timeseries'
Adding Constructs
The mechanisms provided in MDDL do not currently allow the addition of constructs to MDDL instance documents. Extensibility for constructs is currently being discussed in the MDDL community for implementation in a later version of the specification. Urgent needs for an additional construct should be discussed with the MDDL sponsor for plans for this capability.









