[xsd-users] XSD 4.2.0 released
Boris Kolpackov
boris at codesynthesis.com
Thu Oct 5 09:33:11 EDT 2023
We have released XSD version 4.2.0.
The complete list of the NEWS file entries for this release is included
below. A big thank you to everyone who helped test (or used) the pre-
release snapshots. It took a long time to get this release out and we
appreciate your patience.
Source code and binary distribution packages for this release are
available from:
http://www.codesynthesis.com/products/xsd/download.xhtml
Note that due to the large gap between this and the previous release
(4.0.0) there is some discontinuity in the supported binary packages.
As a result, the download page for version 4.0.0 is preserved to
provide a transition period:
https://codesynthesis.com/products/xsd/download-4.0.xhtml
Note also that version 4.1.0 was never released. It was skipped due
to a minor versioning scheme adjustment in the pre-release component
when migrating to build2.
For the list of supported platforms and compilers see:
https://codesynthesis.com/products/xsd/platforms.xhtml
NEWS file entries for XSD version 4.2.0:
* In this version we have switched to the build2 build system. For the
step-by-step instructions on how to build XSD from source on all the
major platforms, see:
https://codesynthesis.com/products/xsd/doc/install-build2.xhtml
* In this version we have changed the default C++ standard that is used
by the generated code from C++98 to C++11. While you can still request
C++98 with the --std=c++98 option, note that this is the last release
that supports the C++98 standard and the next release will require C++11
or later (in fact, building the XSD compiler itself already requires
C++11 or later). Note also that the --std option now recognizes the
c++14, c++17, c++20, and c++23 additional values.
* This version will be the last release that supports Xerces-C++ earlier
than 3.1.0 and the next release will require Xerces-C++ 3.1.0 or later.
* New --file-list-only option that allows only writing the list of C++
files that would be generated without actually generating them.
* The --file-list option now recognizes the `-` value as a request to write
to stdout.
* New --dep-file option that allows specifying the dependency file name.
It also allows writing the dependency information to stdout by specifying
`-` as this option's value.
* This version contains a large number of bug fixes and minor improvements
that have accumulated over the years.
C++/Tree
* Support for abstract XML Schema types. The corresponding C++ classes now
have the _clone() member function declared pure virtual which prevents
the construction of instances of such types.
Note that if after upgrading to this version you start getting C++
compile errors in the generated code with diagnostics saying that a
type cannot be instantiated because _clone() is pure virtual, then
it's a strong indication that this type (or its base) is polymorphic
and needs to be marked as such (see --polymorphic-type* options).
* New base_string() accessors in the xml_schema::{string,uri} types that
return the underlying string.
* Support for `ucc` (upper-camel-case) value in the --function-naming
option.
* New C++/Tree `secure` example (xsd-examples/cxx/tree/secure/) shows how
to perform more secure XML parsing by disabling the XML External Entity
(XXE) Processing. See the accompanying README file for details.
More information about the xsd-users
mailing list