我正在尝试建立一个包含两个集合的DSpace社区。集合1包含使用提交功能手动上传到DSpace的会议论文。集合2仅包含通过OAI-PMH从OJS站点收集的期刊论文的元数据。我希望能够一起浏览和搜索所有会议和期刊论文。但是,与收获的期刊论文的元数据字段相比,分配给手动上载的会议论文的元数据字段中存在一些差异。例如,期刊论文在“ dc.description”字段中包含摘要,由于“摘要”需要将摘要存储在“ dc.description.abstract”中,因此该字段不会在Mirage2主题中显示。同样,Mirage2主题希望将日期存储在“ dc.date.issued”中,而日记纸在“ dc.date”字段中包含发布日期。有什么方法可以指示DSpace将一个元数据字段映射到另一个元数据字段来解决此问题?
我尝试编辑[dspace] /webapps/xmlui/themes/Mirage2/xsl/aspect/artifactbrowser/item-view.xsl文件,以使DSpace查找“ dc.date”或“ dc.date”显示发布日期时显示“ .issued”字段,但这不能解决诸如仅基于“ dc.date.issued”过滤发现功能之类的问题。我在想必须对此有一个更直接的解决方案。
这是我对itemSummaryView-DIM-date模板进行修改的示例
<xsl:template name="itemSummaryView-DIM-date">
<xsl:if test="dim:field[@element='date' and @qualifier='issued' and descendant::text()]">
<div class="simple-item-view-date word-break item-page-field-wrapper table">
<h5>
<b><i18n:text>xmlui.dri2xhtml.METS-1.0.item-date</i18n:text></b>
</h5>
<xsl:for-each select="dim:field[@element='date' and @qualifier='issued']">
<xsl:copy-of select="substring(./node(),1,10)"/>
<xsl:if test="count(following-sibling::dim:field[@element='date' and @qualifier='issued']) != 0">
<br/>
</xsl:if>
</xsl:for-each>
</div>
</xsl:if>
<xsl:if test="dim:field[@element='date' and not(@qualifier) and descendant::text()]">
<div class="simple-item-view-date word-break item-page-field-wrapper table">
<h5>
<b><i18n:text>xmlui.dri2xhtml.METS-1.0.item-date</i18n:text></b>
</h5>
<xsl:for-each select="dim:field[@element='date' and not(@qualifier)]">
<xsl:copy-of select="substring(./node(),1,10)"/>
<xsl:if test="count(following-sibling::dim:field[@element='date' and not(@qualifier)]) != 0">
<br/>
</xsl:if>
</xsl:for-each>
</div>
</xsl:if>
</xsl:template>
我对itemSummaryView-DIM-abstract和itemSummaryView-DIM-URI模板进行了类似的编辑,但是我认为应该对此有一个更优雅的解决方案。