[xsd-announcements] XSD 3.1.0 released

Boris Kolpackov boris at codesynthesis.com
Thu Feb 7 06:55:53 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-announcements/attachments/20080207/3d8de4c9/attachment.pgp


More information about the xsd-announcements mailing list