diff --git a/data/grampsxml.dtd b/data/grampsxml.dtd
index ee0c79f7a..667c4a317 100644
--- a/data/grampsxml.dtd
+++ b/data/grampsxml.dtd
@@ -383,7 +383,7 @@ BOOKMARKS
diff --git a/data/grampsxml.rng b/data/grampsxml.rng
index 25a0f140a..258889cb1 100644
--- a/data/grampsxml.rng
+++ b/data/grampsxml.rng
@@ -546,6 +546,7 @@
family
event
source
+ citation
place
media
repository
diff --git a/src/plugins/export/exportxml.py b/src/plugins/export/exportxml.py
index 2af595fd2..d52dd3f48 100644
--- a/src/plugins/export/exportxml.py
+++ b/src/plugins/export/exportxml.py
@@ -365,6 +365,7 @@ class GrampsXmlWriter(UpdateCallback):
bm_family_len = len(self.db.family_bookmarks.get())
bm_event_len = len(self.db.event_bookmarks.get())
bm_source_len = len(self.db.source_bookmarks.get())
+ bm_citation_len = len(self.db.citation_bookmarks.get())
bm_place_len = len(self.db.place_bookmarks.get())
bm_repo_len = len(self.db.repo_bookmarks.get())
bm_obj_len = len(self.db.media_bookmarks.get())
@@ -372,7 +373,7 @@ class GrampsXmlWriter(UpdateCallback):
bm_len = (bm_person_len + bm_family_len + bm_event_len +
bm_source_len + bm_place_len + bm_repo_len +
- bm_obj_len + bm_note_len
+ bm_citation_len + bm_obj_len + bm_note_len
)
if bm_len > 0:
@@ -390,6 +391,9 @@ class GrampsXmlWriter(UpdateCallback):
for handle in self.db.get_source_bookmarks().get():
self.g.write(' \n'
% handle )
+ for handle in self.db.get_citation_bookmarks().get():
+ self.g.write(' \n'
+ % handle )
for handle in self.db.get_place_bookmarks().get():
self.g.write(' \n'
% handle )
diff --git a/src/plugins/import/importxml.py b/src/plugins/import/importxml.py
index feccd76c2..a0fc0ed60 100644
--- a/src/plugins/import/importxml.py
+++ b/src/plugins/import/importxml.py
@@ -1286,6 +1286,10 @@ class GrampsParser(UpdateCallback):
if (self.db.get_source_from_handle(handle) is not None
and handle not in self.db.source_bookmarks.get() ):
self.db.source_bookmarks.append(handle)
+ elif target == 'citation':
+ if (self.db.get_citation_from_handle(handle) is not None
+ and handle not in self.db.citation_bookmarks.get() ):
+ self.db.citation_bookmarks.append(handle)
elif target == 'place':
if (self.db.get_place_from_handle(handle) is not None
and handle not in self.db.place_bookmarks.get() ):