Skip to content

Commit 5012700

Browse files
committed
In fixing tests, ensuring code is backwards compatible (as much as possible) for 040 and 041.
1 parent 616240b commit 5012700

1 file changed

Lines changed: 59 additions & 10 deletions

File tree

rules/02-010-048.xml

Lines changed: 59 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1126,6 +1126,51 @@
11261126
</xsl:for-each>
11271127
</transform>
11281128
</case>
1129+
<case test="count($vAdminMetadata/bf:descriptionModifier) &gt; 0">
1130+
<var name="vLastAgentUri">
1131+
<switch>
1132+
<case test="$vAdminMetadata/bf:descriptionModifier[count($vAdminMetadata/bf:descriptionModifier)]/@rdf:resource">
1133+
<transform>
1134+
<xsl:value-of select="$vAdminMetadata/bf:descriptionModifier[count($vAdminMetadata/bf:descriptionModifier)]/@rdf:resource"/>
1135+
</transform>
1136+
</case>
1137+
<case test="$vAdminMetadata/bf:descriptionModifier[count($vAdminMetadata/bf:descriptionModifier)]/*/@rdf:about">
1138+
<transform>
1139+
<xsl:value-of select="$vAdminMetadata/bf:descriptionModifier[count($vAdminMetadata/bf:descriptionModifier)]/*/@rdf:about"/>
1140+
</transform>
1141+
</case>
1142+
</switch>
1143+
</var>
1144+
<var name="vModifierCode">
1145+
<switch>
1146+
<case test="$vAdminMetadata/bf:descriptionModifier[count($vAdminMetadata/bf:descriptionModifier)]/*/*[local-name()='code']">
1147+
<transform>
1148+
<xsl:value-of select="$vAdminMetadata/bf:descriptionModifier[count($vAdminMetadata/bf:descriptionModifier)]/*/*[local-name()='code']"/>
1149+
</transform>
1150+
</case>
1151+
<case test="$vLastAgentUri != '' and contains($vLastAgentUri,'id.loc.gov')">
1152+
<transform>
1153+
<xsl:call-template name="tUriCode">
1154+
<xsl:with-param name="pUri" select="$vLastAgentUri"/>
1155+
</xsl:call-template>
1156+
</transform>
1157+
</case>
1158+
<case test="default">
1159+
<transform>
1160+
<xsl:value-of select="$vAdminMetadata/bf:descriptionModifier[count($vAdminMetadata/bf:descriptionModifier)]/*/*[local-name()='code']"/>
1161+
</transform>
1162+
</case>
1163+
</switch>
1164+
</var>
1165+
<switch>
1166+
<case test="$vModifierCode = 'dlc'">
1167+
<sf code="d"><transform><xsl:value-of select="translate($vModifierCode,$lower,$upper)"/></transform></sf>
1168+
</case>
1169+
<case test="$vModifierCode != ''">
1170+
<sf code="d"><transform><xsl:value-of select="$vModifierCode"/></transform></sf>
1171+
</case>
1172+
</switch>
1173+
</case>
11291174
</switch>
11301175
</df>
11311176
</case>
@@ -1136,7 +1181,7 @@
11361181
<var name="vAllLangElements" xpath="
11371182
bf:Work/bf:language/@rdf:resource[contains(., 'id.loc.gov/vocabulary/languages')] |
11381183
bf:Work/bf:language/bf:Language[not(bf:source) and not(bf:part)]//@rdf:about[contains(., 'id.loc.gov/vocabulary/languages')] |
1139-
bf:Work/bf:language/bf:Language[not(bf:source) and not(bf:part) and not(//@rdf:about)] |
1184+
bf:Work/bf:language/bf:Language[not(bf:source) and not(bf:part) and not(@rdf:about)] |
11401185
bf:Work/bf:language/bf:Language[not(bf:source) and bf:part] |
11411186
bf:Work/bf:accompaniedBy/bf:*[contains(rdf:type/@rdf:resource, 'id.loc.gov/vocabulary/resourceComponents')]/bf:language//@rdf:*[contains(., 'id.loc.gov/vocabulary/languages')][1] |
11421187
bf:Work/bf:note/bf:*[contains(rdf:type/@rdf:resource, 'id.loc.gov/vocabulary/resourceComponents')]/bf:language//@rdf:*[contains(., 'id.loc.gov/vocabulary/languages')][1]
@@ -1155,7 +1200,7 @@
11551200
<transform>
11561201
<xsl:variable name="vLangElements" select="bf:Work/bf:language/@rdf:resource[contains(., 'id.loc.gov/vocabulary/languages')] |
11571202
bf:Work/bf:language/bf:Language[not(bf:source) and not(bf:part)]//@rdf:about[contains(., 'id.loc.gov/vocabulary/languages')] |
1158-
bf:Work/bf:language/bf:Language[not(bf:source) and not(bf:part) and not(//@rdf:about)] |
1203+
bf:Work/bf:language/bf:Language[not(bf:source) and not(bf:part) and not(@rdf:about)] |
11591204
bf:Work/bf:language/bf:Language[not(bf:source) and bf:part]"/>
11601205
<xsl:variable name="vFirstLangCode">
11611206
<xsl:choose>
@@ -1258,7 +1303,9 @@
12581303
</case>
12591304
</switch>
12601305
</case>
1261-
<case test="bf:Work/bf:language//@rdf:*[not(contains(., 'id.loc.gov/vocabulary/languages'))] or bf:Work/bf:language/*/bf:source">
1306+
</switch>
1307+
<switch>
1308+
<case test="bf:Work/bf:language//@rdf:*[not(contains(., 'id.loc.gov/vocabulary/languages'))] or bf:Work/bf:language/*/bf:source">
12621309
<df tag="041">
12631310
<ind1 default=" ">
12641311
<switch>
@@ -1379,18 +1426,20 @@
13791426
</xsl:for-each>
13801427
</transform>
13811428

1429+
<var name="vSourceLang" xpath="bf:Work/bf:language/@rdf:resource[not(contains(., 'id.loc.gov/vocabulary/languages'))]|
1430+
bf:Work/bf:language/bf:Language[bf:source//@rdf:*[not(contains(., 'id.loc.gov/vocabulary/languages'))]]|
1431+
bf:Work/bf:language/bf:Language[bf:source]" />
13821432
<var name="vSourceUri">
13831433
<switch>
1384-
<case test="bf:source/@rdf:resource"><transform><xsl:value-of select="bf:source/@rdf:resource"/></transform></case>
1385-
<case test="bf:source/bf:Source/@rdf:about"><transform><xsl:value-of select="bf:source/bf:Source/@rdf:about"/></transform></case>
1434+
<case test="$vSourceLang[1]/bf:source/@rdf:resource"><transform><xsl:value-of select="$vSourceLang[1]/bf:source/@rdf:resource"/></transform></case>
1435+
<case test="$vSourceLang[1]/bf:source/bf:Source/@rdf:about"><transform><xsl:value-of select="$vSourceLang[1]/bf:source/bf:Source/@rdf:about"/></transform></case>
13861436
</switch>
13871437
</var>
13881438
<transform>
1389-
<xsl:if test="$vSourceUri!=''">
13901439
<marc:subfield code="2">
13911440
<xsl:choose>
1392-
<xsl:when test="bf:source/bf:Source/*[local-name()='code']">
1393-
<xsl:value-of select="bf:source/bf:Source/*[local-name()='code']"/>
1441+
<xsl:when test="$vSourceLang[1]/bf:source/bf:Source/*[local-name()='code']">
1442+
<xsl:value-of select="$vSourceLang[1]/bf:source/bf:Source/*[local-name()='code']"/>
13941443
</xsl:when>
13951444
<xsl:when test="$vSourceUri != ''">
13961445
<xsl:choose>
@@ -1404,12 +1453,12 @@
14041453
</xsl:when>
14051454
<xsl:otherwise>
14061455
<xsl:call-template name="tChopPunct">
1407-
<xsl:with-param name="pString" select="bf:source/bf:Source/rdfs:label"/>
1456+
<xsl:with-param name="pString" select="$vSourceLang[1]/bf:source/bf:Source/rdfs:label"/>
14081457
</xsl:call-template>
14091458
</xsl:otherwise>
14101459
</xsl:choose>
14111460
</marc:subfield>
1412-
</xsl:if>
1461+
14131462
</transform>
14141463

14151464
</df>

0 commit comments

Comments
 (0)