Difference between revisions of "Gramps XML"

From Gramps
Jump to: navigation, search
m (Gramps XML Resources: typo)
(See also)
 
(13 intermediate revisions by 3 users not shown)
Line 17: Line 17:
 
|-
 
|-
 
| master
 
| master
| no change against 4.2 yet
+
| no change against 5.2 yet
 
| >= 1.0.0 - best 1.7
 
| >= 1.0.0 - best 1.7
| 19
+
| 20
| >= 14 - best 19
+
| 13-20
 
| Unreleased <br />[{{Code Browser}}/tree/master/example/gramps/example.gramps example.gramps]
 
| Unreleased <br />[{{Code Browser}}/tree/master/example/gramps/example.gramps example.gramps]
 
| Unreleased  
 
| Unreleased  
Line 31: Line 31:
 
!XML schema
 
!XML schema
 
!Imports XML schema
 
!Imports XML schema
!Database
+
!Database schema
 +
!Imports database schema
 
!Example
 
!Example
 
!Changes/Note
 
!Changes/Note
 +
|-
 +
| 5.2.x
 +
| 1.7.0 - 1.7.1
 +
| >= 1.0.0 - 1.7
 +
| 20
 +
| 13-20
 +
|[{{Code Browser}}/tree/maintenance/gramps52/example/gramps/example.gramps]
 +
|
 +
* DB-API (SQLite) is default backend
 +
* BSDDB only for conversions to SQLite
 
|-
 
|-
 
| 5.1.x
 
| 5.1.x
Line 39: Line 50:
 
| >= 1.0.0 - 1.7
 
| >= 1.0.0 - 1.7
 
| 19
 
| 19
 +
| 13-19
 
|[{{Code Browser}}/tree/maintenance/gramps51/example/gramps/example.gramps]
 
|[{{Code Browser}}/tree/maintenance/gramps51/example/gramps/example.gramps]
 
|
 
|
Line 48: Line 60:
 
| >= 1.0.0 - 1.7
 
| >= 1.0.0 - 1.7
 
| 19
 
| 19
 +
| 13-19
 
|[{{Code Browser}}/tree/maintenance/gramps50/example/gramps/example.gramps]
 
|[{{Code Browser}}/tree/maintenance/gramps50/example/gramps/example.gramps]
 
|
 
|
Line 58: Line 71:
 
| >= 1.0.0 - 1.7
 
| >= 1.0.0 - 1.7
 
| 18
 
| 18
 +
| 13-18
 
|[{{Code Browser}}/tree/maintenance/gramps42/example/gramps/example.gramps]
 
|[{{Code Browser}}/tree/maintenance/gramps42/example/gramps/example.gramps]
 
|
 
|
Line 66: Line 80:
 
| >= 1.0.0 - best 1.5.1
 
| >= 1.0.0 - best 1.5.1
 
| 17
 
| 17
 +
| 13-17
 
|[{{Code Browser}}/tree/maintenance/gramps41/example/gramps/example.gramps]
 
|[{{Code Browser}}/tree/maintenance/gramps41/example/gramps/example.gramps]
 
|
 
|
Line 77: Line 92:
 
| >= 1.0.0 - best 1.4.0
 
| >= 1.0.0 - best 1.4.0
 
|16
 
|16
 +
|13-16
 
|[{{Code Browser}}/tree/maintenance/gramps40/example/gramps/example.gramps]
 
|[{{Code Browser}}/tree/maintenance/gramps40/example/gramps/example.gramps]
 
| -
 
| -
Line 84: Line 100:
 
| >= 1.0.0 - best 1.4.0
 
| >= 1.0.0 - best 1.4.0
 
|16
 
|16
 +
|13-16
 
|[{{Code Browser}}/tree/maintenance/gramps34/example/gramps/example.gramps]
 
|[{{Code Browser}}/tree/maintenance/gramps34/example/gramps/example.gramps]
 
|
 
|
Line 94: Line 111:
 
| >= 1.0.0 - best 1.3.0
 
| >= 1.0.0 - best 1.3.0
 
|15
 
|15
 +
|13-15 (3.3.1)
 
|[{{Code Browser}}/tree/maintenance/gramps33/example/gramps/example.gramps]
 
|[{{Code Browser}}/tree/maintenance/gramps33/example/gramps/example.gramps]
 
|
 
|
Line 107: Line 125:
 
|1.3.0
 
|1.3.0
 
| >= 1.0.0 - best 1.1.0
 
| >= 1.0.0 - best 1.1.0
|15
+
|14
 +
|13-14
 
|[{{Code Browser}}/tree/maintenance/gramps31/example/gramps/example.gramps]
 
|[{{Code Browser}}/tree/maintenance/gramps31/example/gramps/example.gramps]
 
|
 
|
Line 115: Line 134:
 
|1.2.0
 
|1.2.0
 
| >= 1.1.0
 
| >= 1.1.0
|14
+
|13-14 (depends on version)
 +
| [https://gramps.discourse.group/t/import-convert-old-database/3768/ 9-14 (3.0.4)]
 
|[{{Code Browser}}/tree/maintenance/gramps30/example/gramps/example.gramps]
 
|[{{Code Browser}}/tree/maintenance/gramps30/example/gramps/example.gramps]
 
|  
 
|  
Line 124: Line 144:
 
|1.1.0-1.1.4
 
|1.1.0-1.1.4
 
| >= 0.0.0
 
| >= 0.0.0
|13
+
|9-12 (depends on version)
 +
|5-12 (2.2.10)
 +
|[{{Code Browser}}/tree/maintenance/gramps22/example/gramps/data.gramps]
 +
|
 +
|-
 +
| 2.0.6-10
 +
| 1.0.0
 +
| >= 0.0.0
 +
| 8
 +
| 1-8
 +
|[{{Code Browser}}/tree/maintenance/gramps22/example/gramps/data.gramps]
 +
|
 +
|-
 +
| 2.0.5
 +
| 1.0.0
 +
| >= 0.0.0
 +
| 7
 +
| 1-7
 +
|[{{Code Browser}}/tree/maintenance/gramps22/example/gramps/data.gramps]
 +
|
 +
|-
 +
| 2.0.1-4
 +
| 1.0.0
 +
| >= 0.0.0
 +
| 6
 +
| 1-6
 
|[{{Code Browser}}/tree/maintenance/gramps22/example/gramps/data.gramps]
 
|[{{Code Browser}}/tree/maintenance/gramps22/example/gramps/data.gramps]
 
|
 
|
 
|-
 
|-
|2.0.x
+
| 2.0.0
|1.0.0
+
| 1.0.0
 
| >= 0.0.0
 
| >= 0.0.0
|13
+
| 5
 +
| 1-5
 
|[{{Code Browser}}/tree/maintenance/gramps20/gramps2/example/gramps/data.gramps]
 
|[{{Code Browser}}/tree/maintenance/gramps20/gramps2/example/gramps/data.gramps]
|  
+
| * changed name formats
* changed name formats
 
 
|-
 
|-
 
|1.0.x
 
|1.0.x
 
|no official version (0.0.0)
 
|no official version (0.0.0)
 
| -
 
| -
 +
|
 
|
 
|
 
|[{{Code Browser}}/tree/maintenance/gramps10/example/gramps/data.gramps]
 
|[{{Code Browser}}/tree/maintenance/gramps10/example/gramps/data.gramps]
Line 147: Line 193:
 
| Unsupported
 
| Unsupported
 
| Unsupported
 
| Unsupported
 +
|
 
| Unsupported
 
| Unsupported
 
|
 
|
Line 177: Line 224:
 
* GrampsXMLview was a number of PHP scripts in combination with a Gramps XML database (Sjoerd van Staveren). [https://web.archive.org/web/20120220103003/http://www.gramps.van-staveren.net/ 2012 www.gramps.van-staveren.net Internet Archive]
 
* GrampsXMLview was a number of PHP scripts in combination with a Gramps XML database (Sjoerd van Staveren). [https://web.archive.org/web/20120220103003/http://www.gramps.van-staveren.net/ 2012 www.gramps.van-staveren.net Internet Archive]
 
* [https://github.com/claws/gramps2gource gramps2gource] for blurring the line between Genealogy and Software Configuration Management visualisation.
 
* [https://github.com/claws/gramps2gource gramps2gource] for blurring the line between Genealogy and Software Configuration Management visualisation.
* ...
+
* [https://betty.readthedocs.io/latest/index.html Betty] generates a ready-to-publish static website from Gramps XML genealogy archives
  
 
==See also==
 
==See also==
 
* [https://gramps.discourse.group/t/auxiliary-xml-format-documentation/2800 Auxiliary XML files in Gramps]:  
 
* [https://gramps.discourse.group/t/auxiliary-xml-format-documentation/2800 Auxiliary XML files in Gramps]:  
** filters: custom_filters.xml
+
:.gramps/:
** report settings: report_options.xml
+
:* report_options.xml - report settings:
** Books: books.xml  
+
:* books.xml - Books
** holiday sets or country calendars: [[Calendar_tools_holidays#format_of_holidays.xml|holidays.xml]]
+
:* tool_options.xml
 +
:* [[Calendar_tools_holidays#format_of_holidays.xml|holidays.xml]] - holiday sets or country calendars
 +
:* recent-files-gramps.xml -
 +
:* fan_chart.xml
 +
:* place_formats.xml
 +
:.gramps//gramps52/
 +
:* custom_filters.xml - filters
 
* [[Generate XML]]
 
* [[Generate XML]]
 
* Tutorial: [[Customize_reports_with_XML_tool|Customize reports with XML tool]]
 
* Tutorial: [[Customize_reports_with_XML_tool|Customize reports with XML tool]]
Line 190: Line 243:
 
* [[Gramps and GEDCOM]]
 
* [[Gramps and GEDCOM]]
 
* [[Database_Formats]]
 
* [[Database_Formats]]
 +
* wiki "Just Solve the File Format Problem" - [http://fileformats.archiveteam.org/wiki/Genealogical_data Genealogical data] file formats
 
* [[Gramps Old database]]
 
* [[Gramps Old database]]
 
* [[Previous releases of Gramps]]
 
* [[Previous releases of Gramps]]

Latest revision as of 04:14, 13 March 2024

Gramps XML is the Extensible Markup Language (XML) format designed for storing Gramps data. The goal is to have a fully portable, human- and machine-readable XML format so that the data can be read and written without any loss. In addition, XML format allows for smaller files (if compressed) and for using the version control system for tracking the changes (if uncompressed).

The reason XML is not used by Gramps as the working database ("internal") format is performance, specifically memory considerations.

Gramps XML Resources

Gramps-notes.png
Starting with Gramps XML 1.0

Each revision of Gramps XML has its own resource page, with references to that version's DTD and RELAX NG schema.
The resource pages are listed at https://www.gramps-project.org/xml/.

Gramps release XML schema Imports XML schema Database schema Imports database schema Example Changes/Note
master no change against 5.2 yet >= 1.0.0 - best 1.7 20 13-20 Unreleased
example.gramps
Unreleased
Gramps-notes.png
Note

Commencing with Gramps 3.1.2 all official versions of Gramps XML files can be imported. However, a warning will be given on import of 1.0.0 XML.[1]

Note: For versions of Gramps earlier than 3.1.1 refer to and the consult the table below to decide which version to use to import a specific version of the XML.

Gramps release XML schema Imports XML schema Database schema Imports database schema Example Changes/Note
5.2.x 1.7.0 - 1.7.1 >= 1.0.0 - 1.7 20 13-20 [2]
  • DB-API (SQLite) is default backend
  • BSDDB only for conversions to SQLite
5.1.x 1.7.0 - 1.7.1 >= 1.0.0 - 1.7 19 13-19 [3]
  • DB-API (SQLite) is default backend
  • BSDDB is Legacy backend
5.0.x 1.7.0 - 1.7.1 >= 1.0.0 - 1.7 19 13-19 [4]
  • Database backends become plugins
  • BSDDB is default, convert default handle (metadata) to str
  • DB-API (SQLite) is tested as viable replacement
4.2.x 1.7.0 - 1.7.1 >= 1.0.0 - 1.7 18 13-18 [5]
  • Added PlaceNames (with Date and Language) Place
4.1.x 1.6.0 >= 1.0.0 - best 1.5.1 17 13-17 [6]
  • added Tags to Event, Place, Repository, Source, and Citation
  • Source/Citation.data became SourceAttributes
  • added optional support for checksum on Media object
  • added PlaceRef and Place Hierarchies
4.0.x 1.5.0 - 1.5.1 >= 1.0.0 - best 1.4.0 16 13-16 [7] -
3.4.x 1.5.0 - 1.5.1 >= 1.0.0 - best 1.4.0 16 13-16 [8]
  • Citations support
  • Gramps XML is now idempotent[9].4365
  • Exporter does not change records order any more, making it easier to look at differences between versions/revisions.
3.3.x 1.4.0 >= 1.0.0 - best 1.3.0 15 13-15 (3.3.1) [10]
  • Added new field "locality" to the Place schema
  • Added surnames to the Name schema (surnames is a list of surnames / prefix and patronymic are moved to the surname)
  • Replaced Markers with Tags ( marker removed from all / tags added to Person, Media, Family, and Notes)
  • Transaction
  • Merging
  • Improvements on Import/Export file formats (vcard, gedcom, xml)
  • Gramps_3.3_Wiki_Manual_-_What's_new?#Database Changes
3.1.x 1.3.0 >= 1.0.0 - best 1.1.0 14 13-14 [11]
  • Added lat/long to places
3.0.x 1.2.0 >= 1.1.0 13-14 (depends on version) 9-14 (3.0.4) [12]
  • added newyear to Dates
  • Replace plain text with StyledText in Notes
2.2.x 1.1.0-1.1.4 >= 0.0.0 9-12 (depends on version) 5-12 (2.2.10) [13]
2.0.6-10 1.0.0 >= 0.0.0 8 1-8 [14]
2.0.5 1.0.0 >= 0.0.0 7 1-7 [15]
2.0.1-4 1.0.0 >= 0.0.0 6 1-6 [16]
2.0.0 1.0.0 >= 0.0.0 5 1-5 [17] * changed name formats
1.0.x no official version (0.0.0) - [18] (Install Gramps 2.2.10 to import and convert old beta Gramps XML backups - see Gramps_Old_database & issue 6129)
0.0.x beta software (0.0.0) Unsupported Unsupported Unsupported
Gramps-notes.png
Note:

To convert an old Gramps XML file you could use VirtualBox or Vmware and the old lgenealogy images from:
http://ftp.gwdg.de/pub/linux/gramps/

DTD generation

Tool like xml2dtd could help people not familiar with DTD grammar by generating a DTD file from a XML file. New content on Gramps XML could be tested with the tool and be merged on current Gramps DTD.

RELAX NG generation

Tools like trang or NekoDTD could help to convert a Gramps DTD file to a RELAX NG file. Some others tools and up-to-date informations are listed on this page.

Validating Gramps XML file

To validate the Gramps XML file against its DTD, use xmllint program (comes with the libxml2-utils package):

xmllint --noout filename.gramps
Gnome-important.png
If the Gramps XML file does not validate

this indicates an error in either the DTD or the XML Writer.
Please file the bug report at https://gramps-project.org/bugs/ in that case.

Parsing Gramps XML file

See also

.gramps/:
  • report_options.xml - report settings:
  • books.xml - Books
  • tool_options.xml
  • holidays.xml - holiday sets or country calendars
  • recent-files-gramps.xml -
  • fan_chart.xml
  • place_formats.xml
.gramps//gramps52/
  • custom_filters.xml - filters