[xsd-users] Efficient XML Interchange Format (Exi)
Boris Kolpackov
boris at codesynthesis.com
Fri Jan 23 08:56:21 EST 2009
Hi Raymond,
Rizzuto, Raymond <Raymond.Rizzuto at sig.com> writes:
> Does XSD support/plan to support Efficient XML Interchange or
> other mechanisms to reduce the size of XML messages?
We do not currently support EXI nor have any definite plans to
support it. We do support compact and fast (up to 10x speed up)
binary serialization into a number of data representations (CDR,
XDR, custom formats). It should be a lot faster and more compact
than any binary XML representation could ever get because it does
not serialize the markup, only the data. See Section 5.2, "Binary
Serialization" in the C++/Tree Mapping User Manual for details:
http://codesynthesis.com/projects/xsd/documentation/cxx/tree/manual/#5.2
Most people go with binary formats for one (or both) of two
reasons: (1) more compact representation, (2) faster parsing
and serialization. The problem with XSI, and binary XML formats
in general is that they are a half-step in that direction: while
they are more efficient than textual XML, they still don't achieve
the maximum efficiency offered by the markup-less binary formats.
It seems that the majority of people in this situation prefer to
go all the way. This explains why we don't get many inquiries about
supporting binary XML (you are the second person asking about EXI)
and have quite a few people using the binary serialization support.
> After a successful 1st phase of the project I am on (in large part
> due to XSD), we are seeing two issues with our use of XML. One is
> the network bandwidth associated with a projected 200 million
> messages of 2-4k per message during a 7 hour period. The other
> is with the CPU load on the applications receiving and parsing
> the XML messages (these are C# clients using Microsoft's parser).
>
> It seems like EXI might at least address issue 1.
Since you are using C# on the other end, it may be harder for you
to use binary serialization since there is no way to generate the
insertion/extraction code for C# classes.
I agree EXI might address your first problem which can probably
be also addressed by simply compressing XML being sent.
If you really need support for EXI, we can discuss implementing
it as a custom feature on the commercial basis.
Boris
More information about the xsd-users
mailing list