[XML-SIG] Is anyone implementing EXI in Python?

Stefan Behnel stefan_ml at behnel.de
Wed Jul 15 22:26:57 CEST 2009


Hi,

Stanley A. Klein wrote:
> On Wed, July 15, 2009 1:37 pm, Henry S. Thompson wrote:
>> Stanley A. Klein writes:
>>
>>> Efficient XML Interchange (EXI) is moving toward adoption by W3C.  It
>>> provides a format for efficiently representing XML documents with
>>> schema-informed and schema-less modes.
>>>
>>> There is an open-source Java implementation available.
>>>
>>> Is anyone working to implement EXI in Python?
>>
>> Don't get me wrong, I think EXI is useful, in the right places, but,
>> could I ask, why would you want to implement it in Python?  I'd be
>> very surprised if any Python XML application is spending anything like
>> enough time in the raw parsing activity (as opposed to the
>> structure-building activity) to make the marginal gain you might get
>> from EXI worth it. . .
>>
>> EXI is, IMO, for closely coupled systems in particular messaging
>> environments where every bit counts, and I guess I'm having difficulty
>> imagining Python in such a context. . .
>
> EXI is for data interchange.  That can mean messaging or document/data
> storage.  SOAP messages are very verbose, and SOAP messaging can benefit
> from EXI, especially if the communications channels have bandwidth or
> transit time considerations.
>
> SOAP is increasingly being considered in a
> variety of control system applications for which Python makes sense as an
> implementation language.  Similarly, scientific applications involving
> large amounts of XML-formatted data could benefit from EXI in storing the
> data or interchanging it for purposes such as grid processing.
>
> The original application that contributed the technology for EXI was
> sending web pages to cell phones.
>
> In general, any applications implemented in Python that involves
> messaging
> or data storage with either bandwidth or storage volume concerns could
> benefit from EXI.  And as best I know there are a growing number of such
> applications implemented in Python.

Any XML transmission or storage can benefit from *compression*, often
shrinking the data volume by factors up to 100. I doubt that the savings of
EXI are sufficiently large compared to a well compressed XML stream that
they compensate for the drawbacks of yet another new non-readable format.

A well chosen compression method is a lot better suited to such
applications and is already supported by most available XML parsers (or
rather outside of the parsers themselves, which is a huge advantage).


> Also, why would Java make sense and Python not?

Because pretty much all XML technologies come from the Java environment?
That doesn't mean that Java is a suitable language for working with them.
It only means that it supports them because Java is used for developing
them (often as a reference implementation).

Stefan


More information about the XML-SIG mailing list