Skip to content

Commit 2fac4a5

Browse files
MENDELU/Update OAI-PMH to fix CitacePRO composing (#1312)
* The page information is exposed in the oai_dc `<dc:identifier>. Also the conferenceObject has a different format * Enhanced a condition to check the dc.format does not have an empty value * Do not normalize data
1 parent c354b44 commit 2fac4a5

1 file changed

Lines changed: 17 additions & 6 deletions

File tree

  • dspace/config/crosswalks/oai/metadataFormats

dspace/config/crosswalks/oai/metadataFormats/oai_dc.xsl

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -118,15 +118,26 @@
118118
<!-- dc.identifier - formatted with additional metadata -->
119119
<xsl:if test="doc:metadata/doc:element[@name='dc']/doc:element[@name='date']/doc:element[@name='issued']/doc:element/doc:field[@name='value'] or doc:metadata/doc:element[@name='local']/doc:element[@name='volume']/doc:element/doc:field[@name='value'] or doc:metadata/doc:element[@name='local']/doc:element[@name='number']/doc:element/doc:field[@name='value']">
120120
<dc:identifier>
121+
<xsl:variable name="isConferenceObject" select="doc:metadata/doc:element[@name='dc']/doc:element[@name='type']/doc:element/doc:field[@name='value'][normalize-space(.)='conferenceObject']" />
122+
<xsl:variable name="isBookPart" select="doc:metadata/doc:element[@name='dc']/doc:element[@name='type']/doc:element/doc:field[@name='value'][normalize-space(.)='bookPart']" />
123+
<xsl:variable name="formatValue" select="doc:metadata/doc:element[@name='dc']/doc:element[@name='format']/doc:element/doc:field[@name='value'][1]" />
121124
<xsl:value-of select="doc:metadata/doc:element[@name='dc']/doc:element[@name='relation']/doc:element[@name='ispartof']/doc:element/doc:field[@name='value']" />
122125
<xsl:text>. </xsl:text>
123126
<xsl:value-of select="doc:metadata/doc:element[@name='dc']/doc:element[@name='date']/doc:element[@name='issued']/doc:element/doc:field[@name='value']" />
124-
<xsl:text>, vol. </xsl:text>
125-
<xsl:value-of select="doc:metadata/doc:element[@name='local']/doc:element[@name='volume']/doc:element/doc:field[@name='value']" />
126-
<xsl:text>, č. </xsl:text>
127-
<xsl:value-of select="doc:metadata/doc:element[@name='local']/doc:element[@name='number']/doc:element/doc:field[@name='value']" />
128-
<!-- We do not have any information about pages, so it is `s. 0` by default -->
129-
<xsl:text>, s. 0.</xsl:text>
127+
<xsl:if test="not($isConferenceObject or $isBookPart)">
128+
<xsl:text>, vol. </xsl:text>
129+
<xsl:value-of select="doc:metadata/doc:element[@name='local']/doc:element[@name='volume']/doc:element/doc:field[@name='value']" />
130+
<xsl:text>, č. </xsl:text>
131+
<xsl:value-of select="doc:metadata/doc:element[@name='local']/doc:element[@name='number']/doc:element/doc:field[@name='value']" />
132+
</xsl:if>
133+
<xsl:text>, s. </xsl:text>
134+
<xsl:choose>
135+
<xsl:when test="$formatValue != ''">
136+
<xsl:value-of select="$formatValue" />
137+
</xsl:when>
138+
<xsl:otherwise>0</xsl:otherwise>
139+
</xsl:choose>
140+
<xsl:text>.</xsl:text>
130141
</dc:identifier>
131142
</xsl:if>
132143
<!-- dc.identifier.* -->

0 commit comments

Comments
 (0)