primary |
Extensible Binary Markup Language (EBML)
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:
- There is currently no equivalent to a DTD or Schema to define known
elements for a document. But we plan on adding such a level.
- No entity can be defined, ie an element that would be replaced by
another content. We don't plan to add something like this so far.
- No external include of other files (like CSS, images, etc). It could
be easily added as a "proprietary" element (not defined in the basic
EBML format).
For the rest, you have all advantages like:
- Upward compatibility when the format is updated. Something rare in
binary formats, unless you have some unused space in the original
format.
- Unlimited size of binary data.
- Very size efficient: only space required for a data is written (unless
you specifically require more space for better updating later).
|