Das FamTree XML Format

Allgemeines

Das FamTree XML Format wurde bereits im Jahr 2003 definiert und hat seitdem keine strukturelle Veränderung erfahren. Es wurden lediglich einige neue optionale Elemente zugefügt.

Das Format ist bewusst nicht redundanzfrei. Alle Informationen, die mehr als eine Person betreffen, finden sich bei allen beteiligten Personen wieder. D.h., Informationen über eine Partnerschaft finden sich bei beiden Partnern, Informationen über Eltern-Kind-Beziehungen finden sich sowohl bei den Eltern, wie auch bei den Kindern. Auch die Angaben zur Reihenfolge von Partnerschaften und Kindern sind so zu bewerten.

Auf die Redundanzfreiheit wurde nicht alleine wegen der besseren menschlichen Lesbarkeit verzichtet. Die signifikant einfachere Erstellung von Transformationsvorlagen (XSLT) zur Generierung von HTML-Seiten war der ausschlaggebende Grund für diese Entscheidung.

Muster

Die detaillierte Beschreibung des Musterdatensatzes findet sich im folgenden Kapitel. Grundlegende Kenntnisse zum Thema XML werden zum Verständnis vorausgesetzt.

<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="FamTree.xsl"?>
<!--Created by Family Tree Rel. 3.1 (Build 192)-->
<familytree id="Muster" relative-paths="true" node-width="70" node-height="48"
            image-dir=".\images" thumb-dir=".\thumbs" show-pic="true">
    <author>Maximilian Mustermann</author>
    <version>26.04.2020</version>
    <member id="1" name="Muster" nickname="Maria">
        <fullname>Maria Bernhardine</fullname>
        <title/>
        <sex>w</sex>
        <birth-date>19.12.1873</birth-date>
        <birth-name>Muster</birth-name>
        <birth-place>Musterstadt</birth-place>
        <death-date>21.12.1951</death-date>
        <death-name>Mustermann</death-name>
        <death-place>Demolingen</death-place>
        <father id="2"/>
        <mother id="3"/>
        <partner no="1" id="4" start="16.08.1903" end="21.12.1951">
            <child no="1" id="5"/>
            <child no="2" id="6"/>
        </partner>
        <image no="1" href="id1-1888.jpg">75 Jahre</image>
        <vitae/>
        <note/>
        <gui x="200" y="120"/>
        <publish>0</publish>
    </member>
</familytree>

Beschreibung der Elemente

<?xml version="1.0" encoding="ISO-8859-1"?>

Standard XML-Header mit Angabe der Zeichensatzcodierung.

<?xml-stylesheet type="text/xsl" href="FamTree.xsl"?>

Referenz auf ein Standard Stylesheet. Dieses ist aus historischen Gründen enthalten. Es kann bei der Entwicklung von Layout-Vorlagen hilfreich sein, wenn diese "FamTree.xsl" heißen.

<!--Created by Family Tree Rel. 1.3 (Build 192)-->

Name des Erstellungsprogramms und dessen Version als Kommentar.

<familytree id="Muster" relative-paths="true" image-dir=".\images" thumb-dir=".\thumbs">

Das Wurzelelement "familytree" muss genau einmal vorkommen. Das Attribut "id" gibt den Namen des Stammbaums an.

Das Attribut "relative-paths" definiert, ob die folgenden Pfadangaben relativ ("true") oder absolut ("false") angegeben sind.

Die optionalen Attribute "image-dir" und "thumb-dir" bezeichnen die Ordner für die Ablage der Bilder und Vorschaubilder.

<author>Maximilian Mustermann</author>
<version>10.03.2010</version>

Name des Autors und Datum des Exports.

<member id="1" name="Muster" nickname="Maria">

Das Element "member" kommt für jede Person einmal vor. Die Attribute "name" und "nickname" werden bei der Darstellung der Stammbaum-Grafik verwendet.

<fullname>Maria Bernhardine</fullname>
<title/>
<sex>w</sex>
<birth-date>19.12.1873</birth-date>
<birth-name>Muster</birth-name>
<birth-place>Musterstadt</birth-place>
<death-date>21.12.1951</death-date>
<death-name>Mustermann</death-name>
<death-place>Demolingen</death-place>
<vitae/>
<note/>
<publish>0</publish>

Diese Elemente entsprechen den Datenfeldern der Personen-Bearbeitungsmaske. Jedes Element kommt höchstens einmal vor.

<father id="2"/>
<mother id="3"/>

Referenzen auf die Eltern. Das Attribut "id" gibt die eindeutige Personen-ID des betreffenden Elternteils an. Jedes der beiden Element kommt höchstens einmal vor.

<partner no="1" id="4" start="16.08.1903" end="21.12.1951">
    <child no="1" id="5"/>
    <child no="2" id="6"/>
</partner>

Referenz auf einen Partner, sowie die Kinder, die die Person zusammen mit diesem hat. Das Attribut "id" gibt die eindeutige Personen-ID des Partners an. Das Attribut "no" definiert die Reihenfolge der Partnerschaften, falls keine der folgenden Start-/Ende-Daten vorliegen. Die optionalen Attribute "start" und "end" bestimmen Anfang (Hochzeitstag) und Ende (Scheidung, Tod) der Partnerschaft.

Das Partner-Element kann beliebig häufig vorkommen. Jedes Partner-Element kann beliebig viele (auch keines) Kinder-Unterelemente (child) enthalten. Das Attribut "id" gibt die eindeutige Personen-ID des Kindes an. Das Attribut "no" definiert die Reihenfolge der Kinder, falls keine Geburtsdaten vorliegen.

<image no="1" href="id1-1888.jpg" fav="false">35 Jahre</image>

Angabe der Bilder. Das Image-Element kann beliebig häufig vorkommen. Das Attribut "no" definiert die Reihenfolge der Bilder, Das Attribut "href" verweist auf den Dateinamen des Bildes. Der Element-Wert enthält die Bemerkung zum Bild. Das optionale Attribut "fav" kennzeichnet das Bild als Favoriten und darf nur einmal pro Person den Wert "true" annehmen.

<gui x="200" y="120"/>

(x,y)-Koordinaten zur Darstellung der Person im Stammbaum.

 

© Viktor Keimes, 2010-2020, All rights reserved