* data/grampsxml.dtd: Update DTD.

* data/grampsxml.rng: Update schema.


svn: r8201
This commit is contained in:
Alex Roitman 2007-02-21 03:29:52 +00:00
parent 302e3f1dbc
commit 16785f84ad
4 changed files with 109 additions and 85 deletions

View File

@ -1,4 +1,6 @@
2007-02-20 Alex Roitman <shura@gramps-project.org> 2007-02-20 Alex Roitman <shura@gramps-project.org>
* data/grampsxml.dtd: Update DTD.
* data/grampsxml.rng: Update schema.
* src/GrampsDb/_GrampsDbWriteXML.py (write_xml_data): Place notes * src/GrampsDb/_GrampsDbWriteXML.py (write_xml_data): Place notes
at the end. at the end.
* src/GrampsDbUtils/_ReadXML.py (start_noteref): Add method; * src/GrampsDbUtils/_ReadXML.py (start_noteref): Add method;

View File

@ -4,7 +4,7 @@
# Gramps - a GTK+/GNOME based genealogy program # Gramps - a GTK+/GNOME based genealogy program
# #
# Copyright (C) 2001 Graham J. Williams # Copyright (C) 2001 Graham J. Williams
# Copyright (C) 2000-2006 Donald N. Allingham # Copyright (C) 2000-2007 Donald N. Allingham
# #
# This program is free software; you can redistribute it and/or modify # 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 # it under the terms of the GNU General Public License as published by
@ -24,15 +24,15 @@
--> -->
<!-- <!--
This is the Document Type Definition file for v1.1.3 This is the Document Type Definition file for v1.1.4
of the GRAMPS XML genealogy data format. of the GRAMPS XML genealogy data format.
Please use the following formal public identifier to identify it: Please use the following formal public identifier to identify it:
"-//GRAMPS//DTD GRAMPS XML V1.1.3//EN" "-//GRAMPS//DTD GRAMPS XML V1.1.4//EN"
For example: For example:
<!DOCTYPE database PUBLIC "-//GRAMPS//DTD GRAMPS XML V1.1.3//EN" <!DOCTYPE database PUBLIC "-//GRAMPS//DTD GRAMPS XML V1.1.4//EN"
"http://gramps-project.org/xml/1.1.3/grampsxml.dtd" "http://gramps-project.org/xml/1.1.4/grampsxml.dtd"
[...]> [...]>
--> -->
@ -48,12 +48,14 @@ DATABASE
places places
objects objects
repositories repositories
notes
bookmarks bookmarks
--> -->
<!ELEMENT database (header, name-formats?, events?, people?, families?, <!ELEMENT database (header, name-formats?, events?, people?, families?,
sources?, places?, objects?, repositories?, bookmark?)> sources?, places?, objects?, repositories?, notes?,
<!ATTLIST database xmlns CDATA #FIXED "http://gramps-project.org/xml/1.1.3/"> bookmark?)>
<!ATTLIST database xmlns CDATA #FIXED "http://gramps-project.org/xml/1.1.4/">
<!-- ************************************************************ <!-- ************************************************************
HEADER HEADER
@ -93,8 +95,8 @@ PEOPLE
> >
<!ELEMENT person (gender, name*, nick?, eventref*, lds_ord*, <!ELEMENT person (gender, name*, nick?, eventref*, lds_ord*,
objref*, address*, attribute*, url*, objref*, address*, attribute*, url*, childof*,
childof*, parentin*, personref*, note?, sourceref*)> parentin*, personref*, noteref*, sourceref*)>
<!ATTLIST person <!ATTLIST person
id CDATA #REQUIRED id CDATA #REQUIRED
handle ID #REQUIRED handle ID #REQUIRED
@ -109,7 +111,7 @@ GENDER has values of M, F, or U.
<!ELEMENT gender (#PCDATA)> <!ELEMENT gender (#PCDATA)>
<!ELEMENT name (first?,last?,suffix?,patronymic?,title?, <!ELEMENT name (first?,last?,suffix?,patronymic?,title?,
(daterange|dateval|datestr)?,note?,sourceref*)> (daterange|dateval|datestr)?,noteref*,sourceref*)>
<!ATTLIST name <!ATTLIST name
alt (0|1) #IMPLIED alt (0|1) #IMPLIED
type CDATA #IMPLIED type CDATA #IMPLIED
@ -137,7 +139,7 @@ GENDER has values of M, F, or U.
<!ELEMENT parentin EMPTY> <!ELEMENT parentin EMPTY>
<!ATTLIST parentin hlink IDREF #REQUIRED> <!ATTLIST parentin hlink IDREF #REQUIRED>
<!ELEMENT personref (sourceref*,note?)> <!ELEMENT personref (sourceref*,noteref*)>
<!ATTLIST personref <!ATTLIST personref
hlink IDREF #REQUIRED hlink IDREF #REQUIRED
priv (0|1) #IMPLIED priv (0|1) #IMPLIED
@ -145,7 +147,7 @@ GENDER has values of M, F, or U.
> >
<!ELEMENT address ((daterange|dateval|datestr)?,street?,city?,county?,state?, <!ELEMENT address ((daterange|dateval|datestr)?,street?,city?,county?,state?,
country?,postal?,phone?,note?,sourceref*)> country?,postal?,phone?,noteref*,sourceref*)>
<!ATTLIST address priv (0|1) #IMPLIED> <!ATTLIST address priv (0|1) #IMPLIED>
<!ELEMENT street (#PCDATA)> <!ELEMENT street (#PCDATA)>
@ -165,7 +167,7 @@ FAMILY
<!ELEMENT families (family)*> <!ELEMENT families (family)*>
<!ELEMENT family (rel?,father?,mother?,eventref*,lds_ord*, <!ELEMENT family (rel?,father?,mother?,eventref*,lds_ord*,
objref*,childref*,attribute*,note?,sourceref*)> objref*,childref*,attribute*,noteref*,sourceref*)>
<!ATTLIST family <!ATTLIST family
id CDATA #REQUIRED id CDATA #REQUIRED
handle ID #REQUIRED handle ID #REQUIRED
@ -180,7 +182,7 @@ FAMILY
<!ELEMENT mother EMPTY> <!ELEMENT mother EMPTY>
<!ATTLIST mother hlink IDREF #REQUIRED> <!ATTLIST mother hlink IDREF #REQUIRED>
<!ELEMENT childref (sourceref*,note?)> <!ELEMENT childref (sourceref*,noteref*)>
<!ATTLIST childref <!ATTLIST childref
hlink IDREF #REQUIRED hlink IDREF #REQUIRED
priv (0|1) #IMPLIED priv (0|1) #IMPLIED
@ -199,7 +201,7 @@ EVENT
<!ELEMENT events (event)*> <!ELEMENT events (event)*>
<!ELEMENT event (type?,(daterange|dateval|datestr)?,place?,cause?, <!ELEMENT event (type?,(daterange|dateval|datestr)?,place?,cause?,
description?,attribute*,note?,sourceref*,objref*)> description?,attribute*,noteref*,sourceref*,objref*)>
<!ATTLIST event <!ATTLIST event
id CDATA #REQUIRED id CDATA #REQUIRED
handle ID #REQUIRED handle ID #REQUIRED
@ -214,7 +216,7 @@ SOURCES
<!ELEMENT sources (source)*> <!ELEMENT sources (source)*>
<!ELEMENT source (stitle?,sauthor?,spubinfo?,sabbrev?, <!ELEMENT source (stitle?,sauthor?,spubinfo?,sabbrev?,
note?,objref*,data_item*,reporef*)> noteref*,objref*,data_item*,reporef*)>
<!ATTLIST source <!ATTLIST source
id CDATA #REQUIRED id CDATA #REQUIRED
handle ID #REQUIRED handle ID #REQUIRED
@ -233,7 +235,7 @@ PLACES
<!ELEMENT places (placeobj)*> <!ELEMENT places (placeobj)*>
<!ELEMENT placeobj (ptitle?,coord?,location*,objref*,url*,note?,sourceref*)> <!ELEMENT placeobj (ptitle?,coord?,location*,objref*,url*,noteref*,sourceref*)>
<!ATTLIST placeobj <!ATTLIST placeobj
id CDATA #REQUIRED id CDATA #REQUIRED
handle ID #REQUIRED handle ID #REQUIRED
@ -268,7 +270,7 @@ OBJECTS
<!ELEMENT objects (object)*> <!ELEMENT objects (object)*>
<!ELEMENT object (file,attribute*,note?,(daterange|dateval|datestr)?, <!ELEMENT object (file,attribute*,noteref*,(daterange|dateval|datestr)?,
sourceref*)> sourceref*)>
<!ATTLIST object <!ATTLIST object
id CDATA #REQUIRED id CDATA #REQUIRED
@ -291,7 +293,7 @@ REPOSITORIES
<!ELEMENT repositories (repository)*> <!ELEMENT repositories (repository)*>
<!ELEMENT repository (rname,type,address*,url*,note?)> <!ELEMENT repository (rname,type,address*,url*,noteref*)>
<!ATTLIST repository <!ATTLIST repository
id CDATA #REQUIRED id CDATA #REQUIRED
handle ID #REQUIRED handle ID #REQUIRED
@ -302,6 +304,23 @@ REPOSITORIES
<!ELEMENT rname (#PCDATA)> <!ELEMENT rname (#PCDATA)>
<!-- ************************************************************
NOTES
-->
<!ELEMENT notes (note)*>
<!ELEMENT note (#PCDATA)>
<!ATTLIST note
id CDATA #REQUIRED
handle ID #REQUIRED
priv (0|1) #IMPLIED
marker CDATA #IMPLIED
change CDATA #REQUIRED
format (0|1) #IMPLIED
type CDATA #REQUIRED
>
<!-- ************************************************************ <!-- ************************************************************
BOOKMARKS BOOKMARKS
@ -349,48 +368,42 @@ SHARED ELEMENTS
<!ELEMENT datestr EMPTY> <!ELEMENT datestr EMPTY>
<!ATTLIST datestr val CDATA #REQUIRED> <!ATTLIST datestr val CDATA #REQUIRED>
<!ELEMENT note (#PCDATA)> <!ELEMENT sourceref (spage?,noteref*,stext?,(daterange|dateval|datestr)?)>
<!ATTLIST note format (0|1) #IMPLIED>
<!ELEMENT sourceref (spage?,scomments?,stext?,(daterange|dateval|datestr)?)>
<!ATTLIST sourceref <!ATTLIST sourceref
hlink IDREF #REQUIRED hlink IDREF #REQUIRED
conf CDATA #IMPLIED conf CDATA #IMPLIED
> >
<!ELEMENT eventref (attribute*,note?)> <!ELEMENT eventref (attribute*,noteref*)>
<!ATTLIST eventref <!ATTLIST eventref
hlink IDREF #REQUIRED hlink IDREF #REQUIRED
priv (0|1) #IMPLIED priv (0|1) #IMPLIED
role CDATA #IMPLIED role CDATA #IMPLIED
> >
<!ELEMENT reporef (note?)> <!ELEMENT reporef (noteref*)>
<!ATTLIST reporef <!ATTLIST reporef
hlink IDREF #REQUIRED hlink IDREF #REQUIRED
callno CDATA #IMPLIED callno CDATA #IMPLIED
medium CDATA #IMPLIED medium CDATA #IMPLIED
> >
<!ELEMENT marker EMPTY> <!ELEMENT noteref EMPTY>
<!ATTLIST marker <!ATTLIST noteref
type CDATA #REQUIRED hlink IDREF #REQUIRED
> >
<!ELEMENT spage (#PCDATA)> <!ELEMENT spage (#PCDATA)>
<!ELEMENT scomments (#PCDATA)>
<!ELEMENT sdate (#PCDATA)> <!ELEMENT sdate (#PCDATA)>
<!ELEMENT stext (#PCDATA)> <!ELEMENT stext (#PCDATA)>
<!ELEMENT attribute (sourceref*,note?)> <!ELEMENT attribute (sourceref*,noteref*)>
<!ATTLIST attribute <!ATTLIST attribute
priv (0|1) #IMPLIED priv (0|1) #IMPLIED
type CDATA #REQUIRED type CDATA #REQUIRED
value CDATA #REQUIRED value CDATA #REQUIRED
> >
<!ELEMENT comment (#PCDATA)>
<!ELEMENT place EMPTY> <!ELEMENT place EMPTY>
<!ATTLIST place hlink IDREF #REQUIRED> <!ATTLIST place hlink IDREF #REQUIRED>
@ -405,7 +418,7 @@ SHARED ELEMENTS
description CDATA #IMPLIED description CDATA #IMPLIED
> >
<!ELEMENT objref (attribute*,sourceref*,note?)> <!ELEMENT objref (attribute*,sourceref*,noteref*)>
<!ATTLIST objref <!ATTLIST objref
hlink IDREF #REQUIRED hlink IDREF #REQUIRED
priv (0|1) #IMPLIED priv (0|1) #IMPLIED
@ -418,7 +431,7 @@ SHARED ELEMENTS
> >
<!ELEMENT lds_ord ((daterange|dateval|datestr)?,temple?,place?,status?, <!ELEMENT lds_ord ((daterange|dateval|datestr)?,temple?,place?,status?,
sealed_to?,note?,sourceref*)> sealed_to?,noteref*,sourceref*)>
<!ATTLIST lds_ord <!ATTLIST lds_ord
type CDATA #REQUIRED type CDATA #REQUIRED
> >

View File

@ -3,7 +3,7 @@
<!-- <!--
# Gramps - a GTK+/GNOME based genealogy program # Gramps - a GTK+/GNOME based genealogy program
# #
# Copyright (C) 2005-2006 Donald N. Allingham # Copyright (C) 2005-2007 Donald N. Allingham
# #
# This program is free software; you can redistribute it and/or modify # 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 # it under the terms of the GNU General Public License as published by
@ -31,7 +31,7 @@
<grammar <grammar
datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"
ns="http://gramps-project.org/xml/1.1.3/" ns="http://gramps-project.org/xml/1.1.4/"
xmlns="http://relaxng.org/ns/structure/1.0"> xmlns="http://relaxng.org/ns/structure/1.0">
<start><element name="database"> <start><element name="database">
@ -98,6 +98,12 @@
</element></zeroOrMore> </element></zeroOrMore>
</element></optional> </element></optional>
<optional><element name="notes">
<zeroOrMore><element name="note">
<ref name="note-content"/>
</element></zeroOrMore>
</element></optional>
<optional><element name="bookmarks"> <optional><element name="bookmarks">
<zeroOrMore><element name="bookmark"> <zeroOrMore><element name="bookmark">
<ref name="bookmark-content"/> <ref name="bookmark-content"/>
@ -170,9 +176,9 @@
</attribute></optional> </attribute></optional>
<attribute name="rel"><text/></attribute> <attribute name="rel"><text/></attribute>
</element></zeroOrMore> </element></zeroOrMore>
<optional><element name="note"> <zeroOrMore><element name="noteref">
<ref name="note-content"/> <ref name="noteref-content"/>
</element></optional> </element></zeroOrMore>
<zeroOrMore><element name="sourceref"> <zeroOrMore><element name="sourceref">
<ref name="sourceref-content"/> <ref name="sourceref-content"/>
</element></zeroOrMore> </element></zeroOrMore>
@ -217,9 +223,9 @@
<optional><element name="patronymic"><text/></element></optional> <optional><element name="patronymic"><text/></element></optional>
<optional><element name="title"><text/></element></optional> <optional><element name="title"><text/></element></optional>
<optional><ref name="date-content"/></optional> <optional><ref name="date-content"/></optional>
<optional><element name="note"> <zeroOrMore><element name="noteref">
<ref name="note-content"/> <ref name="noteref-content"/>
</element></optional> </element></zeroOrMore>
<zeroOrMore><element name="sourceref"> <zeroOrMore><element name="sourceref">
<ref name="sourceref-content"/> <ref name="sourceref-content"/>
</element></zeroOrMore> </element></zeroOrMore>
@ -237,9 +243,9 @@
<optional><element name="country"><text/></element></optional> <optional><element name="country"><text/></element></optional>
<optional><element name="postal"><text/></element></optional> <optional><element name="postal"><text/></element></optional>
<optional><element name="phone"><text/></element></optional> <optional><element name="phone"><text/></element></optional>
<optional><element name="note"> <zeroOrMore><element name="noteref">
<ref name="note-content"/> <ref name="noteref-content"/>
</element></optional> </element></zeroOrMore>
<zeroOrMore><element name="sourceref"> <zeroOrMore><element name="sourceref">
<ref name="sourceref-content"/> <ref name="sourceref-content"/>
</element></zeroOrMore> </element></zeroOrMore>
@ -310,9 +316,9 @@
<zeroOrMore><element name="attribute"> <zeroOrMore><element name="attribute">
<ref name="attribute-content"/> <ref name="attribute-content"/>
</element></zeroOrMore> </element></zeroOrMore>
<optional><element name="note"> <zeroOrMore><element name="noteref">
<ref name="note-content"/> <ref name="noteref-content"/>
</element></optional> </element></zeroOrMore>
<optional><ref name="date-content"/></optional> <optional><ref name="date-content"/></optional>
<zeroOrMore><element name="sourceref"> <zeroOrMore><element name="sourceref">
<ref name="sourceref-content"/> <ref name="sourceref-content"/>
@ -330,9 +336,9 @@
<zeroOrMore><element name="attribute"> <zeroOrMore><element name="attribute">
<ref name="attribute-content"/> <ref name="attribute-content"/>
</element></zeroOrMore> </element></zeroOrMore>
<optional><element name="note"> <zeroOrMore><element name="noteref">
<ref name="note-content"/> <ref name="noteref-content"/>
</element></optional> </element></zeroOrMore>
<zeroOrMore><element name="sourceref"> <zeroOrMore><element name="sourceref">
<ref name="sourceref-content"/> <ref name="sourceref-content"/>
</element></zeroOrMore> </element></zeroOrMore>
@ -347,9 +353,9 @@
<optional><element name="sauthor"><text/></element></optional> <optional><element name="sauthor"><text/></element></optional>
<optional><element name="spubinfo"><text/></element></optional> <optional><element name="spubinfo"><text/></element></optional>
<optional><element name="sabbrev"><text/></element></optional> <optional><element name="sabbrev"><text/></element></optional>
<optional><element name="note"> <zeroOrMore><element name="noteref">
<ref name="note-content"/> <ref name="noteref-content"/>
</element></optional> </element></zeroOrMore>
<zeroOrMore><element name="objref"> <zeroOrMore><element name="objref">
<ref name="objref-content"/> <ref name="objref-content"/>
</element></zeroOrMore> </element></zeroOrMore>
@ -385,9 +391,9 @@
<zeroOrMore><element name="url"> <zeroOrMore><element name="url">
<ref name="url-content"/> <ref name="url-content"/>
</element></zeroOrMore> </element></zeroOrMore>
<optional><element name="note"> <zeroOrMore><element name="noteref">
<ref name="note-content"/> <ref name="noteref-content"/>
</element></optional> </element></zeroOrMore>
<zeroOrMore><element name="sourceref"> <zeroOrMore><element name="sourceref">
<ref name="sourceref-content"/> <ref name="sourceref-content"/>
</element></zeroOrMore> </element></zeroOrMore>
@ -404,9 +410,9 @@
<zeroOrMore><element name="attribute"> <zeroOrMore><element name="attribute">
<ref name="attribute-content"/> <ref name="attribute-content"/>
</element></zeroOrMore> </element></zeroOrMore>
<optional><element name="note"> <zeroOrMore><element name="noteref">
<ref name="note-content"/> <ref name="noteref-content"/>
</element></optional> </element></zeroOrMore>
<optional><ref name="date-content"/></optional> <optional><ref name="date-content"/></optional>
<zeroOrMore><element name="sourceref"> <zeroOrMore><element name="sourceref">
<ref name="sourceref-content"/> <ref name="sourceref-content"/>
@ -423,9 +429,9 @@
<zeroOrMore><element name="url"> <zeroOrMore><element name="url">
<ref name="url-content"/> <ref name="url-content"/>
</element></zeroOrMore> </element></zeroOrMore>
<optional><element name="note"> <zeroOrMore><element name="noteref">
<ref name="note-content"/> <ref name="noteref-content"/>
</element></optional> </element></zeroOrMore>
</define> </define>
<define name="bookmark-content"> <define name="bookmark-content">
@ -452,10 +458,12 @@
</define> </define>
<define name="note-content"> <define name="note-content">
<ref name="primary-object"/>
<optional><attribute name="format"><choice> <optional><attribute name="format"><choice>
<value>0</value> <value>0</value>
<value>1</value> <value>1</value>
</choice></attribute></optional> </choice></attribute></optional>
<attribute name="type"><text/></attribute>
<text/> <text/>
</define> </define>
@ -463,7 +471,9 @@
<attribute name="hlink"><data type="IDREF"/></attribute> <attribute name="hlink"><data type="IDREF"/></attribute>
<optional><attribute name="conf"><text/></attribute></optional> <optional><attribute name="conf"><text/></attribute></optional>
<optional><element name="spage"><text/></element></optional> <optional><element name="spage"><text/></element></optional>
<optional><element name="scomments"><text/></element></optional> <zeroOrMore><element name="noteref">
<ref name="noteref-content"/>
</element></zeroOrMore>
<optional><element name="stext"><text/></element></optional> <optional><element name="stext"><text/></element></optional>
<optional><ref name="date-content"/></optional> <optional><ref name="date-content"/></optional>
</define> </define>
@ -477,18 +487,22 @@
<zeroOrMore><element name="attribute"> <zeroOrMore><element name="attribute">
<ref name="attribute-content"/> <ref name="attribute-content"/>
</element></zeroOrMore> </element></zeroOrMore>
<optional><element name="note"> <zeroOrMore><element name="noteref">
<ref name="note-content"/> <ref name="noteref-content"/>
</element></optional> </element></zeroOrMore>
</define> </define>
<define name="reporef-content"> <define name="reporef-content">
<attribute name="hlink"><data type="IDREF"/></attribute> <attribute name="hlink"><data type="IDREF"/></attribute>
<optional><attribute name="callno"><text/></attribute></optional> <optional><attribute name="callno"><text/></attribute></optional>
<optional><attribute name="medium"><text/></attribute></optional> <optional><attribute name="medium"><text/></attribute></optional>
<optional><element name="note"> <zeroOrMore><element name="noteref">
<ref name="note-content"/> <ref name="noteref-content"/>
</element></optional> </element></zeroOrMore>
</define>
<define name="noteref-content">
<attribute name="hlink"><data type="IDREF"/></attribute>
</define> </define>
<define name="priv-content"> <define name="priv-content">
@ -507,9 +521,9 @@
<zeroOrMore><element name="sourceref"> <zeroOrMore><element name="sourceref">
<ref name="sourceref-content"/> <ref name="sourceref-content"/>
</element></zeroOrMore> </element></zeroOrMore>
<optional><element name="note"> <zeroOrMore><element name="noteref">
<ref name="note-content"/> <ref name="noteref-content"/>
</element></optional> </element></zeroOrMore>
</define> </define>
<define name="url-content"> <define name="url-content">
@ -532,9 +546,9 @@
<zeroOrMore><element name="sourceref"> <zeroOrMore><element name="sourceref">
<ref name="sourceref-content"/> <ref name="sourceref-content"/>
</element></zeroOrMore> </element></zeroOrMore>
<optional><element name="note"> <zeroOrMore><element name="noteref">
<ref name="note-content"/> <ref name="noteref-content"/>
</element></optional> </element></zeroOrMore>
</define> </define>
<define name="lds-content"> <define name="lds-content">
@ -552,9 +566,9 @@
<optional><element name="sealed_to"> <optional><element name="sealed_to">
<attribute name="hlink"><data type="IDREF"/></attribute> <attribute name="hlink"><data type="IDREF"/></attribute>
</element></optional> </element></optional>
<optional><element name="note"> <zeroOrMore><element name="noteref">
<ref name="note-content"/> <ref name="noteref-content"/>
</element></optional> </element></zeroOrMore>
<optional><ref name="date-content"/></optional> <optional><ref name="date-content"/></optional>
<zeroOrMore><element name="sourceref"> <zeroOrMore><element name="sourceref">
<ref name="sourceref-content"/> <ref name="sourceref-content"/>

View File

@ -678,12 +678,7 @@ class GrampsDbXmlWriter(object):
else: else:
self.g.write('<sourceref hlink="%s" conf="%d">\n' % ("_"+source.get_handle(),q)) self.g.write('<sourceref hlink="%s" conf="%d">\n' % ("_"+source.get_handle(),q))
self.write_line("spage",p,index+1) self.write_line("spage",p,index+1)
# FIXME: Do we really need scomments? One or many?
# Gedcom standard seems to allow normal notes in sourcerefs:
# http://homepages.rootsweb.com/~pmcbride/gedcom/55gcch2.htm#SOURCE_CITATION
self.write_note_list(n,index+1) self.write_note_list(n,index+1)
# for handle in n:
# self.write_ref("scomments",handle,index+1)
self.write_text("stext",t,index+1) self.write_text("stext",t,index+1)
self.write_date(d,index+1) self.write_date(d,index+1)
self.g.write("%s</sourceref>\n" % (" " * index)) self.g.write("%s</sourceref>\n" % (" " * index))