<p>Following Izb's question about <a href="https://stackoverflow.com/questions/8599/best-binary-xml-format-for-javame">Best binary XML format for JavaME</a>, I'm looking for an implementation for either binary XML-like formats or just plain XML. My metrics for such implementation, by most important first, are:</p>

<ol>
<li>Supported phones. A basic <a href="http://jcp.org/en/jsr/detail?id=185" rel="nofollow noreferrer">JTWI</a> phone should be able to run it. </li>
<li>It should be either verified or open source, so I could have it verified.</li>
<li>Small memory footprint.</li>
<li>Fast.</li>
<li>Easy to use on server side.</li>
</ol>

The W3C defined a binary encoding for XML, it's called Fast InfoSet, but it's optimised for high-volume web services, rather than embedded devices, and I don't think there are any light and fast implementations suitable for you.
If you want to stick with plain XML, and you need a DOM implementation, then go with XOM (
http://xom.nu
). It's easily the DOM with the smallest footprint, and it's very fast.
But if you really need to reduce your footprint, then you need to use a non-DOM API like SAX or STAX, but that's considerably more work.