[xsd-announcements] XSD 4.0.0 released
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
* 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
* 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
* 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:
More information about the xsd-announcements