[xsde-users] XSD or XSD/e?
Boris Kolpackov
boris at codesynthesis.com
Tue Aug 18 10:15:04 EDT 2009
Hi Duncan,
Duncan.Perrett at elekta.com <Duncan.Perrett at elekta.com> writes:
> "The code generated by the CodeSynthesis compiler is the complete code
> needed in order to serialize objects based on the defined schema. XSD/e
> is aimed at embedded applications, using its own library, whilst XSD
> relies on XML parsers provided by other libraries. For object
> serialization, this library choice is restricted to Xerces. On closer
> examiniation, there appears to be no means of serializing an XML document
> into a class with CodeSynthesis XSD/e; code is only generated for
> serializing object data to file. CodeSynthesis XSD, however could be used
> to generate XML data of the required form".
Some of this analysis is not exactly correct. Let me clarify a few
things:
1. XSD (or, more precisely, the C++/Tree mapping) consists of three
parts: the generated code, the header-only runtime library (libxsd),
and the underlying XML parser/serializer (Xerces-C++).
2. XSD/e (again, more precisely, the C++/Hybrid mapping which is
similar to C++/Tree but is designed and optimized for embedded
systems) consists of two parts: the generated code and the
runtime library (libxsde). The runtime library includes a
customized versions of XML parser (expat) and serializer
(genx).
3. The C++/Hybrid mapping in XSD/e, just like C++/Tree in XSD, is
capable of parsing the XML documents to the in-memory object
model (C++ classes) and serializing this object model back to XML.
> I notice that XSD/e supports LynxOS but does XSD?
There is a way to use XSD on LynxOS but the procedure for building
Xerces-C++ is quite complex (we have built it once on LynxOS 4.2
for a client). So unless you have strong reasons to prefer XSD,
I suggest that you go with XSD/e. It has been tested and is
fully supported on LynxOS 4.2 and 5.0.
Let me know if you have any further questions.
Boris
More information about the xsde-users
mailing list