[xsd-announcements] XSD 3.0.0 released
Boris Kolpackov
boris at codesynthesis.com
Wed Aug 1 06:26:14 EDT 2007
Hi,
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.
C++/Tree
* 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
memberwise.
* 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
validation.
* 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.
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, "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
information.
* 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:
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:
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
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/20070801/7335e241/attachment.pgp
More information about the xsd-announcements
mailing list