[xsd-users] XSD 3.0.0.b2 released

Boris Kolpackov boris at codesynthesis.com
Tue Jun 26 11:13:45 EDT 2007


Hi,

We have released XSD 3.0.0.b2 which is the second and final beta for
the upcoming 3.0.0 major release. This beta is mostly focused on the
C++/Parser mapping though there are some changes to C++/Tree since
the previous beta (see the second and fifth points in the C++/Tree
category below). The NEWS file entries so far are as follows:

  * Anonymous type morphing (automatic type naming) is now performed by
    default in both mappings. The --morph-anonymous option does not have
    any effect but is preserved for backwards compatibility. A new option,
    --preserve-anonymous, disables anonymous type morphing. This option is
    useful together with --show-anonymous if you want to make sure your
    schemas do not have any anonymous types.

  * Number of bug fixes in both C++/Tree and C++/Parser mappings.

 C++/Tree

  * Optimizations for the generated code size and compilation time,
    including space optimizations for polymorphic parsing and
    serialization.

  * The type definitions for local elements and attributes in the form
    name::type have been changed to name_type. For example, an element
    bar in type foo with maxOccurs="unbounded" used to have its iterator
    type defined as foo::bar::iterator. With this change it becomes
    foo::bar_iterator. Furthermore, the container type for sequence
    elements has changed from foo::bar::container to foo::bar_sequence
    and for optional elements and attributes from foo::bar::container
    to foo::bar_optional. This is a backwards incompatible change and
    may require the application code adjustments (the C++ compiler will
    pinpoint the affected places).

  * New option, --generate-wildcard, triggers generation of the new
    wildcard (any and anyAttribute) mapping. This mapping represents the
    content matched by wildcards as DOM fragments. For more information on
    the new mapping see Section 2.12, "Mapping for any and anyAttribute"
    in the C++/Tree Mapping User Manual as well as the wildcard example in
    the examples/cxx/tree/ directory.

  * New option, --generate-comparison, triggers generation of comparison
    operators (== and !=) for complex types. Comparison is performed
    memberwise.

  * New constructor is generated for complex types with ultimate bases
    that are simple types and can be default-initialized. This constructor
    includes initializers for all required members but omits the initializer
    for the base type. See Section 2.7, "Mapping for Complex Types" in the
    C++/Tree Mapping User Manual for more information.

  * Support for polymorphic binary serialization and extraction. Note that
    the semantics of the --generate-insertion and --generate-extraction
    options has changed. See the XSD Compiler Command Line Manual (man
    pages) for details.

  * New parsing function with the DOMDocument* argument and the own_dom
    flag allow the tree to assume the DOM document ownership when when
    DOM association is used (keep_dom flag). See the C++/Tree Mapping
    User Manual for more information.

  * The mapping of built-in XML Schema type decimal has changed from
    long double to double. The old mapping can be obtained by providing
    a custom mapping for this type.

  * The xml_schema::errors type which is used in the xml_schema::parsing
    and xml_schema::serialization exceptions has been renamed to
    xml_schema::diagnostics and extended to include warnings in addition
    to errors.

  * Serialization operators now clear the element being serialized to from
    existing child nodes and attributes (except for special attributes such
    as prefix-namespace mappings, etc.).

  * Improved built-in type parsing, including support for normalization and
    whitespace collapsing.

 C++/Parser

  * The C++/Parser mapping have been significantly redesigned. See the new
    Getting Started Guide in documentation/cxx/parser/guide/ for details.

  * The new C++/Parser Mapping Getting Started Guide is available in the
    documentation/cxx/parser/guide/ directory.

  * The mapping now provides parser implementations for all built-in
    XML Schema types. See Chapter 6 in the C++/Parser Mapping Getting
    Started Guide for more information.

  * The mapping now supports automatic generation of sample parser
    implementations and a test driver. The --generate-noop-impl option
    triggers generation of a sample implementation with empty function
    bodies. The --generate-print-impl option triggers generation of a
    sample implementation that prints the data stored in XML to STDOUT.
    The --generate-test-driver trigger generation of a test driver. For
    more information on this feature see the XSD Compiler Command Line
    Manual and the 'generated' example in the example/cxx/parser directory.
    Other relevant options include: --force-overwrite, --root-element-first,
    --root-element-last, and --root-element.

  * The xml_schema::errors type which is used in the xml_schema::parsing
    exception has been renamed to xml_schema::diagnostics and extended to
    include warnings in addition to errors.


Thanks to the following individuals for reporting bugs as well as
suggesting fixes and improvements:

Ray Lischner       <rlischner at proteus-technologies.com>
Bradley Beddoes    <beddoes at intient.com>
Mark Hoffmann      <mhoffm1060 at aol.com>
Thomas Müller      <th.mueller at weisang.com>
Mark Lofdahl       <mark.lofdahl at bigfoot.com>
Fukasawa Mitsuo    <fukasawa_mitsuo at nifty.com>
Mark Watson        <mark at digitalfountain.com>
Sergei V. Firsov   <sergei.firsov at mail.ru>
Paolo Volpi        <paolo.volpi at tvblob.com>
Mark Kinzie        <mark.kinzie at jhuapl.edu>
Arthur             <mur at freenet.am>
Eelko de Groot     <efdegroot at corp.csnet.nl>
Thomas Maenner     <tmaenner at aehr.com>
Gerard Lanois      <gerard at lanois.com>
Glenn Nieuwenhuyse <glenn.nieuwenhuyse at gmail.com>
Mark Kinzie        <mark.kinzie at jhuapl.edu>


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:

50008c0ecbcd07313a191044404650c7b9478e3e  xsd-3.0.0.b2.tar.bz2
3133d0c56f01a7901f9f8f40855af1a0efe27d2a  xsd-3.0.0.b2-i686-linux-gnu.tar.bz2
9c0a76dd18a00b58aa6004400d1d544f678d646e  xsd-3.0.0.b2-x86_64-linux-gnu.tar.bz2
426851e581690b1f958af35ea233b70fde77e6ee  xsd-3.0.0.b2-i686-windows.zip


Have fun,

-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/20070626/27c4f8d2/attachment.pgp


More information about the xsd-users mailing list