500a81004f
svn: r18221
530 lines
13 KiB
XML
530 lines
13 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
|
<!--
|
|
# Gramps - a GTK+/GNOME based genealogy program
|
|
#
|
|
# Copyright (C) 2001 Graham J. Williams
|
|
# Copyright (C) 2000-2007 Donald N. Allingham
|
|
# Copyright (C) 2010 Nick Hall
|
|
#
|
|
# This program is free software; you can redistribute it and/or modify
|
|
# it under the terms of the GNU General Public License as published by
|
|
# the Free Software Foundation; either version 2 of the License, or
|
|
# (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
# GNU General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU General Public License
|
|
# along with this program; if not, write to the Free Software
|
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
|
|
# $Id$
|
|
-->
|
|
|
|
<!--
|
|
This is the Document Type Definition file for v1.4.0
|
|
of the GRAMPS XML genealogy data format.
|
|
Please use the following formal public identifier to identify it:
|
|
|
|
"-//GRAMPS//DTD GRAMPS XML V1.4.0//EN"
|
|
|
|
For example:
|
|
<!DOCTYPE database PUBLIC "-//GRAMPS//DTD GRAMPS XML V1.4.0//EN"
|
|
"http://gramps-project.org/xml/1.4.0/grampsxml.dtd"
|
|
[...]>
|
|
-->
|
|
|
|
|
|
<!--
|
|
DATABASE
|
|
Defines an XML document which is a <database> consisting of a
|
|
|
|
header Information about the "owner" of the database
|
|
name-formats
|
|
people
|
|
families
|
|
events
|
|
places
|
|
sources
|
|
objects
|
|
repositories
|
|
notes
|
|
tags
|
|
bookmarks
|
|
namemaps
|
|
tags
|
|
-->
|
|
|
|
<!ELEMENT database (header, name-formats?, tags?, events?, people?,
|
|
families?, sources?, places?, objects?,
|
|
repositories?, notes?, bookmarks?, namemaps?)>
|
|
<!ATTLIST database xmlns CDATA #FIXED "http://gramps-project.org/xml/1.4.0/">
|
|
|
|
|
|
<!-- ************************************************************
|
|
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?, mediapath?)>
|
|
|
|
<!ELEMENT created EMPTY>
|
|
<!ATTLIST created
|
|
date CDATA #REQUIRED
|
|
version CDATA #REQUIRED
|
|
>
|
|
|
|
<!ELEMENT researcher (resname?, resaddr?, reslocality?, rescity?, resstate?,
|
|
rescountry?, respostal?, resphone?, resemail?)>
|
|
<!ELEMENT resname (#PCDATA)>
|
|
<!ELEMENT resaddr (#PCDATA)>
|
|
<!ELEMENT reslocality (#PCDATA)>
|
|
<!ELEMENT rescity (#PCDATA)>
|
|
<!ELEMENT resstate (#PCDATA)>
|
|
<!ELEMENT rescountry (#PCDATA)>
|
|
<!ELEMENT respostal (#PCDATA)>
|
|
<!ELEMENT resphone (#PCDATA)>
|
|
<!ELEMENT resemail (#PCDATA)>
|
|
|
|
<!ELEMENT mediapath (#PCDATA)>
|
|
|
|
<!-- ************************************************************
|
|
PEOPLE
|
|
-->
|
|
|
|
<!ELEMENT people (person)*>
|
|
<!ATTLIST people
|
|
default CDATA #IMPLIED
|
|
home IDREF #IMPLIED
|
|
>
|
|
|
|
<!ELEMENT person (gender, name*, eventref*, lds_ord*,
|
|
objref*, address*, attribute*, url*, childof*,
|
|
parentin*, personref*, noteref*, sourceref*, tagref*)>
|
|
<!ATTLIST person
|
|
id CDATA #IMPLIED
|
|
handle ID #REQUIRED
|
|
priv (0|1) #IMPLIED
|
|
change CDATA #REQUIRED
|
|
>
|
|
|
|
<!--
|
|
GENDER has values of M, F, or U.
|
|
-->
|
|
<!ELEMENT gender (#PCDATA)>
|
|
|
|
<!ELEMENT name (first?, call?, surname*, suffix?, title?, nick?, familynick?, group?,
|
|
(daterange|datespan|dateval|datestr)?, noteref*, sourceref*)>
|
|
<!ATTLIST name
|
|
alt (0|1) #IMPLIED
|
|
type CDATA #IMPLIED
|
|
priv (0|1) #IMPLIED
|
|
sort CDATA #IMPLIED
|
|
display CDATA #IMPLIED
|
|
>
|
|
|
|
<!ELEMENT first (#PCDATA)>
|
|
<!ELEMENT call (#PCDATA)>
|
|
<!ELEMENT suffix (#PCDATA)>
|
|
<!ELEMENT title (#PCDATA)>
|
|
<!ELEMENT nick (#PCDATA)>
|
|
<!ELEMENT familynick (#PCDATA)>
|
|
<!ELEMENT group (#PCDATA)>
|
|
<!ELEMENT surname (#PCDATA)>
|
|
<!ATTLIST surname
|
|
prefix CDATA #IMPLIED
|
|
prim (1|0) #IMPLIED
|
|
derivation CDATA #IMPLIED
|
|
connector CDATA #IMPLIED
|
|
>
|
|
|
|
<!ELEMENT childof EMPTY>
|
|
<!ATTLIST childof hlink IDREF #REQUIRED
|
|
>
|
|
|
|
<!ELEMENT parentin EMPTY>
|
|
<!ATTLIST parentin hlink IDREF #REQUIRED>
|
|
|
|
<!ELEMENT personref (sourceref*, noteref*)>
|
|
<!ATTLIST personref
|
|
hlink IDREF #REQUIRED
|
|
priv (0|1) #IMPLIED
|
|
rel CDATA #REQUIRED
|
|
>
|
|
|
|
<!ELEMENT address ((daterange|datespan|dateval|datestr)?, street?,
|
|
locality?, city?, county?, state?, country?, postal?,
|
|
phone?, noteref*, sourceref*)>
|
|
<!ATTLIST address priv (0|1) #IMPLIED>
|
|
|
|
<!ELEMENT street (#PCDATA)>
|
|
<!ELEMENT locality (#PCDATA)>
|
|
<!ELEMENT city (#PCDATA)>
|
|
<!ELEMENT county (#PCDATA)>
|
|
<!ELEMENT state (#PCDATA)>
|
|
<!ELEMENT country (#PCDATA)>
|
|
<!ELEMENT postal (#PCDATA)>
|
|
<!ELEMENT phone (#PCDATA)>
|
|
|
|
|
|
<!-- ************************************************************
|
|
FAMILY
|
|
An element to record information about a family.
|
|
-->
|
|
|
|
<!ELEMENT families (family)*>
|
|
|
|
<!ELEMENT family (rel?, father?, mother?, eventref*, lds_ord*, objref*,
|
|
childref*, attribute*, noteref*, sourceref*, tagref*)>
|
|
<!ATTLIST family
|
|
id CDATA #IMPLIED
|
|
handle ID #REQUIRED
|
|
priv (0|1) #IMPLIED
|
|
change CDATA #REQUIRED
|
|
>
|
|
|
|
<!ELEMENT father EMPTY>
|
|
<!ATTLIST father hlink IDREF #REQUIRED>
|
|
|
|
<!ELEMENT mother EMPTY>
|
|
<!ATTLIST mother hlink IDREF #REQUIRED>
|
|
|
|
<!ELEMENT childref (sourceref*,noteref*)>
|
|
<!ATTLIST childref
|
|
hlink IDREF #REQUIRED
|
|
priv (0|1) #IMPLIED
|
|
mrel (None|Birth|Adopted|Stepchild|Sponsored|Foster|Other|Unknown) #IMPLIED
|
|
frel (None|Birth|Adopted|Stepchild|Sponsored|Foster|Other|Unknown) #IMPLIED
|
|
>
|
|
|
|
<!ELEMENT type (#PCDATA)>
|
|
|
|
<!ELEMENT rel EMPTY>
|
|
<!ATTLIST rel type CDATA #REQUIRED>
|
|
|
|
<!-- ************************************************************
|
|
EVENT
|
|
-->
|
|
<!ELEMENT events (event)*>
|
|
|
|
<!ELEMENT event (type?, (daterange|datespan|dateval|datestr)?, place?, cause?,
|
|
description?, attribute*, noteref*, sourceref*, objref*)>
|
|
<!ATTLIST event
|
|
id CDATA #IMPLIED
|
|
handle ID #REQUIRED
|
|
priv (0|1) #IMPLIED
|
|
change CDATA #REQUIRED
|
|
>
|
|
|
|
<!-- ************************************************************
|
|
SOURCES
|
|
-->
|
|
|
|
<!ELEMENT sources (source)*>
|
|
<!ELEMENT source (stitle?, sauthor?, spubinfo?, sabbrev?,
|
|
noteref*, objref*, data_item*, reporef*)>
|
|
<!ATTLIST source
|
|
id CDATA #IMPLIED
|
|
handle ID #REQUIRED
|
|
priv (0|1) #IMPLIED
|
|
change CDATA #REQUIRED
|
|
>
|
|
<!ELEMENT stitle (#PCDATA)>
|
|
<!ELEMENT sauthor (#PCDATA)>
|
|
<!ELEMENT spubinfo (#PCDATA)>
|
|
<!ELEMENT sabbrev (#PCDATA)>
|
|
|
|
<!-- ************************************************************
|
|
PLACES
|
|
-->
|
|
|
|
<!ELEMENT places (placeobj)*>
|
|
|
|
<!ELEMENT placeobj (ptitle?, coord?, location*, objref*, url*, noteref*,
|
|
sourceref*)>
|
|
<!ATTLIST placeobj
|
|
id CDATA #IMPLIED
|
|
handle ID #REQUIRED
|
|
priv (0|1) #IMPLIED
|
|
change CDATA #REQUIRED
|
|
>
|
|
|
|
<!ELEMENT ptitle (#PCDATA)>
|
|
|
|
<!ELEMENT coord EMPTY>
|
|
<!ATTLIST coord
|
|
long CDATA #REQUIRED
|
|
lat CDATA #REQUIRED
|
|
>
|
|
|
|
<!ELEMENT location EMPTY>
|
|
<!ATTLIST location
|
|
street CDATA #IMPLIED
|
|
locality CDATA #IMPLIED
|
|
city CDATA #IMPLIED
|
|
parish CDATA #IMPLIED
|
|
county CDATA #IMPLIED
|
|
state CDATA #IMPLIED
|
|
country CDATA #IMPLIED
|
|
postal CDATA #IMPLIED
|
|
phone CDATA #IMPLIED
|
|
>
|
|
|
|
<!-- ************************************************************
|
|
OBJECTS
|
|
-->
|
|
|
|
<!ELEMENT objects (object)*>
|
|
|
|
<!ELEMENT object (file, attribute*, noteref*,
|
|
(daterange|datespan|dateval|datestr)?, sourceref*, tagref*)>
|
|
<!ATTLIST object
|
|
id CDATA #IMPLIED
|
|
handle ID #REQUIRED
|
|
priv (0|1) #IMPLIED
|
|
change CDATA #REQUIRED
|
|
>
|
|
|
|
<!ELEMENT file EMPTY>
|
|
<!ATTLIST file
|
|
src CDATA #REQUIRED
|
|
mime CDATA #REQUIRED
|
|
description CDATA #REQUIRED
|
|
>
|
|
|
|
<!-- ************************************************************
|
|
REPOSITORIES
|
|
-->
|
|
|
|
<!ELEMENT repositories (repository)*>
|
|
|
|
<!ELEMENT repository (rname, type, address*, url*, noteref*)>
|
|
<!ATTLIST repository
|
|
id CDATA #IMPLIED
|
|
handle ID #REQUIRED
|
|
priv (0|1) #IMPLIED
|
|
change CDATA #REQUIRED
|
|
>
|
|
|
|
<!ELEMENT rname (#PCDATA)>
|
|
|
|
<!-- ************************************************************
|
|
NOTES
|
|
-->
|
|
|
|
<!ELEMENT notes (note)*>
|
|
|
|
<!ELEMENT note (text, style*, tagref*)>
|
|
<!ATTLIST note
|
|
id CDATA #IMPLIED
|
|
handle ID #REQUIRED
|
|
priv (0|1) #IMPLIED
|
|
change CDATA #REQUIRED
|
|
format (0|1) #IMPLIED
|
|
type CDATA #REQUIRED
|
|
>
|
|
|
|
<!ELEMENT text (#PCDATA)>
|
|
|
|
<!ELEMENT style (range+)>
|
|
<!ATTLIST style
|
|
name (bold|italic|underline|fontface|fontsize|
|
|
fontcolor|highlight|superscript|link) #REQUIRED
|
|
value CDATA #IMPLIED
|
|
>
|
|
|
|
<!ELEMENT range EMPTY>
|
|
<!ATTLIST range
|
|
start CDATA #REQUIRED
|
|
end CDATA #REQUIRED
|
|
>
|
|
|
|
<!-- ************************************************************
|
|
TAGS
|
|
-->
|
|
|
|
<!ELEMENT tags (tag)*>
|
|
|
|
<!ELEMENT tag EMPTY>
|
|
<!ATTLIST tag
|
|
handle ID #REQUIRED
|
|
name CDATA #REQUIRED
|
|
color CDATA #REQUIRED
|
|
priority CDATA #REQUIRED
|
|
change CDATA #REQUIRED
|
|
>
|
|
|
|
<!-- ************************************************************
|
|
BOOKMARKS
|
|
-->
|
|
|
|
<!ELEMENT bookmarks (bookmark)*>
|
|
<!ELEMENT bookmark EMPTY>
|
|
<!ATTLIST bookmark
|
|
target (person|family|event|source|place|media|repository|
|
|
note) #REQUIRED
|
|
hlink IDREF #REQUIRED
|
|
>
|
|
|
|
<!-- ************************************************************
|
|
NAME MAPS
|
|
-->
|
|
<!ELEMENT namemaps (map)*>
|
|
<!ELEMENT map EMPTY>
|
|
<!ATTLIST map
|
|
type CDATA #REQUIRED
|
|
key CDATA #REQUIRED
|
|
value CDATA #REQUIRED
|
|
>
|
|
|
|
<!-- ************************************************************
|
|
NAME FORMATS
|
|
-->
|
|
|
|
<!ELEMENT name-formats (format)*>
|
|
<!ELEMENT format EMPTY>
|
|
<!ATTLIST format
|
|
number CDATA #REQUIRED
|
|
name CDATA #REQUIRED
|
|
fmt_str CDATA #REQUIRED
|
|
active (0|1) #IMPLIED
|
|
>
|
|
|
|
<!-- ************************************************************
|
|
SHARED ELEMENTS
|
|
-->
|
|
<!ELEMENT daterange EMPTY>
|
|
<!ATTLIST daterange
|
|
start CDATA #REQUIRED
|
|
stop CDATA #REQUIRED
|
|
quality (estimated|calculated) #IMPLIED
|
|
cformat CDATA #IMPLIED
|
|
dualdated (0|1) #IMPLIED
|
|
newyear CDATA #IMPLIED
|
|
>
|
|
|
|
<!ELEMENT datespan EMPTY>
|
|
<!ATTLIST datespan
|
|
start CDATA #REQUIRED
|
|
stop CDATA #REQUIRED
|
|
quality (estimated|calculated) #IMPLIED
|
|
cformat CDATA #IMPLIED
|
|
dualdated (0|1) #IMPLIED
|
|
newyear CDATA #IMPLIED
|
|
>
|
|
|
|
<!ELEMENT dateval EMPTY>
|
|
<!ATTLIST dateval
|
|
val CDATA #REQUIRED
|
|
type (before|after|about) #IMPLIED
|
|
quality (estimated|calculated) #IMPLIED
|
|
cformat CDATA #IMPLIED
|
|
dualdated (0|1) #IMPLIED
|
|
newyear CDATA #IMPLIED
|
|
>
|
|
|
|
<!ELEMENT datestr EMPTY>
|
|
<!ATTLIST datestr val CDATA #REQUIRED>
|
|
|
|
<!ELEMENT sourceref (spage? ,noteref*, (daterange|datespan|dateval|datestr)?)>
|
|
<!ATTLIST sourceref
|
|
hlink IDREF #REQUIRED
|
|
priv (0|1) #IMPLIED
|
|
conf CDATA #IMPLIED
|
|
>
|
|
|
|
<!ELEMENT eventref (attribute*, noteref*)>
|
|
<!ATTLIST eventref
|
|
hlink IDREF #REQUIRED
|
|
priv (0|1) #IMPLIED
|
|
role CDATA #IMPLIED
|
|
>
|
|
|
|
<!ELEMENT reporef (noteref*)>
|
|
<!ATTLIST reporef
|
|
hlink IDREF #REQUIRED
|
|
priv (0|1) #IMPLIED
|
|
callno CDATA #IMPLIED
|
|
medium CDATA #IMPLIED
|
|
>
|
|
|
|
<!ELEMENT noteref EMPTY>
|
|
<!ATTLIST noteref
|
|
hlink IDREF #REQUIRED
|
|
>
|
|
|
|
<!ELEMENT tagref EMPTY>
|
|
<!ATTLIST tagref
|
|
hlink IDREF #REQUIRED
|
|
>
|
|
|
|
<!ELEMENT spage (#PCDATA)>
|
|
|
|
<!ELEMENT attribute (sourceref*, noteref*)>
|
|
<!ATTLIST attribute
|
|
priv (0|1) #IMPLIED
|
|
type CDATA #REQUIRED
|
|
value CDATA #REQUIRED
|
|
>
|
|
|
|
<!ELEMENT place EMPTY>
|
|
<!ATTLIST place hlink IDREF #REQUIRED>
|
|
|
|
<!ELEMENT cause (#PCDATA)>
|
|
<!ELEMENT description (#PCDATA)>
|
|
|
|
<!ELEMENT url EMPTY>
|
|
<!ATTLIST url
|
|
priv (0|1) #IMPLIED
|
|
type CDATA #IMPLIED
|
|
href CDATA #REQUIRED
|
|
description CDATA #IMPLIED
|
|
>
|
|
|
|
<!ELEMENT objref (region?, attribute*, sourceref*, noteref*)>
|
|
<!ATTLIST objref
|
|
hlink IDREF #REQUIRED
|
|
priv (0|1) #IMPLIED
|
|
>
|
|
|
|
<!ELEMENT region EMPTY>
|
|
<!ATTLIST region
|
|
corner1_x CDATA #REQUIRED
|
|
corner1_y CDATA #REQUIRED
|
|
corner2_x CDATA #REQUIRED
|
|
corner2_y CDATA #REQUIRED
|
|
>
|
|
|
|
<!ELEMENT data_item EMPTY>
|
|
<!ATTLIST data_item
|
|
key CDATA #REQUIRED
|
|
value CDATA #REQUIRED
|
|
>
|
|
|
|
<!ELEMENT lds_ord ((daterange|datespan|dateval|datestr)?, temple?, place?,
|
|
status?, sealed_to?, noteref*, sourceref*)>
|
|
<!ATTLIST lds_ord
|
|
priv (0|1) #IMPLIED
|
|
type CDATA #REQUIRED
|
|
>
|
|
|
|
<!ELEMENT temple EMPTY>
|
|
<!ATTLIST temple
|
|
val CDATA #REQUIRED
|
|
>
|
|
|
|
<!ELEMENT status EMPTY>
|
|
<!ATTLIST status
|
|
val CDATA #REQUIRED
|
|
>
|
|
<!ELEMENT sealed_to EMPTY>
|
|
<!ATTLIST sealed_to
|
|
hlink IDREF #REQUIRED
|
|
>
|