Hallo zusammen,
wer kann meinen xslt-Kenntnissen auf die Sprünge helfen?
Ich habe in meiner ruleset.xml den key extcat ("Externer Katalog") mit zwei
subfeldern:
<key id="extcat">
<label>External catalog</label>
<label lang="de">Externer Katalog</label>
<key id="extcat_name">
<label>Catalog / Database</label>
<label lang="de">Katalog / Datenbank / Verzeichnis</label>
<option value="gw"><label>Gesamtverzeichnis der
Wiegendrucke</label></option>
<option value="gwv"><label>Graupner
Werkverzeichnis</label></option>
<option value="istc"><label>ISTC (Incunabula Short Title
Catalog)</label></option>
<option
value="kalliope"><label>Kalliope</label></option>
<option
value="manumed"><label>Manumed</label></option>
<option value="vd16"><label>VD 16</label></option>
<option value="vd17"><label>VD 17</label></option>
<option value="vd18"><label>VD 18</label></option>
</key>
<key id="extcat_id">
<label>ID</label>
<label lang="de">ID</label>
</key>
</key>
Der key kann bis zu 3 mal vergeben werden:
<permit key="extcat" maxOccurs="3">
<permit key="extcat_name"
maxOccurs="1" />
<permit key="extcat_id"
maxOccurs="1" />
</permit>
Ich habe einen Vorgang angelegt und das Feld 3 x belegt im MD-Editor, siehe Screenshot.
In ruleset.xsl habe ich:
<xsl:variable name="extcatGroup"
select="kitodo:metadataGroup[@name='extcat']"/>
<xsl:variable name="extcat_id"
select="kitodo:metadataGroup[@name='extcat']/kitodo:metadata[@name='extcat_id']"/>
<xsl:variable name="extcat_name"
select="kitodo:metadataGroup[@name='extcat']/kitodo:metadata[@name='extcat_name']"/>
<xsl:if test="$extcatGroup">
<xsl:for-each
select="$extcat_id">
<mods:identifier>
<xsl:attribute
name="type">
<xsl:value-of
select="normalize-space($extcat_name)"/>
</xsl:attribute>
<xsl:value-of
select="normalize-space(.)"/>
</mods:identifier>
</xsl:for-each>
</xsl:if>
Leider schlägt der Export in METS noch fehl mit (kitodo.log):
[ERROR] 2021-04-20 09:33:41.094 [Vorgang exportieren: Mus-Ms-411-06] Helper - Writing Mets
file failed!: A sequence of more than one item is not allowed as the first argument of
fn:normalize-space() ("kalliope", "gwv")
Muss ich da noch einen counter einbauen, oder was mache ich da falsch ?
Danke und LG
.......................................
Roland Roth-Steiner
. Univ.- und Landesbibliothek, ITF&E
. Magdalenenstr. 8, 64289 Darmstadt
+49 (0)6151 16-76317
skype-name: live:daropoi
.......................................