Market Data Definition Language (MDDL)

Table of Contents

Summary

MDDL (Market Data Definition Language) is an XML-based market data description language originally developed by the Financial Information Services Division (FISD) of the Software & Information Industry Association (SIIA), first published in the early 2000s. The latest major generation of the specification published by FISD is MDDL Version 3.0 (released as 3.0-beta, 2007-03-01) — no later beta or final release was ever issued. Following the Version 3 cycle, FISD pivoted away from maintaining MDDL as a standalone XML dialect and contributed its vocabulary and relationship maps toward broader, unified global standards (ISO 20022, the FIX Protocol) instead. The specification files retrieved for this document are archived at external/mddl/ (source: the Internet Archive's capture of the now-defunct mddl.org; see that directory's manifest.json for per-file provenance).

Detail

What MDDL is

MDDL provides a generic XML message format and a glossary/data dictionary of fields for describing financial instruments, corporate events, and market-related indicators, intended to standardise how market data is represented, stored, and exchanged across vendor systems. It is unrelated in origin to RIC or the Bloomberg ticker (both proprietary vendor notations) — MDDL was designed from the outset as an open, committee-governed XML vocabulary, closer in spirit to FpML than to either vendor scheme. See External market data identifiers for how MDDL relates to RIC, Bloomberg, and the ORE canonical/quote key as identifier schemes.

Key evolutionary milestones

The structural progression of the language across its lifecycle highlights the expanded scope of each release:

  • MDDL 1.0: established the fundamental data dictionary, primarily mapping basic properties for common equities, mutual funds, and standard exchange indices.
  • MDDL 2.0: significantly broadened the schema's vocabulary by adding specialised lexical information and complex formatting criteria to support corporate bonds and fixed-income assets.
  • MDDL 3.0: introduced a major structural redesign built around a "central instrument" data model (the prior per-asset-class domains — civDomain, debtDomain, derivativeDomain, equityDomain — were combined into a single instrumentDomain, per the 3.0-beta changelog). This shift harmonised the XML schema directly with global frameworks like the ISO Securities Data Model, enabling superior enterprise-wide integration for security master files.

Current industry status

Following the Version 3 development cycle, FISD pivoted its focus toward working collaboratively with international standards committees rather than continuing to release separate, standalone XML dialects under the MDDL banner. The core vocabulary, definitions, and relationship maps developed for MDDL were largely contributed to broader, unified global standards like ISO 20022 and the FIX Protocol — see that document for FIX's own symbology (SecurityIDSource), which explicitly names RIC_CODE and BLOOMBERG_SYMBOL the same way MDDL's codeType does. No successor MDDL release was ever published — 3.0-beta (2007-03-01) remains the final artefact, aside from a narrower 2009 supplementary schema (mddl4db.xsd) mapping MDDL to a relational database model, which is not a new version of the core language.

Content model

MDDL documents are XML instances of a single root element, <mddl> (fixed version"3.0-beta"= for this release), containing an optional <header> followed by a repeating choice of <snap> or <timeseries> constructs — the two shapes every payload is built from:

  • header: the document preamble — identifying marks of the data provider and general reference material for the document as a whole.
  • snap: holds the basic products for a single-time (at-an-instant) or end-of-day quote — the analog of a single tick or EOD record.
  • timeseries: holds multiple similar "event"s differentiated by dateTime; typically a timeseries wraps a collection of snap constructs about the same instrument (or related instruments) over a fixed time period.

Every snap=/=timeseries is ultimately built from domains — the top-level entity groupings MDDL organises its vocabulary around. Nine domains exist in the 3.0-beta schema, each a distinct XML element (<xDomain>) with its own complex type:

Domain Role
instrumentDomain Generic domain for all instruments and securities — the "central instrument" model that 3.0 restructured around, replacing the four separate 2.0-era domains (civDomain, debtDomain, derivativeDomain, equityDomain).
entityDomain Clarifying information about institutions or organisations (issuers, counterparties, general businesses); the party element is used to identify entities.
caeDomain Corporate Actions and Events — dividends, splits, calls, and other lifecycle events on an instrument.
cashDomain Placeholder domain for basic tender and monetary instruments.
commodityDomain Physical commodities, often referenced by a derivative (future/option) elsewhere in the document.
foreignExchangeDomain FX instruments including actionable conversion rates; may be referenced by a derivative or other related instrument.
indexDomain Statistical or calculated composites indicating relative change in a market or collection of instruments.
indicatorDomain Non-index indicators that are not instruments in their own right (may be referenced by an exchange-traded indicator that is).
portfolioDomain Client portfolios and holdings — explicitly excludes Collective Investment Vehicles or funds, which are modelled as instruments instead.

Within any domain, instrument identity is carried by the instrumentIdentifier container element, not by a short string key: "it may contain many codes from many schemes with multiple names (including multiple languages) […] the intent is that enough information be given to uniquely identify the instrument" (per the schema's own annotation). An instrumentIdentifier pairs a code with a codeType controlled vocabulary — codeType is where an ISIN, a RIC, a ticker, or any other existing scheme's value actually lives; MDDL does not mint a competing short-string notation, it wraps whichever identifier a source system already publishes. The schema also allows an instrument to carry several identifiers of differing scope simultaneously (e.g. a market-specific code alongside an international one) attached to the same record.

Two structural mechanisms recur throughout the schema, per its own terminology reference: inheritance (a domain's inheritable-properties list, seen throughout the XSD's xsd:appinfo annotations, are properties a container makes available to its children without re-declaring them) and shorthand (compact forms for common property combinations). Both exist to keep the otherwise very large property vocabulary (see * Key evolutionary milestones above) tractable inside any one instrument or event record.

Where the specification lives

mddl.org, MDDL's original home, is defunct as of 2026 (it now redirects to an unrelated content-marketing site with no connection to FISD/SIIA or the original standard). The specification, schemas, and supporting documents were located via the Internet Archive's Wayback Machine capture of mddl.org's downloads page and retrieved from there — see external/mddl/methodology.txt for the exact retrieval steps and external/mddl/manifest.json for per-file source URLs and checksums. Files retrieved:

See also

Emacs 29.3 (Org mode 9.6.15)