libEBML by the Matroska team (original) (raw)

EBML – Extensible Binary Markup Language

EBML was designed to be a simplified binary extension of XML for the purpose of storing and manipulating data in a hierarchical form with variable field lengths.

It uses the same paradigms as XML files, meaning that syntax and semantics are separated. So a generic EBML library could read any format based on it. The interpretation of data is up to a specific application that knows how each elements (equivalent of XML tag) has to be handled.

Among all the advantages of XML, there are a few limitations compared to what XML can achieve:

For the rest, you have all advantages like:

There is also one disadvantage commonly said about XML: it's very verbose. That's why you should have default/assumed values in you EBML-based format as much as possible. So you just describe what is really necessary.

EBML was originally created for the Matroska project. So this is naturally the first format based on EBML to exist. You are therefore encouraged to check the specs to know how to design a format based on EBML.

Contact

All people that are working on EBML are related to Matroska. So you'd better contact the Matroska team.