This project is an attempt to build a genealogical application in XML/XSLT.
XML, as a way of structuring data, is already used in many fields. For genealogy, GEDCOM 5.5 still seems to be a de-facto standard; a non-XML data model, very extensive, but highly unreadable and not very flexible. They have a draft for a next version, in XML: GEDCOM 6.
GedML was a proposal by Michael Kay to "port" GEDCOM to XML, but it didn't seem to get updated regularly. (1998 1999 2002)
There are other projects, similar to gentree:
I have chosen to start from scratch, rather than using GEDCOM (or any other existing format) as a starting point. Just for the freshness... It's just an experiment, and a way for me to learn XSLT programming.
The project is currently in 'alpha' stage: a first rough draft. Even the name will probably change (although it's hard to find a good name that doesn't already exist!)
The structure of the gentree file is defined in gentree.dtd. The root element looks like this:
<gentree name="my family" lang="en"> <!-- one or more 'person' elements --> <!-- one or more 'relation' elements --> <!-- one or more 'source' elements --> </gentree>
The full specification can be found here.
gentree.xsl transforms the XML input files to XHTML. For now, one large html-file is created, with hyperlinks to embedded anchors. In a later version, I want to generate multiple html files (one index.html and separate form and tree pages for every person in the database).
Note that the gentree/@lang attribute controls the interface language. All localizable strings are referenced from strings.xml. For now, only english and dutch are supported, but it's easy to add other languages.
The files are available for download in a zip-file (49 kB).