[xsd-users] XSD 4.0.0 released
Boris Kolpackov
boris at codesynthesis.com
Tue Jul 22 05:23:40 EDT 2014
Hi,
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.
C++/Tree
* 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:
http://www.codesynthesis.com/~boris/blog/2014/07/22/codesynthesis-xsd-4-0-0-released/
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:
http://www.codesynthesis.com/products/xsd/download.xhtml
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
Enjoy,
Boris
More information about the xsd-users
mailing list