[xsd-users] XSD 3.1.0 released
Boris Kolpackov
boris at codesynthesis.com
Thu Feb 7 06:53:35 EST 2008
Hi,
We have released XSD 3.1.0. The NEWS file entries for this release
are as follows:
* New option, --file-per-type, triggers generation of a separate set
of C++ files for each type defined in XML Schema. This compilation
mode is primarily useful when some of your schemas cannot be compiled
separately or have cyclic dependencies which involve inheritance.
Other new options that are useful in this compilation mode are
--type-file-regex, --type-file-regex-trace, and --file-list. See the
compiler command line manual (man pages) for more information.
* New option, --options-file, allows additional command line options
to be provided in files, with one option per line.
* New option, --reserved-name, allows insertion of additional names
with optional replacements to the list of names that should not be
used as identifiers. See the compiler command line manual (man pages)
for details.
* New options, --location-map, --location-regex, and
--location-regex-trace, allow re-mapping of schema locations
specified in the include and import elements without modifying the
schema files. See the compiler command line manual (man pages) for
more information.
* New option, --guard-prefix, allows specification of a prefix that
should be added to generated header inclusion guards.
* New option, --file-list, triggers creation of a file with a list of
generated C++ files. This option is primarily useful in the file-per-
type compilation mode (--file-per-type) to create a list of generated
C++ files, for example, as a makefile fragment. Other new options
that are useful with --file-list are --file-list-prologue,
--file-list-epilogue, and --file-list-delim. See the compiler command
line manual (man pages) for more information.
* Support for the upcoming Xerces-C++ 3.0.0 release.
C++/Tree
* New option, --generate-intellisense, triggers generation of workarounds
for IntelliSense bugs in Visual Studio 2005 (8.0). When this option is
used, the resulting code is slightly more verbose. IntelliSense in
Visual Studio 2008 (9.0) does not require these workarounds. Support
for IntelliSense in Visual Studio 2003 (7.1) is improved with this
option but is still incomplete.
* New options, --type-naming and --function-naming, allow specification
of the type and function naming conventions that should be used in the
generated code. Supported values for --type-naming are: knr (K&R), ucc
(upper-camel-case), and java. Supported values for --function-naming
are: knr (K&R), lcc (lower-camel-case), and java. For more information
see the NAMING CONVENTION section in the compiler command line manual
(man pages).
* New options, --type-regex, --accessor-regex, --modifier-regex,
--parser-regex, --serializer-regex, and --enumerator-regex, allow
specification of transformations for type, accessor function,
modifier function, parsing function, serialization function, and
enumerator names in order to produce the generated code using a
custom naming convention. For more information see the NAMING
CONVENTION section in the compiler command line manual (man pages).
* Generated list classes now provide a complete set of constructors and
conform to the standard C++ sequence interface.
* String-based types now provide two extra constructors that expect a
C string and std::string as their arguments. This allows direct
initialization of string-based types from string literals.
* New implementations of the XML Schema date/time types (date, dateTime,
duration, gDay, gMonth, gMonthDay, gYear, gYearMonth, and time) that
represent the information in the numerical form.
* New binary serialization examples: binary/boost, which shows how to
save/load the object model to/from a custom format using the Boost
serialization library as an example, and binary/xdr, which shows how to
save/load the object model to/from XDR (eXternal Data Representation)
binary format using the XDR API provided as part of Sun RPC.
* The non-copying modifier functions can now be used to assemble object
models from scratch. For more information see Section 4.4, "Creating
the Object Model from Scratch" in the C++/Tree Mapping Getting Started
Guide as well as Section 2.8, "Mapping for Local Elements and Attributes"
in the C++/Tree Mapping User Manual.
* Doxygen documentation was added to the XSD runtime for the built-in XML
Schema types, exceptions, etc. This allows linking of the generated
documentation to the XSD runtime documentation using the Doxygen tags
mechanism. The Doxygen configuration file for the XSD runtime is
provided in the documentation/cxx/tree/reference/ directory.
* Support for customization of anyType. Because anyType is a base type
for every generated type, customizing it allows one to implement custom
functionality that spans the entire type system. See the comments
example in the examples/cxx/tree/custom/ directory.
* New option, --omit-default-attributes, triggers generation of extra
checks that exclude attributes with default and fixed values from the
serialized XML documents.
* The parsing functions that used to read from DOMInputSource were changed
to use InputSource to ease support of Xerces-C++ 3 and 2 series in the
same code base.
* The parsing function that used to parse DOMDocument* was changed to
parse xml_schema::dom::auto_ptr<DOMDocument>& instead. If the keep_dom
and own_dom flags are specified then this parsing function resets the
passed automatic pointer and the returned object model assumes
ownership of the DOM document. xml_schema::dom::auto_ptr is a simple
automatic pointer for Xerces-C++ DOM with the same interface as
std::auto_ptr.
* The xml_schema::tree_node_key DOM user data key was moved to
xml_schema::dom::tree_node_key.
C++/Parser
* New option, --generate-polymorphic, triggers generation of polymorphism-
aware code. This option should be used on XML vocabularies which use
xsi:type and/or substitution groups. For more information see Section
5.4, "Support for Polymorphism" in the C++/Parser Mapping Getting
Started Guide we well as the polymorphism and polyroot examples in the
example/cxx/parser/ directory.
* The date/time types (date, dateTime, gDay, gMonth, gMonthDay, gYear,
gYearMonth, and time) now represent time zone in the numerical form.
* In order to support parsing of polymorphic XML documents, the signatures
of the start_* functions (_start_element, _start_any_element, and
start_root_element) have changed to include a third argument of type
const ro_string<C>*. This argument contains the resolved type name and
namespace in case the xsi:type attribute was specified.
With this version we have also added support for Windows Vista and Visual
Studio 2008/9.0 (including Express Edition). Furthermore, the precompiled
binary distributions for Windows (both .zip and .msi) now come with separate
project/solution files for Visual Studio 7.1, 8.0, and 9.0 with the latter
two versions including 64-bit build configurations. The .msi package contains
precompiled Xerces-C++ libraries for Visual Studio 7.1 (32-bit), 8.0 (32 and
64-bit), and 9.0 (32 and 64-bit).
Thanks to the following individuals for reporting bugs as well as suggesting
fixes and improvements:
Jeroen N. Witmond <jnw at xs4all.nl>
Shivakumar Balasubramanyam <sbalasub at qualcomm.com>
Uri Karagila <uri at hyperroll.com>
Raul Huertas <raulh39 at tid.es>
Kroizman Guy <kroiz at hyperroll.com>
Michael Forstner <Michael.Forstner at cpg.de>
David Moss <david.r.moss at selex-comms.com>
Ray Lischner <rlischner at proteus-technologies.com>
Nicholas Yue <yue.nicholas at gmail.com>
Roger Goff <rgoff at praxiseng.com>
Mark Hoffmann <mhoffm1060 at aol.com>
Shaun Mangelsdorf <s.mangelsdorf at gmail.com>
Roger Nell <rnell at sempratrading.com>
Seungmin We <wesm at filewood.snu.ac.kr>
Vinay K Mogulothu <vinay.mogulothu at lehman.com>
Jeff Yu <thinkmega at gmail.com>
Rutger Vos <rutgeraldo at gmail.com>
Stefan Stettler <stefan.stettler at noser.com>
Esben Skovenborg <EsbenS at TCElectronic.com>
Raymond Rizzuto <Raymond.Rizzuto at sig.com>
Michael Alig <malig at sempratrading.com>
Francis Rammeloo <francis.rammeloo at gmail.com>
Alexander Petry <petry at itwm.fhg.de>
Robert Wruck <wruck at tweerlei.de>
Precompiled binary distributions are available from the product's
download page:
http://www.codesynthesis.com/products/xsd/download.xhtml
Source code for this release is available from the project's web page:
http://www.codesynthesis.com/projects/xsd/
SHA1 checksums for the files:
463d69ae6304fb54ac5b4dac51d99fd4031b93cf xsd-3.1.0.tar.bz2
113e73b2570afdd9afd7aaec221f133ab52f5988 xsd-3.1.0-powerpc-aix.tar.gz
2a5aa49d985fcf352194e576db33af0325f0f5f9 xsd_3.1.0-1_i386.deb
809891e660372a489a3fc90767ac334b9bf94f7f xsd-3.1.0-1.i686.rpm
a7bf9b26ff5ab577fcfeccc9ea76134da88ec7e2 xsd-3.1.0-i686-linux-gnu.tar.bz2
d861388815e409cd38e7a135c1b53aa5e7c83020 xsd_3.1.0-1_amd64.deb
2c2df669bc845846c502bc04f35c7e8ee9e8eedc xsd-3.1.0-1.x86_64.rpm
22228e928a750c173bcac7023ba704c4d3b7454a xsd-3.1.0-x86_64-linux-gnu.tar.bz2
00b3bbd6247bdb7936600d184efe3c525ef3a6b2 xsd-3.1.0-powerpc-linux-gnu.tar.bz2
3a4f3bdd20153ad160db10191832dc2ee5dc921a xsd-3.1.0-ia64-linux-gnu.tar.bz2
f37f022f7b085bad1f79b593c35c120587fd970e xsd-3.1.0-hppa-hpux.tar.gz
723f15227b9baf30e93636fb1556e7958a48af11 xsd-3.1.0-powerpc-macosx.tar.bz2
0483a5bb88e5bb5c0fc01953867571a4f835a9e0 xsd-3.1.0-i686-macosx.tar.bz2
4c8c5784473c3b8827a11c81c862a008a5810138 xsd-3.1.0-sparc-solaris.tar.gz
7a9f8442eaba9909b19c6935384ecd1f3020b628 xsd-3.1.0-i686-solaris.tar.gz
4fcd68f5311a01665e9926531724be49f604be43 xsd-3.1.0-i686-windows.zip
e4643a0a0fdda69cf64bc0abf1ca1a681b626397 xsd-3.1.msi
Enjoy,
Boris
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 652 bytes
Desc: Digital signature
Url : http://codesynthesis.com/pipermail/xsd-users/attachments/20080207/b5642ae4/attachment.pgp
More information about the xsd-users
mailing list