[xsd-announcements] XSD 3.0.0 released

Boris Kolpackov boris at codesynthesis.com
Wed Aug 1 06:26:14 EDT 2007


We have released XSD 3.0.0. This is a major release which includes a
number of backwards-incompatible changes with respect to the XSD-2.3
series. The NEWS file entries for this release 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.

  * A number of bugs fixed in both C++/Tree and C++/Parser mappings.


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

  * 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 name 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 application code adjustments (the C++ compiler will
    pinpoint the affected places).

  * New option, --generate-doxygen, triggers generation of documentation
    comments suitable for extraction by the Doxygen documentation system.
    Documentation from annotations is added to the comments if present in
    the schema.

  * 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

  * Support for the RPC XDR binary stream in addition to ACE CDR.

  * 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 ownership of the DOM document
    being parsed when DOM association is requested (keep_dom flag).
    See the C++/Tree Mapping User Manual for more information.

  * New example, multiroot, shows how to handle XML vocabularies with
    multiple root elements.

  * New example, caching, shows how to parse several XML documents while
    reusing the underlying XML parser and caching the schemas used for

  * 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.

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


  * 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, "Built-In XML Schema Type Parsers" 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 option 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.

  * New example, wildcard, shows how to parse the XML data matched by
    XML Schema wildcards (any and anyAttribute).

  * The xml_schema::document parser has been extended with overridable
    virtual functions start_root_element and end_root_element to support
    parsing of XML vocabularies with multiple document roots. See the
    multiroot example in the example/cxx/parser/ directory for more

  * 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>
David Moss            <david.r.moss at selex-comms.com>
Jon D                 <tyrecius13 at yahoo.com>
Matt Burnham          <matt.burnham.ctr at mhpcc.hpc.mil>
Shiva Balasubramanyam <sbalasub at qualcomm.com>
James Frullo          <jamesfrullo at gmail.com>

Precompiled binary distributions are available from the product's
download page:


Source code for this release is available from the project's web page:


SHA1 checksums for the files:

e2289e4407cbb0507604107012216ad74abb3379  xsd-3.0.0.tar.bz2
338729e6c750380818764dc6a48422919dfbc53e  xsd-3.0.0-powerpc-aix.tar.gz
8e273ce0557625384df067aa6d2d2f4757bc48ed  xsd_3.0.0-1_i386.deb
10110278c56acbd75ed3c4756860d387b34b929d  xsd-3.0.0-1.i686.rpm
dcdd636d52e62ce209e006cb50d8e6c26abfca8d  xsd-3.0.0-i686-linux-gnu.tar.bz2
4eb3400c94c3c0b1c88120f88b6709a2e8bd0310  xsd_3.0.0-1_amd64.deb
3417476fae1f05955a66a190ef8eb86e93850dd7  xsd-3.0.0-1.x86_64.rpm
1df636cca463e24fbdf3c08c49489267c44aa35f  xsd-3.0.0-x86_64-linux-gnu.tar.bz2
978a34dd146d8eb337f1ff8154d16dd86792daa8  xsd-3.0.0-powerpc-linux-gnu.tar.bz2
fa04a8b0e72e6046aa8a13e9f14c1062294d4f20  xsd-3.0.0-ia64-linux-gnu.tar.bz2
e13e239610f888d7f56dce2ecfa2c30a23f343e0  xsd-3.0.0-hppa-hpux.tar.gz
f52651c56b2750d76fc81d6cecacd2acf12e4f6c  xsd-3.0.0-hppa-hpux.tar.bz2
3591d76a8515ffe1a644ac4708ba56559e8118fc  xsd-3.0.0-powerpc-macosx.tar.bz2
659b86160677f8c42bc6b7f41942859b674ecd3a  xsd-3.0.0-sparc-solaris.tar.gz
981aff54149a459c3d4b7d29af0fd7d383eb49b2  xsd-3.0.0-sparc-solaris.tar.bz2
3e0130bc28f3730a21a48f98cf252422720552c5  xsd-3.0.0-i686-solaris.tar.gz
97c74e5533033b998b1ae2d7b0260eec41e785d1  xsd-3.0.0-i686-solaris.tar.bz2
04fd710df68dfa4f94d61f9a9c6a09c9e1bf842f  xsd-3.0.0-i686-windows.zip
69ce99e13d02352de34d28b486ce8bc4cb39ea30  xsd-3.0.msi


-------------- 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/20070801/7335e241/attachment.pgp

More information about the xsd-announcements mailing list