2001-08-09 20:03:57 +05:30
|
|
|
<!--?xml version="1.0" encoding="UTF-8"?-->
|
|
|
|
|
|
|
|
<!-- A Document Type Definition for genealogy data (as produced by Gramps)
|
|
|
|
|
|
|
|
Copyright (c) 2001 Graham J. Williams
|
|
|
|
|
2001-09-14 09:14:26 +05:30
|
|
|
Time-stamp: <2001/09/14 09:54:20 Graham.Williams@cmis.csiro.au>
|
|
|
|
|
2001-08-09 20:03:57 +05:30
|
|
|
Freely Redistributable under the terms of the GNU General Public License.
|
|
|
|
|
|
|
|
Based on GEDCOM and conforming with Gramps XML encoding.
|
|
|
|
|
|
|
|
Information on Gramps is available from http://
|
|
|
|
|
|
|
|
-->
|
|
|
|
|
|
|
|
<!--
|
|
|
|
|
|
|
|
Define an XML document which is a <database> consisting of a
|
2001-09-14 09:14:26 +05:30
|
|
|
<header>, <people>, <families>, <sources>, <places> and <bookmarks>.
|
2001-08-09 20:03:57 +05:30
|
|
|
|
|
|
|
-->
|
|
|
|
|
2001-09-14 09:14:26 +05:30
|
|
|
<!ELEMENT database (header, people?, families?, sources?, places?, bookmarks?)>
|
2001-08-09 20:03:57 +05:30
|
|
|
|
|
|
|
<!-- ************************************************************
|
|
|
|
|
|
|
|
HEADER
|
|
|
|
|
|
|
|
A <header> consists of <created> (information about this
|
|
|
|
genealogical database) and <researcher> (information about the
|
|
|
|
person who created this genealogical database)
|
|
|
|
|
|
|
|
-->
|
|
|
|
|
|
|
|
<!ELEMENT header (created, researcher?)>
|
|
|
|
|
|
|
|
<!ELEMENT created EMPTY>
|
|
|
|
<!ATTLIST created
|
|
|
|
date CDATA #REQUIRED
|
|
|
|
version CDATA #REQUIRED
|
|
|
|
people CDATA #REQUIRED
|
|
|
|
families CDATA #REQUIRED>
|
|
|
|
|
|
|
|
<!ELEMENT researcher (resname, resaddr?, rescity?, resstate?,
|
|
|
|
rescountry?, respostal?, resphone?, resemail?)>
|
|
|
|
<!ELEMENT resname (#PCDATA)>
|
|
|
|
<!ELEMENT resaddr (#PCDATA)>
|
|
|
|
<!ELEMENT rescity (#PCDATA)>
|
|
|
|
<!ELEMENT resstate (#PCDATA)>
|
|
|
|
<!ELEMENT rescountry (#PCDATA)>
|
|
|
|
<!ELEMENT respostal (#PCDATA)>
|
|
|
|
<!ELEMENT resphone (#PCDATA)>
|
|
|
|
<!ELEMENT resemail (#PCDATA)>
|
|
|
|
|
|
|
|
<!-- ************************************************************
|
|
|
|
|
|
|
|
PEOPLE
|
|
|
|
|
|
|
|
The UID is a place holder for PAF UID's that are imported. PAF
|
|
|
|
generates a unique ID for each person which is useful for
|
|
|
|
merges. It is not used by Gramps otherwise.
|
|
|
|
|
|
|
|
-->
|
|
|
|
|
|
|
|
<!ELEMENT people (person)*>
|
|
|
|
<!ATTLIST people default CDATA #IMPLIED>
|
|
|
|
|
|
|
|
<!ELEMENT person (gender, name?, aka*, nick?, pos?, uid?, event*,
|
|
|
|
img*, url*, childof*, parentin*, address*,
|
|
|
|
sourceref?, attribute*, note?)>
|
|
|
|
<!ATTLIST person id ID #REQUIRED>
|
|
|
|
|
|
|
|
<!ELEMENT name (first?, last?,suffix?)>
|
|
|
|
<!ATTLIST name conf CDATA #IMPLIED
|
|
|
|
priv CDATA #IMPLIED>
|
|
|
|
|
2001-09-14 09:14:26 +05:30
|
|
|
<!ELEMENT aka (first?, last?,suffix?,note?)>
|
2001-08-09 20:03:57 +05:30
|
|
|
<!ATTLIST aka conf CDATA #IMPLIED
|
|
|
|
priv CDATA #IMPLIED>
|
|
|
|
|
|
|
|
<!ELEMENT gender (#PCDATA)>
|
|
|
|
<!ELEMENT first (#PCDATA)>
|
|
|
|
<!ELEMENT last (#PCDATA)>
|
|
|
|
<!ELEMENT suffix (#PCDATA)>
|
|
|
|
<!ELEMENT nick (#PCDATA)>
|
|
|
|
<!ELEMENT uid (#PCDATA)>
|
|
|
|
|
|
|
|
<!ELEMENT pos EMPTY>
|
|
|
|
<!ATTLIST pos x CDATA #REQUIRED
|
|
|
|
y CDATA #REQUIRED>
|
|
|
|
|
|
|
|
<!ELEMENT childof EMPTY>
|
|
|
|
<!ATTLIST childof
|
|
|
|
ref IDREF #REQUIRED
|
|
|
|
mrel (Birth|Adopted|Stepchild|Other|Unknown) #IMPLIED
|
|
|
|
frel (Birth|Adopted|Stepchild|Other|Unknown) #IMPLIED>
|
|
|
|
|
|
|
|
<!ELEMENT parentin EMPTY>
|
|
|
|
<!ATTLIST parentin
|
|
|
|
ref IDREF #REQUIRED>
|
|
|
|
|
|
|
|
<!ELEMENT address (date?,street?,city?,state?,country?,postal?,
|
|
|
|
note?,sourceref?)>
|
|
|
|
<!ATTLIST address conf CDATA #IMPLIED
|
|
|
|
priv CDATA #IMPLIED>
|
|
|
|
|
|
|
|
<!ELEMENT street (#PCDATA)>
|
|
|
|
<!ELEMENT city (#PCDATA)>
|
|
|
|
<!ELEMENT country (#PCDATA)>
|
|
|
|
<!ELEMENT postal (#PCDATA)>
|
|
|
|
<!ELEMENT state (#PCDATA)>
|
|
|
|
|
|
|
|
<!-- ************************************************************
|
|
|
|
|
|
|
|
FAMILY
|
|
|
|
|
|
|
|
An element to record information about a family.
|
|
|
|
|
|
|
|
-->
|
|
|
|
|
|
|
|
<!ELEMENT families (family)*>
|
|
|
|
|
|
|
|
<!ELEMENT family (father?,mother?,event*,img*,child*,attribute*,note?)>
|
|
|
|
<!ATTLIST family
|
|
|
|
id ID #REQUIRED
|
|
|
|
type (Married|Unmarried|Partners|Other|Unkown) #IMPLIED>
|
|
|
|
|
|
|
|
<!ELEMENT father EMPTY>
|
|
|
|
<!ATTLIST father ref IDREF #REQUIRED>
|
|
|
|
|
|
|
|
<!ELEMENT mother EMPTY>
|
|
|
|
<!ATTLIST mother ref IDREF #REQUIRED>
|
|
|
|
|
|
|
|
<!ELEMENT child EMPTY>
|
|
|
|
<!ATTLIST child ref IDREF #REQUIRED>
|
|
|
|
|
|
|
|
<!-- ************************************************************
|
|
|
|
|
|
|
|
SOURCES
|
|
|
|
|
|
|
|
-->
|
|
|
|
|
|
|
|
<!ELEMENT sources (source)*>
|
|
|
|
<!ELEMENT source (sauthor?,spubinfo?,scallno?)>
|
|
|
|
<!ATTLIST source id ID #REQUIRED>
|
|
|
|
<!ELEMENT sauthor (#PCDATA)>
|
|
|
|
<!ELEMENT spubinfo (#PCDATA)>
|
|
|
|
<!ELEMENT scallno (#PCDATA)>
|
|
|
|
|
2001-09-14 09:14:26 +05:30
|
|
|
<!-- ************************************************************
|
|
|
|
|
|
|
|
PLACES
|
|
|
|
|
|
|
|
-->
|
|
|
|
|
|
|
|
<!ELEMENT places (placeobj)*>
|
|
|
|
|
|
|
|
<!ELEMENT placeobj (coord?,location*,img*,url*,note?)>
|
|
|
|
<!ATTLIST placeobj id ID #REQUIRED title CDATA #REQUIRED>
|
|
|
|
|
|
|
|
<!ELEMENT coord EMPTY>
|
|
|
|
<!ATTLIST coord long CDATA #REQUIRED lat CDATA #REQUIRED>
|
|
|
|
|
|
|
|
<!ELEMENT location EMPTY>
|
|
|
|
<!ATTLIST location
|
|
|
|
city CDATA #REQUIRED
|
|
|
|
county CDATA #REQUIRED
|
|
|
|
state CDATA #REQUIRED
|
|
|
|
country CDATA #REQUIRED
|
|
|
|
>
|
|
|
|
|
|
|
|
|
2001-08-09 20:03:57 +05:30
|
|
|
<!-- ************************************************************
|
|
|
|
|
|
|
|
BOOKMARKS
|
|
|
|
|
|
|
|
-->
|
|
|
|
|
|
|
|
<!ELEMENT bookmarks (bookmark)*>
|
|
|
|
<!ELEMENT bookmark EMPTY>
|
|
|
|
<!ATTLIST bookmark ref IDREF #REQUIRED>
|
|
|
|
|
|
|
|
<!-- ************************************************************
|
|
|
|
|
|
|
|
SHARED ELEMENTS
|
|
|
|
|
|
|
|
-->
|
|
|
|
|
|
|
|
<!ELEMENT attribute (attr_type,attr_value,note?,sourceref?)>
|
|
|
|
<!ATTLIST attribute conf CDATA #IMPLIED
|
|
|
|
priv CDATA #IMPLIED>
|
|
|
|
|
|
|
|
<!ELEMENT attr_type (#PCDATA)>
|
|
|
|
<!ELEMENT attr_value (#PCDATA)>
|
|
|
|
|
|
|
|
|
|
|
|
<!ELEMENT event (date?,place?,description?,sourceref?,note?)>
|
2001-09-14 09:14:26 +05:30
|
|
|
<!ATTLIST event type
|
|
|
|
(Birth|Death|Christening|Baptism|Engagement|Marriage|
|
|
|
|
Occupation|Education|Degree|Immi|Burial|Cremation)
|
|
|
|
#REQUIRED>
|
2001-08-09 20:03:57 +05:30
|
|
|
|
|
|
|
<!--
|
|
|
|
|
2001-09-14 09:14:26 +05:30
|
|
|
We can enumerate all possibilities for an event and then this will
|
|
|
|
not conform to Gramps as Gramps allows any type of events (i.e., a
|
|
|
|
user can define their own type of event) . By allowing anything
|
|
|
|
(CDATA) we no longer have automatic checking and in emacs no more
|
|
|
|
automatic selection of event types.
|
2001-08-09 20:03:57 +05:30
|
|
|
|
2001-09-14 09:14:26 +05:30
|
|
|
So decide to use the enumerated list for now unless there is a storm
|
|
|
|
of protest.
|
2001-08-09 20:03:57 +05:30
|
|
|
|
|
|
|
-->
|
|
|
|
|
|
|
|
<!ELEMENT date (#PCDATA)>
|
|
|
|
<!ELEMENT description (#PCDATA)>
|
|
|
|
|
|
|
|
<!ELEMENT note (#PCDATA)>
|
|
|
|
|
2001-09-14 09:14:26 +05:30
|
|
|
<!ELEMENT url EMPTY>
|
|
|
|
<!ATTLIST url href CDATA #REQUIRED
|
|
|
|
conf CDATA #IMPLIED
|
|
|
|
priv (0|1) #IMPLIED
|
|
|
|
description CDATA #IMPLIED>
|
|
|
|
|
|
|
|
<!ELEMENT place EMPTY>
|
|
|
|
<!ATTLIST place ref IDREF #REQUIRED>
|
|
|
|
|
2001-08-09 20:03:57 +05:30
|
|
|
<!ELEMENT sourceref (spage?,scomments?,stext?,sdate?)>
|
|
|
|
<!ATTLIST sourceref ref IDREF #REQUIRED>
|
|
|
|
|
|
|
|
<!ELEMENT spage (#PCDATA)>
|
|
|
|
<!ELEMENT scomments (#PCDATA)>
|
|
|
|
<!ELEMENT sdate (#PCDATA)>
|
|
|
|
<!ELEMENT stext (#PCDATA)>
|
|
|
|
|
|
|
|
<!ELEMENT img EMPTY>
|
|
|
|
<!ATTLIST img
|
|
|
|
src CDATA #REQUIRED
|
2001-09-14 09:14:26 +05:30
|
|
|
description CDATA #IMPLIED
|
2001-08-09 20:03:57 +05:30
|
|
|
display CDATA #IMPLIED>
|
|
|
|
|