3

我希望在我的 DSpace 实例中通过 OAI-PMH 公开其他元数据。我添加了一个新的元数据模式“lrmi”,还添加了一些元数据字段。通过提交表单,我已经能够使用我的 lrmi 模式中的字段。但是,我似乎无法在 DSpace OAI-PMH 接口中公开这些字段,因为它只公开 dc 模式中的字段。如何在 OAI-PMH 界面中公开来自新模式的自定义字段?“IEEE-LOM”模式也会出现同样的问题。我认为这个问题与这个论坛有足够的相关性,但不知道为什么这个问题从我之前的一篇文章中被关闭。

4

1 回答 1

1

我对你的问题很好奇,做了一些更多的研究和测试。事实证明,编辑我在之前的评论中提到的那些文件确实可以实现您想要实现的目标。

如果要在 dc 模式下公开自定义字段

您只需在 XSL 中添加与已经存在的块类似的块。例如,您想将 custom.test 字段的内容公开到 dc:description 中,您可以添加:

<xsl:for-each select="doc:metadata/doc:element[@name='custom']/doc:element[@name='test']/doc:element/doc:field[@name='value']">
    <dc:description><xsl:value-of select="." /></dc:description>
</xsl:for-each>

如果要在自定义架构下公开自定义字段

你可以做同样的事情,但是用你的自定义 schema:element 替换 dc:description 标签。您需要在以下主<oai_dc:dc>标记中声明该自定义架构xmlns

<oai_dc:dc xmlns:oai_dc="http://www.openarchives.org/OAI/2.0/oai_dc/" 
    xmlns:dc="http://purl.org/dc/elements/1.1/" 
    xmlns:custom="SOME_URL" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://www.openarchives.org/OAI/2.0/oai_dc/ http://www.openarchives.org/OAI/2.0/oai_dc.xsd">

然后

<xsl:for-each select="doc:metadata/doc:element[@name='custom']/doc:element[@name='test']/doc:element/doc:field[@name='value']">
                <custom:test><xsl:value-of select="." /></custom:test>
        </xsl:for-each>
</oai_dc:dc>

注意:虽然这从技术角度来看是可行的,但它可能与某些功能建议/业务最佳实践相冲突。

于 2017-02-01T16:35:33.330 回答