[xsde-announcements] XSD/e 3.1.0 released

Boris Kolpackov boris at codesynthesis.com
Wed Apr 15 03:03:03 EDT 2009


We have released XSD/e 3.1.0. The NEWS file entries for this release
are as follows:


  * 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/

  * 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()

  * 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().


  * 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


Source code for this release is available from the project's web page:


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


More information about the xsde-announcements mailing list