Locked History Actions

deegree3/WorkspaceConfiguration/MetadataStoreConfiguration

Metadata store configuration (workspace/datasources/metadata)

First ideas on the configuration concept for all types of datasources and datastores are described in the deegree3/DatastoreConfigurationConcepts.

1. Basics

  • Metadata store configurations are defined independant of the application using it.
  • Each metadata store configuration may be used by multiple deegree 3 applications.
  • Each metadata store configuration has its own configuration file.
  • Each configuration file contains exactly one metadata store configuration.
  • Metadata store configuration files are located in the datasources/metadata/ directory of the deegree workspace. See the workspace directory layout for details.

  • The name of the configuration file (without the file ending) determins the identifier for this metadata store configuration.
  • Configuration files need to refer to a specific schema version.

2. Schema location

The schemas for defining deegree 3 metadata store data sources may be found at http://schemas.deegree.org/datasource/metadata/. Each kind of metadata store has its own schema definition. It is mandatory to refer to a specific version of the schemas, as the schema may change over time.

3. Configuration details

3.1. ISO Metadata store

(formerly known as record store)

This <ISOMetadataStore> is a metadata store that is backed by a PostgreSQL/PostGIS database.

  • Current Version: 3.0.0 (valid since 2010-11-12)

Attributes for <ISOMetadataStore>

configVersion
mandatory
needs to match the version of the referenced schema.

Elements and their attributes for <ISOMetadataStore>

JDBCConnId
mandatory

value: the identifier (file base name) of the database connection as string
(see JDBC configuration)

Inspectors
optional

value: see below

AnyText
optional

value: see below

Elements and their attributes for <iso19115ns:Inspectors>

FileIdentifierInspector
optional
attribute: rejectEmpty
mandatory
possible values: true, false.
  • true = the metadata will be rejected if it has no fileIdentifier
    false = the metadata will be passed through no matter if it has a fileIdentifier or not.

InspireInspector
optional
attribute: generateMissingResourceIdentifier
mandatory
possible values: true, false.
  • true = the resourceIdentifier will be generated by the metadataStore
    false = if there is no resourceIdentifier available the metadata will be rejected to cope with INSPIRE

CoupledResourceInspector
optional
attribute: throwConsistencyError
mandatory
possible values: true, false.
  • true = the metadata will be rejected if there is no coupling with the service-metadata and its bounded data-metadata possible
    false = the metadata will be passed through no matter if there is a coupling possible or not

SchemaValidator
optional
validates the metadata against the schema

Elements and their attributes for <iso19115ns:AnyText>

All
optional

stores every value into the AnyText-element

Core
optional

stores the core queryable properties into the AnyText-element

Custom
optional

stores values into the AnyText-element that match against XPath-expressions.

3.1.1. ISO Examples

3.1.1.1. Very minimal example

Minimal example with conn1 as the JDBC connection, no Inspectors (so there are no restrictions concerning a metadata set). As a result of skipping the AnyText element the behaviour of the MetadataStore is the same as when using All.

<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 iso19115.xsd">

  <!-- [1] Identifier of JDBC connection -->
  <JDBCConnId>conn1</JDBCConnId>

</ISOMetadataStore>

3.1.1.2. Inspector example

Example with a JDBC connection and three activated Inspectors.

  • The metadata must have a fileIdentifier-element.

  • The metadata needs no resourceIdentifier -> if not provided in the data it will be generated automatically.

  • The MetadataStore will throw an exception, when inserting a service-metadata with elements that need data-metadata is attempted.

The Behaviour when skipping the AnyText element is the same as in the Very minimal example.

<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 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"/>

    <!-- [0..1] Checks the INSPIRE compliance -->
        <InspireInspector generateMissingResourceIdentifier="true"/>

    <!-- [0..1] Checks the coupling of service-metadata and data-metadata -->
        <CoupledResourceInspector throwConsistencyError="true" />
  </Inspectors>

</ISOMetadataStore>

3.1.1.3. Inspector example with AnyText

Example with a JDBC connection and with one activated Inspector.

  • The metadata must have a fileIdentifier-element.

The AnyText-element is set to Custom and there are two XPath-expressions that get the values from:

  • all the keywords found in the metadata AND
  • the individual name of the responsible party

and stores them into the AnyText-queryable property.

<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 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 -->
    <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>

4. Further workspace configuration

For other parts of the workspace configuration please consult the following pages:


CategoryDeegree3 CategoryWorkspaceConfiguration