77 lines
3.8 KiB
HTML
77 lines
3.8 KiB
HTML
<!DOCTYPE html>
|
||
<html>
|
||
<head>
|
||
<meta charset='utf-8'>
|
||
<meta http-equiv="X-UA-Compatible" content="chrome=1">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||
<link href='https://fonts.googleapis.com/css?family=Architects+Daughter' rel='stylesheet' type='text/css'>
|
||
<link rel="stylesheet" type="text/css" href="stylesheets/stylesheet.css" media="screen">
|
||
<link rel="stylesheet" type="text/css" href="stylesheets/pygment_trac.css" media="screen">
|
||
<link rel="stylesheet" type="text/css" href="stylesheets/print.css" media="print">
|
||
|
||
<!--[if lt IE 9]>
|
||
<script src="//html5shiv.googlecode.com/svn/trunk/html5.js"></script>
|
||
<![endif]-->
|
||
|
||
<title>libEBML by the Matroska team</title>
|
||
</head>
|
||
|
||
<body>
|
||
<header>
|
||
<div class="inner">
|
||
<h1>libEBML</h1>
|
||
<h2>a C++ libary to parse EBML files</h2>
|
||
<a href="https://github.com/Matroska-Org/libebml" class="button"><small>View project on</small> GitHub</a>
|
||
</div>
|
||
</header>
|
||
|
||
<div id="content-wrapper">
|
||
<div class="inner clearfix">
|
||
<section id="main-content">
|
||
<h3>
|
||
<a id="ebml--extensible-binary-markup-language" class="anchor" href="#ebml--extensible-binary-markup-language" aria-hidden="true"><span class="octicon octicon-link"></span></a>EBML – Extensible Binary Markup Language</h3>
|
||
|
||
<p>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.</p>
|
||
|
||
<p>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.</p>
|
||
|
||
<p>Among all the advantages of XML, there are a few limitations compared to what XML can achieve:</p>
|
||
|
||
<ul>
|
||
<li>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.</li>
|
||
<li>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.</li>
|
||
<li>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).</li>
|
||
</ul>
|
||
|
||
<p>For the rest, you have all advantages like:</p>
|
||
|
||
<ul>
|
||
<li>Upward compatibility when the format is updated. Something rare in binary formats, unless you have some unused space in the original format.</li>
|
||
<li>Unlimited size of binary data.</li>
|
||
<li>Very size efficient: only space required for a data is written (unless you specifically require more space for better updating later).</li>
|
||
</ul>
|
||
|
||
<p>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.</p>
|
||
|
||
<p>EBML was originally created for the <a href="http://www.matroska.org">Matroska</a> 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.</p>
|
||
|
||
<h3>Contact</h3>
|
||
|
||
<p>All people that are working on EBML are related to Matroska. So you'd better contact the <a href="http://www.matroska.org/contact/index.html">Matroska team</a>.</p>
|
||
|
||
</section>
|
||
|
||
<aside id="sidebar">
|
||
<p><a href="index.html" class="page-link">Home page</a></p>
|
||
<p><a href="specs.html" class="page-link">Specifications</a></p>
|
||
|
||
<p class="repo-owner"><a href="https://github.com/Matroska-Org/libebml">libEBML</a> is maintained by the <a href="http://www.matroska.org/contact/index.html">Matroska team</a>.</p>
|
||
|
||
</aside>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
</body>
|
||
</html>
|