From boris at codesynthesis.com Thu Oct 5 09:33:11 2023 From: boris at codesynthesis.com (Boris Kolpackov) Date: Thu Oct 5 09:24:04 2023 Subject: [xsd-users] XSD 4.2.0 released Message-ID: 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.