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
.......................................
Show replies by date
Hallo zusammen,
ich antworte mir gleich mal selbst mit dem passenden xsl-Schnipsel:
<xsl:if test="$extcatGroup">
<xsl:for-each select="$extcatGroup">
<mods:identifier>
<xsl:attribute name="type">
<xsl:value-of
select="kitodo:metadata[@name='extcat_name']"/>
</xsl:attribute>
<xsl:value-of
select="kitodo:metadata[@name='extcat_id']"/>
</mods:identifier>
</xsl:for-each>
</xsl:if>
LG
.......................................
Roland Roth-Steiner
. Univ.- und Landesbibliothek, ITF&E
. Magdalenenstr. 8, 64289 Darmstadt
+49 (0)6151 16-76317
skype-name: live:daropoi
.......................................
________________________________________
Von: Roth-Steiner, Roland
Gesendet: Dienstag, 20. April 2021 11:38
An: kitodo-community(a)kitodo.org
Betreff: Komplexes Feld in mets exportieren
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
.......................................