Free Proprietary License

We offer a free proprietary license for small XML vocabularies. This license allows you to use CodeSynthesis XSD in a proprietary (closed-source) application free of charge and without any of the GPL restrictions provided that the amount of the XSD-generated code in any single release of your application does not exceed 10,000 lines.

The license allows you to target any number of platforms and upgrade to any future releases of CodeSynthesis XSD. It comes with best-effort, community support via the xsd-users mailing list.

To start using CodeSynthesis XSD under the free proprietary license simply contact us and we will send you a copy of the license agreement. See also the following questions and answers for additional information.

Q&A

Why do you offer this license for free?

We often get questions about our commercial proprietary license from developers that have a fairly small XML vocabulary, typically a configuration file for their application, that they would love to automatically handle using our tools rather than extracting the data by hand using DOM or SAX. Unfortunately, the administrative burdens and delays involved in such a purchase (getting approval from management, contacting the purchasing department, purchasing via PO or credit card, etc.) are often hard to justify considering such simple XML processing needs. The administrative overheads on our side (processing the PO or credit card, delivering the license, issuing the invoice, etc.) also force us to set a minimum limit on the license size and price that we can offer.

All this usually leads to either the license being too expensive for the task at hand or the understandable unwillingness of the developers to endure the purchasing process. As a result we have decided to spare the developers the inconvenience of using second-choice products or raw XML processing APIs and offer this license for free.

What kind of XML vocabulary can I handle with 10,000 lines of code?

As a rough guide, 10,000 lines of code are sufficient to handle a schema with 40-50 local element/attribute definitions. Besides the size of the schema, the amount of the generated code also depends on the use of optional features, such as the presence of XML serialization code, comparison operators, ostream printing support, etc.

If you already have your schema(s) written, then you can quickly find out whether you can use this license by downloading the software and compiling your schema(s) with the --show-sloc option.

Note also that the lines of code measurement used here is the Physical Source Lines of Code (SLOC) metric with empty lines and comments excluded from the count.

Isn't CodeSynthesis XSD an overkill for such simple cases?

While CodeSynthesis XSD is geared towards more complex XML processing scenarios, it is still very easy to use for simple XML documents, such as configuration files. It is definitely faster, safer, and more enjoyable than using DOM, SAX or similar raw XML processing APIs.

If you are concerned about the size of your application or the extra dependency that CodeSynthesis XSD brings, you may want to consider XSD/e which has been successfully used in a number of memory-constrained and light-weight applications outside of the mobile and embedded systems development.

Do I have to manually make sure I comply with the lines limit?

No, in addition to --show-sloc mentioned above, the XSD compiler supports the --sloc-limit option which automatically checks the lines limit with each schema recompilation.

Why does my very small schema result in so many lines of code?

This can be due to your schema having multiple global elements. According to the XML Schema specification, a global element is a valid document root. By default, the XSD compiler generates a set of parsing and, if requested, serialization functions for each such element. This can result in a substantial amount of generated code if you have multiple global elements (the XSD compiler issues a warning to this effect). In such situations you can significantly reduce the the size of the generated code by specifying the actual root element(s) with the --root-element option.

Does this license limit me in any way other than the size of the generated code?

No. In particular, you can use the generated code in commercial and/or closed-source applications without having to make your source code public. You get to use the same, fully-functional version of the XSD compiler that we give to the open-source community and commercial users. It can be installed on any number of computers and can be used by any number of developers.

Is your commercial license also based on the lines of code metric?

We offer a number of licensing models with the model based on the lines of generated code being one of them. Contact us if you would like to learn more about the available licensing models and pricing.

If I buy/have bought a commercial license, do I lose out on this offer?

No, you are still entitled to use an additional 10,000 lines of code on top of your commercial license.

Contact us if you have any questions not covered above.