btingle avatar btingle committed 7e7abfb

merging AT to MOAC dao style xslt into main xslt

Comments (0)

Files changed (3)

   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:ead="urn:isbn:1-931666-22-9"
+  xmlns:xlink="http://www.w3.org/1999/xlink"
   xmlns="urn:isbn:1-931666-22-9">
 
 <!-- set strip-namespace to anything other than yes to
   </xsl:choose>
 </xsl:variable>
 
+<xsl:variable name="xlink-namespace">
+  <xsl:choose>
+    <xsl:when test="$strip-namespace = 'yes'"/>
+    <xsl:otherwise>
+      <xsl:text>http://www.w3.org/1999/xlink</xsl:text>
+    </xsl:otherwise>
+  </xsl:choose>
+</xsl:variable>
+
 <!-- root template -->
 <xsl:template match="/|comment()|processing-instruction()">
     <xsl:copy>
 </xsl:template>
 
 <!-- copy overloaded container labels to sibling physdesc -->
+<!-- TODO: specifically target AT @label values? -->
 <xsl:template match="ead:container[@label]">
   <xsl:element name="{name()}" namespace="{$namespace}">
     <xsl:apply-templates select="@*[name()!='label'] | node() "/>
   </xsl:if>
 </xsl:template>
 
+<!-- dao from AT style to MOAC style -->
+<xsl:template match="ead:dao[not(parent::ead:did) and not(parent::ead:archdesc)]">
+  <xsl:variable name="plusone">
+    <xsl:value-of select="number(substring(name(..),2,2))+1"/>
+  </xsl:variable>
+  <xsl:variable name="cD">
+    <xsl:choose>
+      <xsl:when test="$plusone &lt; 10">
+        <xsl:text>c0</xsl:text>
+      </xsl:when>
+      <xsl:otherwise>
+        <xsl:text>c1</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:variable>
+  <!-- c0x -->
+  <xsl:element name="{$cD}{number($plusone) mod 10}" namespace="{$namespace}">
+    <!-- did -->
+    <xsl:element name="did" namespace="{$namespace}">
+      <!-- unititle -->
+      <xsl:element namespace="{$namespace}" name="unittitle">
+        <xsl:value-of select="ead:daodesc/ead:p"/>
+      </xsl:element>
+      <!-- dao -->
+      <xsl:element namespace="{$namespace}" name="dao">
+        <xsl:attribute name="href" namespace="{$xlink-namespace}">
+          <xsl:value-of select="@xlink:href"/>
+        </xsl:attribute>
+      </xsl:element>
+    </xsl:element>
+  </xsl:element>
+</xsl:template>
+
 <!-- modified identity templates -->
 
 <xsl:template match="*">

dao-test.xml

-<c08>
-  <did>HEY</did>
-  <dao href="http://example.org/"><daodesc><p>YOU</p></daodesc></dao>
-  <c09>
-    <did>HEY</did>
-    <dao href="http://example.org/"><daodesc><p>YOU</p></daodesc></dao>
-    <dao href="http://example.org/"><daodesc><p>YOU</p></daodesc></dao>
-    <dao href="http://example.org/"><daodesc><p>YOU</p></daodesc></dao>
-    <dao href="http://example.org/"><daodesc><p>YOU</p></daodesc></dao>
-    <c10>
-      <did>HEY</did>
-      <dao href="http://example.org/"><daodesc><p>YOU</p></daodesc></dao>
-      <dao href="http://example.org/"><daodesc><p>YOU</p></daodesc></dao>
-      <dao href="http://example.org/"><daodesc><p>YOU</p></daodesc></dao>
-      <dao href="http://example.org/"><daodesc><p>YOU</p></daodesc></dao>
-      <dao href="http://example.org/"><daodesc><p>YOU</p></daodesc></dao>
-    </c10>
-  </c09>
-</c08>

dao.xsl

-<xsl:stylesheet
-  version="1.0" 
-  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-
-  <!-- root template -->
-  <xsl:template match="/|comment()|processing-instruction()">
-    <xsl:copy>
-      <xsl:apply-templates/>
-    </xsl:copy>
-  </xsl:template>
-
-  <xsl:template match="dao[not(parent::did) and not(parent::archdesc)]">
-    <xsl:variable name="plusone">
-      <xsl:value-of select="number(substring(name(..),2,2))+1"/>
-    </xsl:variable>
-    <xsl:variable name="cD">
-      <xsl:choose>
-        <xsl:when test="$plusone &lt; 10">
-          <xsl:text>c0</xsl:text>
-        </xsl:when>
-        <xsl:otherwise>
-          <xsl:text>c1</xsl:text>
-        </xsl:otherwise>
-      </xsl:choose>
-    </xsl:variable>
-    <!-- xsl:element name="{ if ( $pluseone &lt; 10 ) then ('c0') else ('c1')}{$plusone}" -->
-    <xsl:element name="{$cD}{number($plusone) mod 10}">
-      <did>
-        <unittitle><xsl:value-of select="daodesc/p"/></unittitle>
-        <dao href="{@href}"/>
-      </did>
-    </xsl:element>
-  </xsl:template>
-
-  <!-- identity -->
-  <xsl:template match="node()|@*">
-    <xsl:copy>
-    <xsl:apply-templates select="@*"/>
-    <xsl:apply-templates/>
-    </xsl:copy>
-  </xsl:template>
-
-</xsl:stylesheet>
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.