Difference between revisions of "Summer of Code 2008"

Jump to navigation Jump to search
Line 243: Line 243:


Some information about link-local chatting (biased towards Psi) can be found [http://psi-im.org/wiki/Bonjour here].
Some information about link-local chatting (biased towards Psi) can be found [http://psi-im.org/wiki/Bonjour here].
=== XSD Schema Compiler ===
* Proposed Mentor: [http://el-tramo.be Remko]
* Programming language: A widely accepted scripting language, preferably Python
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 [http://www.xmpp.org/schemas/ 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.