Contribute to the DSpace Development Fund

The newly established DSpace Development Fund supports the development of new features prioritized by DSpace Governance. For a list of planned features see the fund wiki page.

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

OpenAIRE Literature v.4 compliance for DSpace 5.x and DSpace 6.x

Jira issue Unable to locate Jira server for this macro. It may be due to Application Link configuration. and related Pull Requests at:


Please read this before

Please note that in DSpace 7, as far as known at the current stage of development, an OpenAIRE oaire schema will be introduced, see: https://github.com/DSpace/DSpace/blob/master/dspace/config/crosswalks/oai/metadataFormats/oai_openaire.xsl and https://github.com/DSpace/DSpace/blob/master/dspace/config/registries/openaire4-types.xml
If you don't have a metadata field yet holding such information and you plan to add it, it could make sense to use the same schema (to use the same approach as in DSpace 7, in the Entities project a new local “project” schema will be introduced – [dspace-install]/config/registries/project-types.xml). Please to use the new schemas (“oaire” and “project”) during installation, then run the registry-loader” script to create it in the database. Examples (from the [dspace-install]/bin folder):

> ./dspace registry-loader -metadata [dspace-install]/config/registries/project-types.xml

> ./dspace registry-loader -metadata [dspace-install]/config/registries/openaire4-types.xml

How to expose different metadata under dc.contributor.*

To expose more metadata you need to modify the “oai_openaire.xsl” in ([dspace-installation-folder]/config/crosswalks/oai/metadataFormats).

Below an example of </datacite:contributors> managed in the mentioned file:



Starting at line 98 you have a for-each statement that will provide select element to iterate the “dc.contributor.*” needed to build the </datacite:contributors> element.


Step by step

Starting from the examples above if you want to expose “dc.contributor.distributor” add a new for-each statement and “select” the needed metadata: doc:metadata/doc:element[@name='dc']/doc:element[@name='contributor']/doc:element[@name='distributor']/doc:field[@name=’value’]

Modify also line matching the attribute “contributorType” that has to correspond the OpenAIRE Guidelines v4(https://openaire-guidelines-for-literature-repository-managers.readthedocs.io/en/v4.0.0/field_contributor.html#attribute-contributortype-m); in this case it should be “Distributor”.

Now you need to exclude this metadata from “Other” category. Inside datacite:contributors element the first element datacite:contributor manages the “contributorType=Other”. This statement contains a rule to prevent the writing of author or editor into the other category, the statement should be like the following rule: [@name!=’author’ and @name!=’editor’]. To manage also “Distributor” you have to modify this exception adding your metadata, adding this: [@name!=’author’ and @name!=’editor’ and @name!=’distributor’]. The complete example follows:




How to enable and map controlled vocabulary

To expose custom metadata holding controlled subjects such as DDC you need to enable the controlled vocabulary. First, to configure you need to follow the DSpace documentation ( https://wiki.lyrasis.org/display/DSDOC5x/Authority+Control+of+Metadata+Values#AuthorityControlofMetadataValues-HierarchicalTaxonomiesandControlledVocabularies )

The screenshot below is a piece of code in oai_openaire.xsl ([dspace-installation-folder]/config/crosswalks/oai/metadataFormats) and it shows the current situation.



to expose the controlled vocabulary managed by “dc.subject.ddc” metadata as <datacite:subject> (as Guidelines want) you need to modify this code as follows:




In the above example we added the relative template (line 333 to 347) to expose the DDC. Note that we need to exclude the dc.subject.ddc from the standard <datacite:subject> mapping (see the difference between line 323 in both screenshot).

How to configure custom metadata / How to add a new metadata

Example: How to add a new metadata “dc.relation.ispartof” on OpenAIRE v.4 field “Citation Title”.

1) Check if the metadata exists in the metadata registry (table “metadatafieldregistry” or in the administrative section “<dspace-host>/dspace-admin/metadata-schema-registry”, see https://wiki.lyrasis.org/display/DSDOC5x/Metadata+and+Bitstream+Format+Registries).

2) To add this field in submission step you need to configure it in the input form file (“<dspace-install>/dspace/config/input-forms.xml” ) like this:

Configure metadata in the input form as you like (please refers the official DSpace documentation https://wiki.lyrasis.org/display/DSPACE/Alter+submission+input+forms).

3) Currently the “citationTitle” element is mapped by the “dc.relation.ispartofseries” (see [dspace-installation]/config/crosswalks/oai/metadataFormats/oai_openaire.xsl ). Please use “xsl” rules (https://www.w3.org/TR/xslt-10/) and the OpenAIRE Guidelines to write the correct implementation for the new “dc.relation.ispartof” metadata as you can see in the following example:

Note that if you want Citation Title and Citation Volume elements as reported in the documentation:

Citation Title → from the dc.relation.ispartofseries with instructions to configure a custom metadata holding the Journal Title if available
Citation Volume → from the dc.relation.ispartofseries;

the field ”dc.relation.ispartofseries” into the  [dspace-installation]/config/input-forms.xml has to be configured with “series” input-type. 



  • No labels