[jdev] GSoC Proposal: XSD Schema Compiler

Peter Saint-Andre stpeter at stpeter.im
Sun Mar 23 21:59:49 CDT 2008

Remko Tronçon wrote:
> Hi,
> I added another proposal to the GSoC page, entitled "XSD Schema Compiler".
> Here is a short description:
> "The most boring, time-consuming, and error-prone job of an XMPP
> client developer is writing code to parse XML stanzas, and turning
> them into datastructures to be used by the rest of the code. The code
> generated is often a lot of copy-paste work, and is sensitive to very
> subtle bugs. In this project, the student will solve this problem once
> and for all, by building a compiler that turns the XSD schemas that
> define the stanzas into a combination of simple datastructure classes,
> the parser that turns xml into these generated classes, and the code
> to turn these datastructures into xml back again.
> The XSD Compiler should be modular enough to allow plugging in
> backends for different target languages (C++/STL, C++/Qt, Python,
> ...). However, the student will initially focus on one backend, and
> may extend this to different backends if time allows it.
> A project like this has a reach far out of the XMPP community, to any
> project that uses XML documents standardized by an XSD. However, the
> project will (initally) focus only on the XSD defined by the XSF, and
> making sure that (almost) all XSD's can be compiled into code."
> Does anyone have any experience/thoughts on this?

All of our XML schemas are descriptive, not normative. If we really want
to generate code or test in this way, we might want to create formal
definitions that are normative. But I don't know if XSDs will get us
there -- we might need Relax NG or Schematron or somesuch. I've been
interested in that for a while now, but I haven't found the time to work
on it much yet.


Peter Saint-Andre

-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 7338 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://mail.jabber.org/pipermail/jdev/attachments/20080323/77ea972e/attachment-0002.bin>

More information about the JDev mailing list