From b04d46ed408dcef9d3cc363814a208b424fb8685 Mon Sep 17 00:00:00 2001
From: David Maus <maus@hab.de>
Date: Fri, 23 Mar 2018 11:20:11 +0100
Subject: [PATCH] Berechnung normalisierter @ID-Werte
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Verwende Präfix de.hab.diglib-mets-* für normalisierte @ID der Dateien
und der physischen Strukturen.
---
 src/xslt/mets.xsl | 19 +++++++++++++++++--
 1 file changed, 17 insertions(+), 2 deletions(-)

diff --git a/src/xslt/mets.xsl b/src/xslt/mets.xsl
index a156415..814cb31 100644
--- a/src/xslt/mets.xsl
+++ b/src/xslt/mets.xsl
@@ -52,7 +52,7 @@
                 <premis:eventIdentifierType>UUID</premis:eventIdentifierType>
                 <premis:eventIdentifierValue><xsl:value-of select="$eventCreateUUID"/></premis:eventIdentifierValue>
               </premis:eventIdentifier>
-              <premis:eventType valueURI="http://id.loc.gov/vocabulary/preservation/eventType/creation">creation</premis:eventType>
+              <premis:eventType valueURI="http://id.loc.gov/vocabulary/preservation/eventType/cre">creation</premis:eventType>
               <premis:eventDataTime><xsl:value-of select="/mets/metsHdr/@CREATEDATE"/></premis:eventDataTime>
               <premis:linkingAgentIdentifier>
                 <premis:linkingAgentIdentifierType>Name</premis:linkingAgentIdentifierType>
@@ -119,9 +119,24 @@
     <xsl:attribute name="xlink:href" select="concat('../', tokenize(., '/')[last()])"/>
   </xsl:template>
 
+  <xsl:function name="fun:normalize-physId" as="xs:string">
+    <xsl:param name="fileId" as="xs:string"/>
+    <xsl:value-of>
+      <xsl:text>de.hab.diglib-mets-phys.</xsl:text>
+      <xsl:value-of select="tokenize($fileId, '\.')[last()]"/>
+    </xsl:value-of>
+  </xsl:function>
+
   <xsl:function name="fun:normalize-fileId" as="xs:string">
     <xsl:param name="file" as="element(file)"/>
-    <xsl:value-of select="string-join( ('image', if ($file/../@USE) then lower-case($file/../@USE) else (), tokenize($file/FLocat/@xlink:href, '/')[last()]), '.')"/>
+    <xsl:value-of>
+      <xsl:text>de.hab.diglib-mets-file</xsl:text>
+      <xsl:if test="$file/../@USE">
+        <xsl:value-of select="concat('.', lower-case($file/../@USE))"/>
+      </xsl:if>
+      <xsl:text>.</xsl:text>
+      <xsl:value-of select="substring-before(tokenize($file/FLocat/@xlink:href, '/')[last()], '.')"/>
+    </xsl:value-of>
   </xsl:function>
 
 </xsl:transform>
-- 
GitLab