[xsd-announcements] XSD 4.0.0 released

Boris Kolpackov boris at codesynthesis.com
Tue Jul 22 05:24:14 EDT 2014


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

  * Xerces-C++ 2-series (2.8.0 and earlier) is no longer supported.

  * Visual Studio 2003 (7.1) is no longer supported.

  * HP aCC3 (HP-UX/PA-RISC) is no longer supported.

  * Oracle/Berkeley DB XML support has been removed since it no longer
    supports the Xerces-C++-based document access.

  * New option, --std, specifies the C++ standard that the generated code
    should conform to. Valid values are c++98 (default) and c++11.

    The C++ standard affects various aspects of the generated code that are
    discussed in more detail in mapping-specific documentation (guides and
    manuals). Overall, when C++11 is selected, the generated code relies on
    the move semantics and uses std::unique_ptr instead of deprecated
    std::auto_ptr. See also the documentation for the --std option in the
    XSD compiler command line manual (man pages).

  * New option, --fat-type-file, triggers the placement of code corresponding
    to global elements into type files instead of schema files in the file-
    per-type mode. This option is primarily useful when trying to minimize
    the amount of object code that is linked to an executable by packaging
    compiled generated code into a static (archive) library.


  * Support for ordered types. C++/Tree flattens nested compositors which
    sometimes can result in the loss of element ordering information that
    could be significant to the application. Ordered types address this
    problem. For more information, refer to Section 2.8.4, "Element Order"
    in the C++/Tree Mapping User Manual.

  * Support for mixed content in ordered types. For more information, refer
    to Section 2.13, "Mapping for Mixed Content Models" in the C++/Tree
    Mapping User Manual.

  * xml_schema::type represents anyType content as a DOM fragment, similar
    to wildcards. For more information, refer to Section 2.5.2, "Mapping
    for anyType" in the C++/Tree Mapping User Manual.

  * xml_schema::simple_type represents anySimpleType content as a text
    string. For more information, refer to Section 2.5.3, "Mapping for
    anySimpleType" in the C++/Tree Mapping User Manual.

  * Improved streaming example that now provides better XML namespace
    handling and supports streaming parsing and serialization at multiple
    document levels.

  * New option, --generate-dep, triggers the generation of the make
    dependency files (.d) for the generated C++ files. Other options
    controlling dependency generation are: --generate-dep-only,
    --dep-phony, --dep-target, --dep-suffix, and --dep-regex. For
    details on this functionality, refer to the XSD compiler command
    line manual (man pages).

  * New option, --suppress-assignment, suppresses the generation of copy
    assignment operators for complex types. If this option is specified,
    the copy assignment operators for such types are declared private and
    left unimplemented.

  * Binary representation now stores string-based enumerations as integer
    values corresponding to C++ enumerators instead of string literals.

  * Binary representation now pools polymorphic type-id strings in an
    implicit string pool. The string pool support can also be used to
    pool strings in other situations. For example, you can implement
    string insertion/extraction operators for your stream to pool all
    strings. This can be useful if your documents contain a large number
    of repetitive strings.

  * New option, --polymorphic-plate, allows the creation of multiple
    polymorphic map plates in the same application. For details, refer
    to the XSD compiler command line manual (man pages).

  * To get the DOM association in the copy of an object model tree one
    now needs to explicitly pass the xml_schema::flags::keep_dom flag as
    the second argument to the copy constructor or clone() function.

This release also adds support for Clang as well as Visual Studio 2012
(11.0) and 2013 (12.0), including project/solution files for all the
examples. The .msi package also includes pre-built Xerces-C++ libraries
for these versions of VC++.

A more detailed discussion of the major new features can be found in the
following blog post:


We would also like to thank everyone who reported bugs, suggested fixes
or new features, as well as tested early versions of this release.

Source code and pre-compiled binary packages for this release are available
from the XSD Download page:


SHA1 checksums for the files in this release are as follows:

4b4670f60ce2009d8a2c5ece9b93e88c4bd5de8a  xsd-4.0.0-1.i686.rpm
bf79548c8030dbd5489a54ac5c5d543e1a35bb73  xsd_4.0.0-1_i386.deb
6d244d447cc995cc7df77dcf0f015d60002782a0  xsd-4.0.0-i686-linux-gnu.tar.bz2
47b8b65c7f68d34848e3226aaddb4352a37ca375  xsd-4.0.0-1.x86_64.rpm
4f5030518ec7691ca5517ac06f0905d0ee06699b  xsd_4.0.0-1_amd64.deb
bb96454da6acafb93180368220d555e2b9747023  xsd-4.0.0-i686-macosx.tar.bz2
5eeb2eeca0d893949e3677bb374e7b96f19770d6  xsd-4.0.0-x86_64-linux-gnu.tar.bz2
d92124e9ac50ced783184469059e88c96481a683  xsd-4.0.0-i686-solaris.tar.bz2
c830b060f7003937cb7b88231614b118832554e9  xsd-4.0.0-sparc-solaris.tar.bz2
d129469e109784c663387ca8bee5ac627434cfca  xsd-4.0.0-i686-windows.zip
3a6ea8b4475c7bc4376c0e7058b6cf87473dce1f  xsd-4.0.msi
7e2a3924c3cee4ab839b9c2a6369464caacd2ef5  xsd-4.0.0.tar.bz2
ad3de699eb140e747a0a214462d95fc81a21b494  xsd-4.0.0+dep.tar.bz2


More information about the xsd-announcements mailing list