Is there an existing, standard, universal approach (and hopefully existing tools that support managing it) for storing geospatial metadata in non-ESRI spatial databases alongside (and therefore able to travel with when dumped) the data themselves.

I'm hoping to identify an approach that simply relies on tables and relations and could therefore be used in databases like PostGIS, Spatialite, Oracle, SQL Server, etc. Here, metadata mean the narrative information about the data (i.e., US FGDC or ISO 19139 geospatial metadata type information) - not the BBOX and internal stuff.

ESRI users have the now several XML formats that can universally describe and accompany data whether they be files (Shapefiles) or Geodatabases. However, what existing options exist when ESRI software are not used? Yes, of course, I could design my own tables, data structure, etc. But why reinvent a wheel that must surely exist.


Complex architectural components like Geonetwork (or anything necessarily involving a server) is exactly what I need to avoid. Also, the metadata would live with the data, not as a separate database. Requirements are below and I should have stated it at the start.

System requirements: 1. Architecture must need nothing more than QGIS and a Spatialite Database - partly because the organization is not sophisticated enough to run anything on a server and doesn't have money to buy anything or have anything built/deployed.

Functional requirement: 1. The data must be easily distributed to many people and the documentation must not be easily separated from the data - meaning they should live and easily be distributed together so that I always know what the data are and why they were created, etc - if I have the data I have the documentation. 2. Like the data themselves, the metadata documentation should be easily editable and maintained using intuitive desktop tools, and by non-technical staff.

Use case: 1. Bobby the Student Volunteer (and just learning GIS) creates some data of monitoring sites as part of a study. 2. Bobby records the inputs he used, explanation of his processing steps, and other info that helps others to understand the lineage of the data. 3. Bobby gets a real job and leaves, leaving his data backed up on CD-ROM. 4. Two years later someone finds the data and determines it to be very useful because they can read the documentation that are within the data.

If you come from sophisticated organizations you'd say, "Man, what a screwed up situation. Just manage the data the Right Way (whatever that is)." But related scenarios are actually quite common in my world.

  • 3
    I think the old joke standards are great, there's so many to choose from may apply here :)
    – sgrieve
    Nov 13, 2012 at 15:27
  • Not sure whether it's wise to dig out such an old post but I have very often asked myself the exact same question... I see that the new versions of Spatialite do support storage of XML (and thus of metadata) but is there any tool / user interface that is available to actually create / manage the metadata of my layers? Like John, I am not in a structure that could develop a tailor-made solution, so looking for anything readily available! May 12, 2016 at 10:22

1 Answer 1


Geonetwork Opensource is a very comprehensive metadata catalog for spatial data that supports many of the MD standards The default installation uses Mckoi, but it can be configured to use Oracle, PostgreSQL (or PostGIS), MySQL etc.

However, if I understand your question, you want the MD to accompany the dataset as a separate database file? This might be feasible by dumping the particular tables from your database, but I don't know how useful this would be without Geonetwork.

  • 2
    Second this. It has a web-interface and can be fairly easily customised behind the scenes. The data itself is stored as XML in one of the tables and with some bespoke fiddling this could be imported/exported directly. The app does allow exporting of data in numerous ways too. Nov 13, 2012 at 16:16
  • Thanks all for the responses. I updated my original post with more information. I think I'm returning to conclusion that no one is really doing this out-of-the-box, but the solution would be "simply" create a table for metadata blobs (store XML of some standard) with triggers to create rows whenever a new spatial table is added to the DB. CREATE TABLE "layer_metadata" ("meta_id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE , "f_table_name" TEXT NOT NULL, "created_dt" DATETIME NOT NULL , "updated_dt" DATETIME NOT NULL , "meta_document" BLOB NOT NULL ) Nov 14, 2012 at 19:56
  • Sandro (author of Spatialite) must have heard this cry in the wilderness - via googlegroups.com Hi List, a BETA preview of the next-to-come SpatiaLite 4.1.0 is now available gaia-gis.it/fossil/libspatialite/… Main goals are: - storing XML Documents within the DBMS - support XML validation - support plain SQL queries on XML Documents via canonical XPath expressions Implementing a common core of XML-oriented features is useful considering that ISO- and INSPIRE-Metadata or SLD/SE Styles are fully based on XML. Jan 3, 2013 at 15:08

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.