|
1126 | 1126 | </xsl:for-each> |
1127 | 1127 | </transform> |
1128 | 1128 | </case> |
| 1129 | + <case test="count($vAdminMetadata/bf:descriptionModifier) > 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> |
1129 | 1174 | </switch> |
1130 | 1175 | </df> |
1131 | 1176 | </case> |
|
1136 | 1181 | <var name="vAllLangElements" xpath=" |
1137 | 1182 | bf:Work/bf:language/@rdf:resource[contains(., 'id.loc.gov/vocabulary/languages')] | |
1138 | 1183 | 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)] | |
1140 | 1185 | bf:Work/bf:language/bf:Language[not(bf:source) and bf:part] | |
1141 | 1186 | 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] | |
1142 | 1187 | 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 | 1200 | <transform> |
1156 | 1201 | <xsl:variable name="vLangElements" select="bf:Work/bf:language/@rdf:resource[contains(., 'id.loc.gov/vocabulary/languages')] | |
1157 | 1202 | 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)] | |
1159 | 1204 | bf:Work/bf:language/bf:Language[not(bf:source) and bf:part]"/> |
1160 | 1205 | <xsl:variable name="vFirstLangCode"> |
1161 | 1206 | <xsl:choose> |
|
1258 | 1303 | </case> |
1259 | 1304 | </switch> |
1260 | 1305 | </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"> |
1262 | 1309 | <df tag="041"> |
1263 | 1310 | <ind1 default=" "> |
1264 | 1311 | <switch> |
|
1379 | 1426 | </xsl:for-each> |
1380 | 1427 | </transform> |
1381 | 1428 |
|
| 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]" /> |
1382 | 1432 | <var name="vSourceUri"> |
1383 | 1433 | <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> |
1386 | 1436 | </switch> |
1387 | 1437 | </var> |
1388 | 1438 | <transform> |
1389 | | - <xsl:if test="$vSourceUri!=''"> |
1390 | 1439 | <marc:subfield code="2"> |
1391 | 1440 | <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']"/> |
1394 | 1443 | </xsl:when> |
1395 | 1444 | <xsl:when test="$vSourceUri != ''"> |
1396 | 1445 | <xsl:choose> |
|
1404 | 1453 | </xsl:when> |
1405 | 1454 | <xsl:otherwise> |
1406 | 1455 | <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"/> |
1408 | 1457 | </xsl:call-template> |
1409 | 1458 | </xsl:otherwise> |
1410 | 1459 | </xsl:choose> |
1411 | 1460 | </marc:subfield> |
1412 | | - </xsl:if> |
| 1461 | + |
1413 | 1462 | </transform> |
1414 | 1463 |
|
1415 | 1464 | </df> |
|
0 commit comments