[Kitodo] Komplexes Feld in mets exportieren [SOLVED]

Roth-Steiner, Roland roland.roth-steiner at tu-darmstadt.de
Do Apr 22 09:37:22 CEST 2021


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

_______________________________________________
Kitodo-Community mailing list
Kitodo-Community at kitodo.org
https://maillist.slub-dresden.de/cgi-bin/mailman/listinfo/kitodo-community


Mehr Informationen über die Mailingliste Kitodo