Frequently Asked Questions

How should metadata in the database be mapped to a DIF XML?

The metadata structure is configurable, so this question must relate to a specific application of the database. The answer below is based on the applications implemented at met.no, which corresponds more or less to the EXAMPLE application available as part of the SVN source tree.

The METAMODPMH module contain a translation from the database to DIF XML. For the time being, this translation is imlemented in a PHP script oaidp-config.php. This script contains an array which defines the translation:

$key_conversion = array(
'!DS_name 1', 'Entry_ID', '',
'title', 'Entry_Title', '',
'PI_name', 'Data_Set_Citation Dataset_Creator', '',
'title', 'Data_Set_Citation Dataset_Title', '',
'institution', 'Data_Set_Citation Dataset_Publisher', '',
'dataref', 'Data_Set_Citation Online_Resource', '',
'variable', '*Parameters Category', 'EARTH SCIENCE',
'variable 1', 'Parameters Topic', '',
'variable 2', 'Parameters Term', '',
'variable 3', 'Parameters Variable_Level_1', '',
'variable', 'Parameters Detailed_Variable', '',
'topiccategory', 'ISO_Topic_Category', '',
'keywords', 'Keyword', '',
'datacollection_period 1', 'Temporal_Coverage Start_Date', '',
'datacollection_period 2', 'Temporal_Coverage Stop_Date', '',
'southernmost_latitude', 'Spatial_Coverage Southernmost_Latitude', '',
'northernmost_latitude', 'Spatial_Coverage Northernmost_Latitude', '',
'westernmost_longitude', 'Spatial_Coverage Westernmost_Longitude', '',
'easternmost_longitude', 'Spatial_Coverage Easternmost_Longitude', '',
'area 1', '*Location Location_Category', '',
'area 2', 'Location Location_Type', '',
'area 3', 'Location Location_Subregion1', '',
'area 4', 'Location Detailed_Location', '',
'latitude_resolution 1', 'Data_Resolution Latitude_Resolution', '',
'longitude_resolution 1', 'Data_Resolution Longitude_Resolution', '',
'!DS_ownertag 1', 'Project Short_Name', '',
'distribution_statement', 'Access_Constraints', '',
'institution', 'Originating_Center', '',
'', 'Data_Center Data_Center_Name Short_Name', 'met.no',
'', 'Data_Center Data_Center_Name Long_Name', 'Norwegian Meteorological Institute',
'', 'Data_Center Data_Center_URL', 'http://met.no/',
'', 'Data_Center Personnel Role', 'DATA CENTER CONTACT',
'', 'Data_Center Personnel First_Name', 'Egil',
'', 'Data_Center Personnel Last_Name', 'Støren',
'', 'Data_Center Personnel Phone', '+4722963000',
'', 'Data_Center Personnel Contact_Address Address', "Norwegian Meteorological Institute\nP.O. Box 43\nBlindern",
'', 'Data_Center Personnel Contact_Address City', 'Oslo',
'', 'Data_Center Personnel Contact_Address Postal_Code', 'N-0313',
'', 'Data_Center Personnel Contact_Address Country', 'Norway',
'references', 'Reference', '',
'abstract', 'Summary', '',
'', 'Metadata_Name', 'CEOS IDN DIF',
'', 'Metadata_Version', '9.7',
'!DS_datestamp', 'Last_DIF_Revision_Date', '',
'', 'Private', 'False',
);

In this array, triples of three consecutive elements (starting with elements 0, 1 and 2 on the first line) constitute the translation of one metadata item in the database to one XML element in the DIF.

Each triple comprise the following components:

Name of metadata type in the database (or an empty string)

Sequence of element names used in the DIF

Constant value

If these three components has, for example, the following contenet:

'institution', 'Data_Set_Citation Dataset_Publisher', '',

and “METNO Norwegian Meteorological Institute” is the value in the database found for the 'institution' metadata type, then the following text will be part of the DIF XML:

<DIF ...>
...
<Data_Set_Citation>
<Dataset_Publisher>METNO Norwegian Meteorological Institute</Dataset_Publisher>
</Data_Set_Citation>
...
</DIF>

This is the general rule, but some special rules apply:

If an '!' prepends the metadata type name, the name represents a field name in the Datasts table instead.

If the third component in the triple (the constant value) is non-empty, it is used as the value in the DIF XML. The first component will then usually be empty.

A number may follow the metadata type name. This indicate a spacial conversion of the metadata value in the database. This conversion is implemented in the get_exception.php routine.

If several consecutive triples have the same metadata type name, they will appear as consecutive elements in the DIF XML. When this is the case, different conversions of the metatdata value will take place (indicated by a number as explained above).

Several metadata values for the same metadata type and dataset, produce several DIF XML elements.

An asterix (*) prepending an element name in the sequence of element names will force the start of a new DIF XML element at this level. Othervise, a new element will, if possible, add to an already started higher level element.