Metadata stores are data stores that provide access to metadata records. The two common use cases for metadata stores are:
The remainder of this chapter describes some relevant terms and the metadata store configuration files in detail. You can access this configuration level by clicking on the metadata stores link in the administration console. The configuration files are located in the datasources/metadata/ directory of the deegree workspace.
The memory ISO metadata store implementation is transactional and works file based.
The memory metadata store configuration is defined by schema file http://schemas.deegree.org/datasource/metadata/iso19139/3.2.0/memory.xsd
Memory ISO Metadatastore config (skeleton)
<ISOMemoryMetadataStore
xmlns="http://www.deegree.org/datasource/metadata/iso19139/memory"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.deegree.org/datasource/metadata/iso19139/memory
memory.xsd"
configVersion="3.2.0">
<!-- [1...n] directory to be used -->
<ISORecordDirectory>..</ISORecordDirectory>
<!-- [0...1] directory to be used to insert records -->
<InsertDirectory>..</InsertDirectory>
</ISOMemoryMetadataStore>
The root element has to be ISOMemoryMetadataStore and the config attribute must be 3.2.0. The only mandatory element is:
To allow insert transactions one optional element must be declared:
The SQL ISO metadata store implementation currently supports the following backends:
Tip
If you want to use the SQL ISO metadata store with Oracle or Microsoft SQL Server, you will need to add additional modules first. This is described in Adding database modules.
The SQL metadata store configuration is defined by schema file http://schemas.deegree.org/datasource/metadata/iso19115/3.2.0/iso19115.xsd
SQL ISO Metadatastore config (skeleton)
<?xml version="1.0" encoding="UTF-8"?>
<ISOMetadataStore
configVersion="3.0.0"
xmlns="http://www.deegree.org/datasource/metadata/iso19115"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.deegree.org/datasource/metadata/iso19115
http://schemas.deegree.org/datasource/metadata/iso19115/3.0.0/iso19115.xsd">
<!-- [1] Identifier of JDBC connection -->
<JDBCConnId>conn1</JDBCConnId>
<!-- [0..1] Definition of the Inspectors for checking the metadata for insert
or update transaction -->
<Inspectors>
<!-- [0..1] Checks the fileIdentifier -->
<FileIdentifierInspector rejectEmpty="true"/>
</Inspectors>
<!-- [0..1] Specifies the content of the queryable property 'anyText' -->
<AnyText>
<!-- [0..1] Set of XPath-expression (remove line breaks in xpaths!) -->
<Custom>
<XPath>/gmd:MD_Metadata/gmd:identificationInfo/
gmd:MD_DataIdentification/gmd:descriptiveKeywords/gmd:MD_Keywords/
gmd:keyword/gco:CharacterString</XPath>
<XPath>/gmd:MD_Metadata/gmd:contact/gmd:CI_ResponsibleParty/
gmd:individualName/gco:CharacterString</XPath>
</Custom>
</AnyText>
</ISOMetadataStore>
The root element has to be ISOMetadataStore and the config attribute must be 3.2.0. The only mandatory element is:
The optional elements are:
Inspectors: List of inspectors inspecting a metadataset before inserting. Known inspectors are:
AnyText: Configuration of the values searchable by the queryable property AnyText, possible values are:
QueryableProperties: Configuration of additional query properties. Detailed informations can be found in the following example:
... <QueryableProperties> <!-- can contain multiple elements 'QueryableProperty' --> <!-- set attribute isMultiple="true" if the xpath links to a property which can occur multiple times--> <QueryableProperty isMultiple="true"> <!-- configures the xpath to the element which shoud be queryable (remove line breaks in xpaths!)--> <xpath>//gmd:MD_Metadata/gmd:identificationInfo/ gmd:MD_DataIdentification/gmd:spatialRepresentationType/ gmd:MD_SpatialRepresentationTypeCode/@codeListValue</xpath> <!-- namespace and name to use in a filter expression, e.g <ogc:PropertyName xmlns:apiso="http://www.opengis.net/cat/csw/apiso/1.0"> apiso:SpatialRepresentationType</ogc:PropertyName> --> <name namespace="http://www.opengis.net/cat/csw/apiso/1.0"> SpatialRepresentationType</name> <!-- Name of the column in the table idxt_main where the valus of a record should be stored, must be added manually --> <column>spatialRepType</column> </QueryableProperty> </QueryableProperties> ...
Hint
If a new queryable property is added or the AnyText value changed the inserted metadata records are not adjusted to this changes! This means for the example above that an existing record with SpatialRepresentationType ‘raster’ is not found by searching for all records with this type until the record is inserted or updated again!
TBD