[xsde-announcements] XSD/e 2.1.0 released
Boris Kolpackov
boris at codesynthesis.com
Wed Jun 11 06:24:29 EDT 2008
Hi,
We have released XSD/e 2.1.0. The NEWS file entries for this release
are as follows:
* New delegation-based parser/serializer implementation reuse style in
addition to virtual inheritance-based. The new style results in a much
smaller object code size. The new reuse style is used by default and is
incompatible with the old style. Applications that require backwards
compatibility should use the --reuse-style-mixin option. The reuse
support code now can be completely omitted with the --reuse-style-none
option. A number of examples were converted to support both the new
and old reuse styles while others were converted to support the new
style only. For more information on the new reuse style see Section
5.6 in the Embedded C++/Parser Getting Started Guide and Section 6.6
in the Embedded C++/Serializer Getting Started Guide.
* 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 inserting 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 specifying a prefix that will 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.
* In type map files the optional argument type now defaults to the
return type if the return type ends with * or & (that is, it is
a pointer or a reference) and 'const return type&' otherwise.
* Type map files can now include comments. A comment starts with #
and ends with a new line or end of file. To specify a name that
contains # enclose it in "".
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.7, "Support for Polymorphism" in the Embedded C++/Parser Mapping
Getting Started Guide we well as the polymorphism and polyroot
examples in the examples/cxx/parser/ directory.
* New options, --generate-xml-schema and --extern-xml-schema, trigger
generation of the mapping for the XML Schema namespace to a separate
header file and inclusion of that header into other generated header
files instead of generating the necessary declarations inline,
respectively. See the the compiler command line manual (man pages)
for details.
* Support for parser reuse after an error. For more information refer
to Section 7.4, "Reusing Parsers after an Error" in the Embedded
C++/Parser Mapping Getting Started Guide. To suppress generation
of the reset code use the --suppress-reset option.
* New, context-based internal parsing architecture which provides
better performance, especially for deeply-nested documents. This
change should not affect user code except for wildcard parsing.
See the wildcard example for the required changes.
* The generated sample test driver file name was changed from
<schema>-driver.cxx to <schema>-pdriver.cxx.
C++/Serializer
* The mapping now supports automatic generation of sample serializer
implementations and a test driver. The --generate-empty-impl option
triggers generation of a sample implementation with empty function
bodies which can then be filled with application code. The
--generate-test-driver option trigger generation of a test driver.
For more information on this feature see the compiler command line
manual (man pages). Other relevant new options include:
--impl-file-suffix, --force-overwrite, --root-element-first,
--root-element-last, and --root-element.
* 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
6.7, "Support for Polymorphism" in the Embedded C++/Serializer Mapping
Getting Started Guide we well as the polymorphism and polyroot
examples in the examples/cxx/serializer/ directory.
* New options, --generate-xml-schema and --extern-xml-schema, trigger
generation of the mapping for the XML Schema namespace to a separate
header file and inclusion of that header into other generated header
files instead of generating the necessary declarations inline,
respectively. See the the compiler command line manual (man pages)
for details.
* Support for serializer reuse after an error. For more information
refer to Section 8.4, "Reusing Serializers after an Error" in the
Embedded C++/Serializer Mapping Getting Started Guide. To suppress
generation of the reset code use the --suppress-reset option.
Precompiled binary distributions are available from the product's
download page:
http://www.codesynthesis.com/products/xsde/download.xhtml
Source code for this release is available from the project's web page:
http://www.codesynthesis.com/projects/xsde/
SHA1 checksums for the files:
b8686f1bd8b8c9a7e73a54c61617784f169b351b xsde-2.1.0.tar.bz2
589272a7cfe11d9baa07fc2dc70b5005a643f2c8 xsde-2.1.0-i686-linux-gnu.tar.bz2
db464dc846e825c23d706a2bcb8e378cff577802 xsde-2.1.0-sparc-solaris.tar.gz
9cb43fd136d83a926aa1da7d01f0127fe67308e0 xsde-2.1.0-i686-windows.zip
Enjoy,
Boris
More information about the xsde-announcements
mailing list