Is it possible to write an open source project that uses generated code from CodeSynthesis XSD (C++/Tree) and then link it to a third-party library that is licensed under the GPL version 3?

Some background information: CodeSynthesis XSD is licensed under the GPL version 2 but with an extra FLOSS exception (http://www.codesynthesis.com/projects/xsd/FLOSSE).

C++ source code generated from CodeSynthesis XSD (C++/Tree) needs to be linked against Xerces (http://xerces.apache.org/xerces-c/) that is licensed under the Apache License 2.0.


I posted a similar question on the xsd-users mailing list two years ago but I didn't fully understand the answers.

In that email thread, I wrote:

I think it is the GPL version 3 software that doesn't allow itself be linked to software that can't be "relicensed" to GPL version 3 ( for instance GPL version 2 software ). That would also include XSD as the FLOSS exception doesn't give permission to "relicense" XSD to GPL version 3.


1 Answer 1


Take a look at the GPL Compatibility matrix. Without the FLOSS exception you mentioned, then you wouldn't be able to proceed.
Then consider looking at this section of the GPL FAQ that discusses Free Software with Non-Free libraries as there are a number of related questions.
Worth mentioning is the GNU license listing which is also linked from the FLOSS exception.

All that having been said, it appears that the FLOSS exception will allow you to take the CodeSynthesis XSD output and license that output as GPLv3.

Based upon the GNU license list, Apache License v2 appears to be compatible with GPLv3.

As both of your "downstream" licenses are compatible with the FLOSS exception, it appears that you'll be okay.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.