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

Version 1 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 Request at:


Please read this before

Please note that in DSpace 7, as far as know 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 yet a metadata holding such information and you plan to add this information it could make sense to use the same schema (to use the same approach of DSpace 7, as the Entities 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 please run “registry-loader” script to create it in the database. Example (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 example above if you want to expose “dc.contributor.distributor” adding 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 have 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 should be “Distributor”.

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




How enable and mapping controlled vocabulary

To expose custom metadata holding controlled subject such ad 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 show the actual 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 follow.




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 exist 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) Actually 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 follow 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-


  • No labels