Code Synthesis Tools CC specializes in the design of general-purpose and domain-specific language mappings (bindings) and development of open-source, cross-platform compiler front ends and code generators. Our products cater for a broad, embedded-to-server class of applications and are used in a wide range of industries, including aerospace, defense, telecommunications, finance, high-performance computing, biotech, and integrated circuit design. For a selection of companies that use our products visit our Customers page.

Our C++/Tree mapping is a feature-rich, C++ standard library based XML Schema to C++ mapping which represents XML documents as a vocabulary-specific, statically-typed, tree-like in-memory object model. Unique C++/Parser as well as Embedded C++/Parser and Embedded C++/Serializer are event-driven, stream-oriented XML parsing/serialization mappings with support for high-performance, low-footprint XML Schema validation and C++ data binding.

News

Subscribe: RSS | E-mail
Free proprietary license for small vocabularies August 3, 2010
A free proprietary license is now available for XSD and XSD/e. The new license allows one to use the generated code to handle small XML vocabularies in proprietary (closed-source) applications free of charge and without having to release the source code.
CodeSynthesis XSD 3.3.0 released April 28, 2010
Major new features in this release include support for uniform parsing and serialization of XML documents with varying root elements, configurable application character encoding (UTF-8, ISO-8859-1, etc.), support for stream-oriented, partially in-memory XML processing, smaller and faster generated code for polymorphic schemas, support for embedding the binary representation of the schema grammar into the application, and the generation of the detach functions that allow moving object model sub-trees without copying.

This release also adds support for the AIX 6.x, Mac OS X 10.6, Windows 7, and Windows Server 2008 operating systems as well as for the Visual Studio 2010 (10.0), GNU g++ 4.5.0, Intel C++ 11, Sun Studio 12.1, and IBM XL C++ 11 compilers. Visual Studio 2010 project and solution files are provided for all the examples.
CodeSynthesis XSD/e 3.1.0 released April 15, 2009
Major new features in the C++/Hybrid mapping include support for XML Schema polymorphism (xsi:type and substitution groups), binary serialization in XDR, CDR, and custom data representation formats, support for complete customization of the object model classes, support for default and fixed values, and support for recursive XML parsing and serialization.

This release also adds official support and sample configurations for LynxOS 4.2 and 5.0 as well as VxWorks 6.7.
CodeSynthesis XSD/e 3.0.0 released February 4, 2009
This major release adds the new Embedded C++/Hybrid mapping which provides a light-weight, tree-like object model with precise reproduction of the XML vocabulary structure and element order. The new mapping supports fully in-memory as well as hybrid, partially event-driven, partially in-memory XML processing while maintaining a small footprint and portability.

This release also adds official support for QNX 6.x, iPhone OS 2.x, and Visual Studio 2008 with Smart Devices.
CodeSynthesis XSD 3.2.0 released September 30, 2008
Major new features in the C++/Tree mapping include support for locating object model nodes with XPath queries, automatic assignment of namespace prefixes during serialization, polymorphism-aware object model comparison and printing, generation of non-copying constructors, and support for the fractionDigits and totalDigits facets during serialization. In the C++/Parser mapping: support for generation of the XML Schema namespace into a separate header file and reduced usage of virtual inheritance which results in a much smaller object code size and faster compilation.
CodeSynthesis XSD/e 2.1.0 released Junuary 11, 2008
Major new features include support for XML Schema polymorphism (xsi:type and substitution groups), support for delegation-based implementation reuse in addition to inheritance-based, automatic generation of sample serializer implementations and test drivers, support for parser and serializer reuse after an error, and the file-per-type compilation mode in addition to file-per-schema.
CodeSynthesis XSD 3.1.0 released February 7, 2008
Major new features in the C++/Tree mapping include the file-per-type compilation mode in addition to file-per-schema, support for IntelliSense, the ability to choose the identifier naming convention used in the generated code, non-copying modifier functions, and additional binary serialization examples. In the C++/Parser mapping: the file-per-type compilation mode in addition to file-per-schema and support for XML Schema polymorphism (xsi:type and substitution groups).
CodeSynthesis XSD/e 2.0.0 released November 13, 2007
This release adds the new Embedded C++/Serializer mapping which provides event-driven XML serialization, XML Schema validation, and C++ data binding. The Embedded C++/Serializer Mapping Getting Started Guide is also included.
CodeSynthesis XSD/e 1.1.0 released September 20, 2007
Major new features include parser implementations for all built-in XML Schema types, automatic generation of sample parser implementations as well as test drivers, support for parsing XML documents with varying root elements, and new chapters in the Getting Started Guide.
CodeSynthesis XSD 3.0.0 released August 1, 2007
Major new features include C++/Tree: generation of documentation in the Doxygen format, a new mapping for the XML Schema wildcards (any and anyAttribute), support for binary serialization in the XDR format, and a new Getting Started guide. C++/Parser: parser implementations for all built-in XML Schema types, automatic generation of sample parser implementations as well as test drivers, and a new Getting Started Guide.
An article published in The C++ Source May 7, 2007
An article introducing XML Data Binding in C++ was published in The C++ Source journal. It covers both in-memory and stream-oriented processing models and provides comparison to raw XML access APIs such as DOM and SAX.
More news...