Initial revision
svn: r1140
This commit is contained in:
320
doc/gramps.dtd
Normal file
320
doc/gramps.dtd
Normal file
@@ -0,0 +1,320 @@
|
||||
<!--?xml version="1.0" encoding="UTF-8"?-->
|
||||
|
||||
<!-- A Document Type Definition for genealogy data (as produced by Gramps)
|
||||
|
||||
Copyright (c) 2001 Graham J. Williams
|
||||
|
||||
Time-stamp: <2002/01/22 15:41:37 Graham.Williams@csiro.au>
|
||||
|
||||
Freely Redistributable under the terms of the GNU General Public License.
|
||||
|
||||
Based on GEDCOM and conforming to the Gramps XML encoding.
|
||||
Still under development and Gramps XML not complete.
|
||||
|
||||
Information on Gramps is available from http://
|
||||
|
||||
-->
|
||||
|
||||
<!--
|
||||
|
||||
DATABASE
|
||||
|
||||
Defines an XML document which is a <database> consisting of a
|
||||
|
||||
header Information about the "owner" of the database
|
||||
people
|
||||
families
|
||||
sources
|
||||
places
|
||||
objects
|
||||
bookmarks
|
||||
|
||||
-->
|
||||
|
||||
<!ELEMENT database (header, people?, families?, sources?, places?, objects?,
|
||||
bookmarks?)>
|
||||
|
||||
<!-- ************************************************************
|
||||
|
||||
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>
|
||||
|
||||
<!--
|
||||
|
||||
PERSON
|
||||
|
||||
gender Either M or F.
|
||||
name
|
||||
aka Also known as. Alternative names from marriage,
|
||||
adoption, legal name change, etc
|
||||
|
||||
nick The nick name - a name the person is sometimes known by.
|
||||
|
||||
-->
|
||||
|
||||
<!ELEMENT person (gender, name?, aka*, nick?, pos?, uid?, event*,
|
||||
objref*, url*, childof*, address*, parentin*,
|
||||
sourceref?, attribute*, note?)>
|
||||
<!ATTLIST person id ID #REQUIRED>
|
||||
|
||||
<!--
|
||||
|
||||
GENDER has values of M or F.
|
||||
|
||||
-->
|
||||
|
||||
<!ELEMENT gender (#PCDATA)>
|
||||
|
||||
<!--
|
||||
|
||||
NAME and AKA
|
||||
|
||||
first Given names
|
||||
last Surname
|
||||
suffix
|
||||
title E.g., Sargent Major
|
||||
|
||||
-->
|
||||
|
||||
<!ELEMENT name (first?, last?,suffix?,title?)>
|
||||
<!ATTLIST name conf CDATA #IMPLIED
|
||||
priv CDATA #IMPLIED>
|
||||
|
||||
<!ELEMENT aka (first?, last?,suffix?,note?)>
|
||||
<!ATTLIST aka conf CDATA #IMPLIED
|
||||
priv CDATA #IMPLIED>
|
||||
|
||||
<!ELEMENT first (#PCDATA)>
|
||||
<!ELEMENT last (#PCDATA)>
|
||||
<!ELEMENT suffix (#PCDATA)>
|
||||
<!ELEMENT title (#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 (dateval?,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*,objref*,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)>
|
||||
|
||||
<!-- ************************************************************
|
||||
|
||||
PLACES
|
||||
|
||||
-->
|
||||
|
||||
<!ELEMENT places (placeobj)*>
|
||||
|
||||
<!ELEMENT placeobj (coord?,location*,objref*,url*,note?)>
|
||||
<!ATTLIST placeobj id ID #REQUIRED title CDATA #IMPLIED>
|
||||
|
||||
<!ELEMENT coord EMPTY>
|
||||
<!ATTLIST coord long CDATA #REQUIRED lat CDATA #REQUIRED>
|
||||
|
||||
<!ELEMENT location EMPTY>
|
||||
<!ATTLIST location
|
||||
city CDATA #IMPLIED
|
||||
county CDATA #IMPLIED
|
||||
state CDATA #IMPLIED
|
||||
country CDATA #IMPLIED
|
||||
parish CDATA #IMPLIED
|
||||
>
|
||||
|
||||
|
||||
<!ELEMENT objects (object)*>
|
||||
|
||||
<!ELEMENT object (attribute)*>
|
||||
<!ATTLIST object
|
||||
id ID #REQUIRED
|
||||
src CDATA #IMPLIED
|
||||
mime CDATA #IMPLIED
|
||||
description CDATA #IMPLIED>
|
||||
|
||||
|
||||
|
||||
<!-- ************************************************************
|
||||
|
||||
BOOKMARKS
|
||||
|
||||
-->
|
||||
|
||||
<!ELEMENT bookmarks (bookmark)*>
|
||||
<!ELEMENT bookmark EMPTY>
|
||||
<!ATTLIST bookmark ref IDREF #REQUIRED>
|
||||
|
||||
<!-- ************************************************************
|
||||
|
||||
SHARED ELEMENTS
|
||||
|
||||
-->
|
||||
|
||||
<!ELEMENT attribute (note?,sourceref?)>
|
||||
<!ATTLIST attribute conf CDATA #IMPLIED
|
||||
priv CDATA #IMPLIED
|
||||
type CDATA #IMPLIED
|
||||
value CDATA #IMPLIED
|
||||
>
|
||||
|
||||
<!--ELEMENT attr_type (#PCDATA)>
|
||||
<!ELEMENT attr_value (#PCDATA)-->
|
||||
|
||||
|
||||
<!--
|
||||
|
||||
EVENT
|
||||
|
||||
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.
|
||||
|
||||
So decide to use the enumerated list for now unless there is a storm
|
||||
of protest.
|
||||
|
||||
Alternative Birth Another possible birth date
|
||||
Degree Awarding of a degree
|
||||
Education Some step in the education process
|
||||
Graduation Graduation (often same as degree)
|
||||
|
||||
-->
|
||||
|
||||
<!ELEMENT event (dateval?,place?,description?,sourceref?,note?)>
|
||||
<!ATTLIST event type
|
||||
(Annulment|Birth|Death|Christening|Baptism|Engagement|Marriage|
|
||||
Occupation|Education|Degree|Immi|Burial|Cremation)
|
||||
#REQUIRED>
|
||||
|
||||
<!ELEMENT dateval EMPTY>
|
||||
<!ATTLIST dateval
|
||||
val CDATA #REQUIRED
|
||||
type CDATA #IMPLIED>
|
||||
|
||||
<!--ELEMENT date (#PCDATA) replaced by dateval-->
|
||||
<!ELEMENT description (#PCDATA)>
|
||||
|
||||
<!ELEMENT note (#PCDATA)>
|
||||
|
||||
<!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>
|
||||
|
||||
<!ELEMENT sourceref (spage?,scomments?,stext?,sdate?)>
|
||||
<!ATTLIST sourceref ref IDREF #REQUIRED>
|
||||
|
||||
<!ELEMENT spage (#PCDATA)>
|
||||
<!ELEMENT scomments (#PCDATA)>
|
||||
<!ELEMENT sdate (#PCDATA)>
|
||||
<!ELEMENT stext (#PCDATA)>
|
||||
|
||||
<!ELEMENT objref (attribute)*>
|
||||
<!ATTLIST objref
|
||||
ref IDREF #REQUIRED
|
||||
>
|
||||
|
||||
<!ELEMENT img EMPTY>
|
||||
<!ATTLIST img
|
||||
src CDATA #REQUIRED
|
||||
description CDATA #IMPLIED
|
||||
display CDATA #IMPLIED>
|
||||
|
Reference in New Issue
Block a user