Hi guys,
 
This is my first post, so I am sorry if I am posting it to the wrong email list.
 
I am currently working on a PhD at the University of Western Australia and am interested in using a Wiki to manage all of my references/publications. I have used Confluence before, however I have decided to switch to XWiki because it's open source and I can make the changes I want (and contribute them back to the group).
 
For a bit of background I am currently a Senior Software Engineer for a software company in Perth Western Australia, and I have had experience using Hibernate, Velocity, Struts and some JEE architectural work.
 
What I plan to do is build two applications/plugins that will run inside XWiki with some interaction between them. I want to create a Class and associated editors for storing/retrieving all of my citations (in BibTeX format). Once I have done that I would also like to create an editor that allows me to create papers in LaTeX format and render them using the LaTeX -> XHTML converter, allowing me to work on my papers from home, work or uni.
 
To get started I have a few questions, I will start with just the one and I expect to be asking more as time goes on :-)
 
1. I have used the FAQ tutorial to create a new "Class" for rendering the FAQ pages however my BibTeX pages need a bit more structure than one class. Basically I expect two objects to be persisted in the database, a BibTeX header and an object that represents the type (in a map I assume). Each entry type (paper, confrence proceeding, book, URL etc.) has different fields that are mandatory and are able to be set. I imagine I would have a simple Interface called BibTexData that is associated with a BibTexEntry, and put the correct version in depending on what it is. It is feasable that I want to change the "type" after the page is created (as most decent BibTeX database applications allow me to do). How do I design this using the class editor wizard, or am I better off creating this structure manually in the hibernate mappings and code?
 
Cheers,
 
Aidan (aidos)