2017-01-31 3 views
3

Ich möchte zusätzliche Metadaten über OAI-PMH in meiner DSpace-Instanz verfügbar machen. Ich habe ein neues Metadatenschema "lrmi" hinzugefügt und einige Metadatenfelder hinzugefügt. Durch die Eingabeformulare konnte ich die Felder in meinem lrmi-Schema verwenden. Allerdings scheint es mir nicht möglich, diese Felder in der DSpace OAI-PMH-Schnittstelle verfügbar zu machen, da nur Felder aus dem DC-Schema verfügbar gemacht werden. Wie können benutzerdefinierte Felder aus einem neuen Schema in der OAI-PMH-Schnittstelle verfügbar gemacht werden? Das gleiche Problem tritt auch beim "IEEE-LOM" Schema auf. Ich denke, die Frage hat genug Relevanz für dieses Forum, aber nicht sicher, warum das von einem meiner früheren Beiträge geschlossen wurde.DSpace OAI-PMH Metadatenexport ernten

+0

Ich bin froh, dass Sie die Frage erneut gestellt haben. Aus der DSpace-Perspektive ist dies eine angemessene Frage. – terrywb

+0

Ich habe mir mein OAI-Repository angesehen und bestätigt, dass mein benutzerdefiniertes Metadatenschema vorhanden ist. Haben Sie einen benutzerdefinierten XSLT-Zebrastreifen erstellt, der versucht, auf diese Felder zuzugreifen? – terrywb

+0

Während Sie auf eine umfassendere Antwort von jemandem mit einem tieferen Wissen über dieses Thema als ich warten, können Sie sich diese Dateien ansehen: https://github.com/DSpace/Dspace/tree/master/dspace/config/crosswalks/oai/metadataFormats. Soweit ich weiß, enthalten sie die XLS-Transformation, die Ihre OAI-Ausgabe für jedes mögliche Präfix definiert. –

Antwort

1

Ich war neugierig auf Ihre Frage, machte ein paar weitere Untersuchungen und Tests. Stellt sich heraus, dass die Bearbeitung those files Ich erwähnte in einem früheren Kommentar wird tatsächlich tun, was Sie erreichen wollen.

Wenn Sie benutzerdefinierte Felder unter dc Schema

Sie müssen einfach hinzufügen, in der XSL, Blöcke ähnlich denen, die verfügbar machen möchten, die bereits vorhanden sind. Z.B. Sie wollen den Inhalt Ihrer custom.test Feld in dc belichten: Beschreibung, können Sie hinzufügen:

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

Wenn Sie benutzerdefinierte Felder unter benutzerdefinierten Schema

Sie tun können, genau das gleiche machen möchten , aber indem Sie den Tag dc: description durch Ihr benutzerdefiniertes Schema ersetzen: element.

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

dann

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

Hinweis: Sie werden feststellen, dass benutzerdefiniertes Schema in der Haupt <oai_dc:dc> Tag unter xmlns erklären müssen, obwohl dies aus technischen Sicht funktioniert, könnte es jedoch in Konflikt mit einigen funktionalen Empfehlungen/Best Practices für Unternehmen.