[xsde-announcements] XSD/e 3.1.0 released
Boris Kolpackov
boris at codesynthesis.com
Wed Apr 15 03:03:03 EDT 2009
Hi,
We have released XSD/e 3.1.0. The NEWS file entries for this release
are as follows:
C++/Hybrid
* Support for XML Schema polymorphism. The new --generate-polymorphic
option triggers the generation of polymorphism-aware code. This option
should be used on XML vocabularies which use xsi:type and/or
substitution groups. For more information see Section 3.7, "Support
for Polymorphism" and Section 4.9, "Polymorphic Object Models" in
the Embedded C++/Parser Mapping Getting Started Guide as well as
the polymorphism and polyroot examples in the examples/cxx/hybrid/
directory.
* Support for saving the object model to and loading it from binary
representations. The new --generate--insertion and --generate-extraction
options trigger the generation of data representation stream insertion
and extraction operators, respectively. The XSD/e runtime provides
support for the ACE CDR streams and XDR API that is part of Sun RPC.
Custom representations can be supported by implementing insertion and
extraction operators for the built-in XML Schema types and sequence
templates. For more information, see Chapter 7, "Binary Representation"
in the Getting Started Guide as well as examples in the
examples/cxx/hybrid/binary/ directory.
* Support for attributes with default and fixed values. For details see
Section 4.3, "Attributes and Elements" in the Getting Started Guide.
Use the new --omit-default-attributes option to omit the attributes
with default and fixed values from serialized XML documents.
* New option, --custom-type, allows the customization of the object model
classes. You have the option of either basing your custom implementation
on the generated version or providing your own implementation from
scratch. For details see Section 4.8, "Customizing the Object Model"
in the Getting Started Guide as well as examples in the
examples/cxx/hybrid/custom/ directory.
* New option, --generate-detach, triggers the generation of detach
functions for elements and attributes of variable-length types. These
functions, for example, allow you to move sub-trees in the object model
either within the same tree or between different trees. The sequence
interfaces for variable-length types now also provide the detach()
function.
* The generated parser and serializer implementations are now capable
of parsing/serializing recursive types. The XSD/e compiler detects
recursive types and generates stack-based implementations with the
optimized non-recursive case (i.e., the first iteration still does
not result in any heap allocations for the state maintenance).
* Assignment function with signature assign(const T*, size_t) for
sequences of fixed-length types. With this function you can, for
example, initialize a sequence with a C array. Assignment of
sequences of fundamental types (e.g., int, float, etc.) is
implemented in terms of memcpy().
C++/Serializer
* Support for XML pretty-printing. The serialize() functions in the
xml_schema::document_simpl class now have the flags argument (defaults
to 0). You can pass the xml_schema::document_simpl::pretty_print flag
for this argument to turn on pretty-printing. See the examples and
documentation for details.
This release also adds official support for LynxOS 4.2 and 5.0, as well as
VxWorks 6.7.
Precompiled binary distributions are available from the product's download
page:
http://www.codesynthesis.com/products/xsde/download.xhtml
Source code for this release is available from the project's web page:
http://www.codesynthesis.com/projects/xsde/
Starting with this release we provide the xsde+dep package which contains
pre-configured XSD/e source code with all its dependencies that can be used
to build the XSD/e compiler binary in non-interactive mode. See the README
file inside for details.
SHA1 checksums for this release:
e713b7e6ad930bc23b9bac8b00e4012d8903f781 xsde-3.1.0.tar.bz2
dc4ed76d092e4cc40f9aff4bad45aea4362b53e2 xsde+dep-3.1.0.tar.bz2
c8c0baea4cdc00291b5f10d8e553486ba3984bcc xsde-3.1.0-i686-linux-gnu.tar.bz2
ceae2398fff515e31591ffb604c1c152e5b661f6 xsde-3.1.0-i686-macosx.tar.bz2
21f34f44d8f27c19e42b686f27307e6dc7e02380 xsde-3.1.0-sparc-solaris.tar.gz
767a668802a3dc27f5140175f01765fb18608f5e xsde-3.1.0-i686-windows.zip
Enjoy,
Boris
More information about the xsde-announcements
mailing list