ebXML : Transforming ISO19139 metadata to ebRIM
author: Heikki Doeleman
This page describes GeoNetwork's implementation of the transformation of ISO19139 metadata to ebRIM data. This is specified in OGC 07-038, section F.
Introduction
The specification in OGC 07-038 section F about how to register ISO metadata in a ebRIM registry is rather obscure. I will attempt to describe the process on this page. The implementation in GeoNetwork is in the form of an XSLT transformation. The input for this transformation is an ISO19139 metadata document; the output is a list of ebRIM RegistryObjects, of various types. The RegistryObjects created by this transformation receive unique IDs, but since these are not UUIDs (as they should be) the result of the transformation is post-processed in Java, where they are replaced by newly generated UUIDs.
A list of uncertainties about the interpretation of this specification is here.
The transformation of ISO19139 to ebRIM
The transformation takes the following actions :
a RegistryObjectList is created. It contains :
- an Extrinsic Object 'MetadataInformation'.
- an Extrinsic Object 'DataMetadata' or 'ServiceMetadata'. This depends on the presence of either gmd:MD_metadata/gmd:identificationInfo/gmd:MD_DataIdentification or gmd:MD_metadata/gmd:identificationInfo/gmd:MD_ServiceIdentification (in both cases 'DataMetadata' is created) or gmd:MD_metadata/gmd:identificationInfo/srv:SV_ServiceIdentification ('ServiceMetadata' is created).
The transformation does this for each gmd:identificationInfo; the caller of the transformation is supposed to check the 1..1 cardinality on that element imposed by the CIM profile in section F.3.1.
- if gmd:parentIdentifier is present, a second 'MetadataInformation' is created representing the parent.