* doc/grampsxml.rng: Events preceed people. * src/GrampsDb/_WriteXML.py: Events preceed people. * src/GrampsDb/_ReadXML.py: Parse old and new style events, old witnesses, new eventrefs. svn: r5853
		
			
				
	
	
		
			411 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
			
		
		
	
	
			411 lines
		
	
	
		
			10 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-2006  Donald N. Allingham
 | 
						|
#
 | 
						|
# 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.1.0 
 | 
						|
    of the GRAMPS XML genealogy data format.
 | 
						|
    Please use the following formal public identifier to identify it:
 | 
						|
 | 
						|
    "-//GRAMPS//DTD GRAMPS XML V1.1.0//EN"
 | 
						|
 | 
						|
    For example:
 | 
						|
        <!DOCTYPE database PUBLIC "-//GRAMPS//DTD GRAMPS XML V1.1.0//EN"
 | 
						|
                "http://gramps-project.org/xml/1.1.0/grampsxml.dtd"
 | 
						|
                [...]>
 | 
						|
-->
 | 
						|
 | 
						|
 | 
						|
<!--
 | 
						|
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, events?, people?, families?, sources?, 
 | 
						|
                    places?, objects?, repositories?, bookmarks?)>
 | 
						|
<!ATTLIST database xmlns CDATA #FIXED "http://gramps-project.org/xml/1.1.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?)>
 | 
						|
 | 
						|
<!ELEMENT created EMPTY>
 | 
						|
<!ATTLIST created
 | 
						|
        date     CDATA #REQUIRED
 | 
						|
        version  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
 | 
						|
-->
 | 
						|
 | 
						|
<!ELEMENT people (person)*>
 | 
						|
<!ATTLIST people 
 | 
						|
        default CDATA #IMPLIED
 | 
						|
        home    IDREF #IMPLIED
 | 
						|
>
 | 
						|
 | 
						|
<!ELEMENT person (gender, name*, nick?, eventref*, lds_ord*,
 | 
						|
                  objref*, address*, attribute*, url*,
 | 
						|
                  childof*,  parentin*, note?, sourceref*)>
 | 
						|
<!ATTLIST person
 | 
						|
        id        CDATA #REQUIRED
 | 
						|
        handle    ID    #REQUIRED
 | 
						|
        priv      (0|1) #IMPLIED
 | 
						|
	marker    CDATA #IMPLIED
 | 
						|
        change    CDATA #REQUIRED
 | 
						|
>
 | 
						|
 | 
						|
<!--
 | 
						|
GENDER has values of M, F, or U.
 | 
						|
-->
 | 
						|
<!ELEMENT gender  (#PCDATA)>
 | 
						|
 | 
						|
<!ELEMENT name    (first?,last?,suffix?,patronymic?,title?,
 | 
						|
                  (daterange|dateval|datestr)?,note?,sourceref*)>
 | 
						|
<!ATTLIST name    
 | 
						|
        alt       (0|1) #IMPLIED
 | 
						|
        type      CDATA #IMPLIED
 | 
						|
        priv      (0|1) #IMPLIED
 | 
						|
        sort      CDATA #IMPLIED
 | 
						|
        display   CDATA #IMPLIED
 | 
						|
>
 | 
						|
 | 
						|
<!ELEMENT first      (#PCDATA)>
 | 
						|
<!ELEMENT last       (#PCDATA)>
 | 
						|
<!ATTLIST last
 | 
						|
        prefix CDATA #IMPLIED
 | 
						|
        group  CDATA #IMPLIED
 | 
						|
>
 | 
						|
<!ELEMENT suffix     (#PCDATA)>
 | 
						|
<!ELEMENT patronymic (#PCDATA)>
 | 
						|
<!ELEMENT title      (#PCDATA)>
 | 
						|
 | 
						|
<!ELEMENT nick      (#PCDATA)>
 | 
						|
 | 
						|
<!ELEMENT childof EMPTY>
 | 
						|
<!ATTLIST childof
 | 
						|
  hlink IDREF  #REQUIRED
 | 
						|
  mrel  (None|Birth|Adopted|Stepchild|Sponsored|Foster|Other|Unknown) #IMPLIED
 | 
						|
  frel  (None|Birth|Adopted|Stepchild|Sponsored|Foster|Other|Unknown) #IMPLIED
 | 
						|
>
 | 
						|
 | 
						|
<!ELEMENT parentin EMPTY>
 | 
						|
<!ATTLIST parentin hlink IDREF #REQUIRED>
 | 
						|
 | 
						|
<!ELEMENT address ((daterange|dateval|datestr)?,street?,city?,state?,
 | 
						|
                   country?,postal?,phone?,note?,sourceref?)>
 | 
						|
<!ATTLIST address priv (0|1) #IMPLIED>
 | 
						|
 | 
						|
<!ELEMENT street  (#PCDATA)>
 | 
						|
<!ELEMENT city    (#PCDATA)>
 | 
						|
<!ELEMENT country (#PCDATA)>
 | 
						|
<!ELEMENT postal  (#PCDATA)>
 | 
						|
<!ELEMENT state   (#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*,child*,attribute*,note?,sourceref*)>
 | 
						|
<!ATTLIST family
 | 
						|
        id        CDATA #REQUIRED
 | 
						|
        handle    ID    #REQUIRED
 | 
						|
        priv      (0|1) #IMPLIED
 | 
						|
	marker    CDATA #IMPLIED
 | 
						|
        change    CDATA #REQUIRED
 | 
						|
>
 | 
						|
 | 
						|
<!ELEMENT father EMPTY>
 | 
						|
<!ATTLIST father hlink IDREF #REQUIRED>
 | 
						|
 | 
						|
<!ELEMENT mother EMPTY>
 | 
						|
<!ATTLIST mother hlink IDREF #REQUIRED>
 | 
						|
 | 
						|
<!ELEMENT child EMPTY>
 | 
						|
<!ATTLIST child hlink IDREF #REQUIRED>
 | 
						|
 | 
						|
<!ELEMENT type (#PCDATA)>
 | 
						|
 | 
						|
<!ELEMENT rel EMPTY>
 | 
						|
<!ATTLIST rel type CDATA #REQUIRED>
 | 
						|
 | 
						|
<!--	************************************************************
 | 
						|
EVENT
 | 
						|
-->
 | 
						|
<!ELEMENT events (event)*>
 | 
						|
 | 
						|
<!ELEMENT event (type?,(daterange|dateval|datestr)?,place?,cause?,
 | 
						|
                 description?,note?,sourceref*,objref*)>
 | 
						|
<!ATTLIST event 
 | 
						|
        id        CDATA #REQUIRED
 | 
						|
        handle    ID    #REQUIRED
 | 
						|
        priv      (0|1) #IMPLIED
 | 
						|
	marker    CDATA #IMPLIED
 | 
						|
        change    CDATA #REQUIRED
 | 
						|
>
 | 
						|
 | 
						|
<!--	************************************************************
 | 
						|
SOURCES
 | 
						|
-->
 | 
						|
 | 
						|
<!ELEMENT sources (source)*>
 | 
						|
<!ELEMENT source (stitle?,sauthor?,spubinfo?,sabbrev?,
 | 
						|
                  note?,objref*,data_item*,reporef*)>
 | 
						|
<!ATTLIST source
 | 
						|
        id        CDATA #REQUIRED
 | 
						|
        handle    ID    #REQUIRED
 | 
						|
        priv      (0|1) #IMPLIED
 | 
						|
	marker    CDATA #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*,note?,sourceref*)>
 | 
						|
<!ATTLIST placeobj
 | 
						|
        id        CDATA #REQUIRED
 | 
						|
        handle    ID    #REQUIRED
 | 
						|
        priv      (0|1) #IMPLIED
 | 
						|
	marker    CDATA #IMPLIED
 | 
						|
        change    CDATA #REQUIRED
 | 
						|
>
 | 
						|
 | 
						|
<!ELEMENT ptitle   (#PCDATA)>
 | 
						|
 | 
						|
<!ELEMENT coord EMPTY>
 | 
						|
<!ATTLIST coord
 | 
						|
        long CDATA #REQUIRED
 | 
						|
        lat  CDATA #REQUIRED
 | 
						|
>
 | 
						|
 | 
						|
<!ELEMENT location EMPTY>
 | 
						|
<!ATTLIST location
 | 
						|
    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*,note?,(daterange|dateval|datestr)?,
 | 
						|
		  sourceref*)>
 | 
						|
<!ATTLIST object
 | 
						|
        id        CDATA #REQUIRED
 | 
						|
        handle    ID    #REQUIRED
 | 
						|
        priv      (0|1) #IMPLIED
 | 
						|
	marker    CDATA #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*,note?)>
 | 
						|
<!ATTLIST repository
 | 
						|
        id        CDATA #REQUIRED
 | 
						|
        handle    ID    #REQUIRED
 | 
						|
        priv      (0|1) #IMPLIED
 | 
						|
	marker    CDATA #IMPLIED
 | 
						|
        change    CDATA #REQUIRED
 | 
						|
>
 | 
						|
 | 
						|
<!ELEMENT rname   (#PCDATA)>
 | 
						|
 | 
						|
 | 
						|
<!--	************************************************************
 | 
						|
BOOKMARKS
 | 
						|
-->
 | 
						|
 | 
						|
<!ELEMENT bookmarks (bookmark)*>
 | 
						|
<!ELEMENT bookmark EMPTY>
 | 
						|
<!ATTLIST bookmark hlink IDREF #REQUIRED>
 | 
						|
 | 
						|
<!--	************************************************************
 | 
						|
SHARED ELEMENTS
 | 
						|
-->
 | 
						|
<!ELEMENT daterange    EMPTY>
 | 
						|
<!ATTLIST daterange
 | 
						|
        start   CDATA #REQUIRED
 | 
						|
        stop    CDATA #REQUIRED
 | 
						|
        quality (estimated|calculated) #IMPLIED
 | 
						|
        cformat CDATA #IMPLIED
 | 
						|
>
 | 
						|
 | 
						|
<!ELEMENT dateval    EMPTY>
 | 
						|
<!ATTLIST dateval
 | 
						|
        val     CDATA                  #REQUIRED
 | 
						|
        type    (before|after|about)   #IMPLIED
 | 
						|
        quality (estimated|calculated) #IMPLIED
 | 
						|
        cformat CDATA                  #IMPLIED
 | 
						|
>
 | 
						|
 | 
						|
<!ELEMENT datestr    EMPTY>
 | 
						|
<!ATTLIST datestr val CDATA #REQUIRED>
 | 
						|
 | 
						|
<!ELEMENT note       (#PCDATA)>
 | 
						|
<!ATTLIST note format (0|1) #IMPLIED>
 | 
						|
 | 
						|
<!ELEMENT sourceref (spage?,scomments?,stext?,(daterange|dateval|datestr)?)>
 | 
						|
<!ATTLIST sourceref
 | 
						|
        hlink IDREF #REQUIRED
 | 
						|
        conf  CDATA #IMPLIED
 | 
						|
>
 | 
						|
 | 
						|
<!ELEMENT eventref (note?)>
 | 
						|
<!ATTLIST eventref
 | 
						|
        hlink IDREF #REQUIRED
 | 
						|
        priv  (0|1) #IMPLIED
 | 
						|
        role  CDATA #IMPLIED
 | 
						|
>
 | 
						|
 | 
						|
<!ELEMENT reporef (note?)>
 | 
						|
<!ATTLIST reporef
 | 
						|
        hlink  IDREF #REQUIRED
 | 
						|
        callno CDATA #IMPLIED
 | 
						|
        medium CDATA #IMPLIED
 | 
						|
>
 | 
						|
 | 
						|
<!ELEMENT marker EMPTY>
 | 
						|
<!ATTLIST marker
 | 
						|
        type  CDATA  #REQUIRED
 | 
						|
>
 | 
						|
 | 
						|
<!ELEMENT spage     (#PCDATA)>
 | 
						|
<!ELEMENT scomments (#PCDATA)>
 | 
						|
<!ELEMENT sdate     (#PCDATA)>
 | 
						|
<!ELEMENT stext     (#PCDATA)>
 | 
						|
 | 
						|
<!ELEMENT attribute  (sourceref*,note?)>
 | 
						|
<!ATTLIST attribute
 | 
						|
        priv 	(0|1) 	#IMPLIED
 | 
						|
        type	CDATA	#REQUIRED
 | 
						|
        value	CDATA	#REQUIRED
 | 
						|
>
 | 
						|
 | 
						|
<!ELEMENT comment (#PCDATA)>
 | 
						|
 | 
						|
<!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 (attribute*,sourceref*,note?)>
 | 
						|
<!ATTLIST objref 
 | 
						|
        hlink IDREF #REQUIRED
 | 
						|
        priv (0|1)  #IMPLIED
 | 
						|
>
 | 
						|
 | 
						|
<!ELEMENT data_item EMPTY>
 | 
						|
<!ATTLIST data_item
 | 
						|
        key   CDATA #REQUIRED
 | 
						|
        value CDATA #REQUIRED
 | 
						|
>
 | 
						|
 | 
						|
<!ELEMENT lds_ord ((daterange|dateval|datestr)?,temple?,place?,status?,
 | 
						|
                   sealed_to?,note?,sourceref*)>
 | 
						|
<!ATTLIST lds_ord
 | 
						|
        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
 | 
						|
>
 |