Thank you for attending our presentation at the LinuxTag 2012.

Event details are available online. You can download slides and a paper, too.

Furthermore, you can watch a video of the presentation at YouTube.

Framework architecture

Fabric is a code generation framework for Java, C and C++. It can parse arbitrary XML Schema and WSDL files to build a tree structure. Subsequently a module API allows to walk the tree for custom code generation.

Unlike many other frameworks, Fabric does not write output instantly, but creates virtual code in a so-called workspace. Thus developers can add further code at any time and in any order, until then the file is serialized to disk.

Another nifty feature of Fabric is its powerful module architecture, which permits cascading calls to different modules in a single generator run.

Generate multi-purpose code from custom XML Schema documents.
Module API

The module architecture is one of the key features of Fabric. Developers can easily extend the framework by overriding a set of callback methods, provided by a default handler class.

For more comprehensive use cases, Fabric also offers module chaining capabilities. That is to say, multiple modules can be executed on the same input successively.

All modules share a common workspace, enabling cross-border code access. Based on this integral part of the framework, modules can enrich prior code output with additional functionality effortlessly and at almost any time.

Enhance the framework with your own modules for maximum productivity.
Type generator module

Fabric includes a TypeGen module, which can turn custom XSD files into JavaBean-like container classes.

The type generator module supports a remarkable subset of all XML Schema features:

  • Simple and complex data types
  • Element lists and arrays
  • Enumerations
  • Restrictions on simple types
  • Fixed and default values
Unleash the power of our bean generator for both Java and C++.
Binary compression

Efficient XML Interchange is an established W3C Internet standard. It targets at resource-constrained devices, such as in sensor networks, but is not limited to this use. EXI can also be employed in SOA environments and other scenarios where XML data is processed.

Fabric's EXI module allows to easily encode and decode objects that have been created with the TypeGen module before. The EXI serializer class is tailored to the user's input individually.

To achieve the best compression rate possible, only the schema-informed processing mode is utilized by Fabric.

Employ our EXI module for efficient serialization of XML documents.
Developer community

Fabric is developed as free software. We invite you to join the project and help us improving Fabric. Please get in touch with us if you want to participate in coding, documentation or any other respect.

Our framework is released under the Modified BSD License.

You are free to redistribute and use the software in source and binary forms, with or without modification for both private and commercial purposes.

The Fabric source code is available on our GitHub page.

Join the community and help us improving Fabric. It's open source!
Contact us

The project emanated from academic context and is now pursued by a small group of committed individuals, who are interested in software engineering, coding and testing.

If Fabric is critical for your business, feel free to support development. Paid services are available on request.

To get in touch with us, please send an email in either English or German to While we try to read and answer all messages, however, there may be quite a delay before you receive a response.

Contact us with any suggestions or questions you have.
Fabric Logo
Fabric is an all-embracing code generation framework for Java, C and C++.