diff --git a/tmp/PPN-457035137_2020-02-25_11-24-48/bag-info.txt b/tmp/PPN-457035137_2020-02-25_11-24-48/bag-info.txt deleted file mode 100644 index 9fee53358d8fe0dc1475bb2ce7ce3e2555779994..0000000000000000000000000000000000000000 --- a/tmp/PPN-457035137_2020-02-25_11-24-48/bag-info.txt +++ /dev/null @@ -1,12 +0,0 @@ -SLUBArchiv-sipVersion: v2020.1 -SLUBArchiv-externalWorkflow: kitodo -SLUBArchiv-externalId: 10008 -SLUBArchiv-externalIsilId: DE-14 -SLUBArchiv-exportToArchiveDate: 2020-02-25T11:24:48 -SLUBArchiv-hasConservationReason: false -SLUBArchiv-archivalValueDescription: Gesetzlicher Auftrag -SLUBArchiv-rightsVersion: 1.0 -Bagging-Date: 2020-02-25 -Bag-Software-Agent: Archive::BagIt <https://metacpan.org/pod/Archive::BagIt> -Payload-Oxum: 2368584.3 -Bag-Size: 2.3 MB diff --git a/tmp/PPN-457035137_2020-02-25_11-24-48/bagit.txt b/tmp/PPN-457035137_2020-02-25_11-24-48/bagit.txt deleted file mode 100644 index 33835cda70940cd823354cea5a1776c925221934..0000000000000000000000000000000000000000 --- a/tmp/PPN-457035137_2020-02-25_11-24-48/bagit.txt +++ /dev/null @@ -1,2 +0,0 @@ -BagIt-Version: 1.0 -Tag-File-Character-Encoding: UTF-8 \ No newline at end of file diff --git a/tmp/PPN-457035137_2020-02-25_11-24-48/data/scans_tif/00000001.tif b/tmp/PPN-457035137_2020-02-25_11-24-48/data/scans_tif/00000001.tif deleted file mode 100644 index 53ff885628eac6799fed0d9729f80c009eee8b3d..0000000000000000000000000000000000000000 Binary files a/tmp/PPN-457035137_2020-02-25_11-24-48/data/scans_tif/00000001.tif and /dev/null differ diff --git a/tmp/PPN-457035137_2020-02-25_11-24-48/data/scans_tif/00000002.tif b/tmp/PPN-457035137_2020-02-25_11-24-48/data/scans_tif/00000002.tif deleted file mode 100644 index b25d4e6c3f41f5a0dac1acd0c7bc8ed476c40820..0000000000000000000000000000000000000000 Binary files a/tmp/PPN-457035137_2020-02-25_11-24-48/data/scans_tif/00000002.tif and /dev/null differ diff --git a/tmp/PPN-457035137_2020-02-25_11-24-48/data/test.txt b/tmp/PPN-457035137_2020-02-25_11-24-48/data/test.txt deleted file mode 100644 index 1897e90346c2a60226554696f6b39c665ea9b589..0000000000000000000000000000000000000000 --- a/tmp/PPN-457035137_2020-02-25_11-24-48/data/test.txt +++ /dev/null @@ -1 +0,0 @@ -test file for payload. diff --git a/tmp/PPN-457035137_2020-02-25_11-24-48/manifest-md5.txt b/tmp/PPN-457035137_2020-02-25_11-24-48/manifest-md5.txt deleted file mode 100644 index 323dd28790bef5cfd8d8116617b2c8d1d4c71221..0000000000000000000000000000000000000000 --- a/tmp/PPN-457035137_2020-02-25_11-24-48/manifest-md5.txt +++ /dev/null @@ -1,3 +0,0 @@ -55ccc1b630cc66150487a047b5a7b39a data/test.txt -de5dd1e1699302aeb8d24784052a5944 data/scans_tif/00000002.tif -622d089a3fb914d8311f0e4fe30cab2f data/scans_tif/00000001.tif diff --git a/tmp/PPN-457035137_2020-02-25_11-24-48/manifest-sha512.txt b/tmp/PPN-457035137_2020-02-25_11-24-48/manifest-sha512.txt deleted file mode 100644 index ccb0bae26921ccbb6c3e99c48598de856a1d33b5..0000000000000000000000000000000000000000 --- a/tmp/PPN-457035137_2020-02-25_11-24-48/manifest-sha512.txt +++ /dev/null @@ -1,3 +0,0 @@ -b1944d6dac6be6c56eedb453b8b3d6c12f2c213e2d179d244dbbe9ffa00dfdc858f3429a4529eee85b86a228d16448657d6e3c7e534fa8d57bcfb31269fc43cf data/test.txt -eb2a08499b77c6d4a0590ac7736309e1ffc50d1eed33954ff913dd6e7feda87093eea15ce4c5ecef568896c5fa25aedb315fcf69c684fcabc46c1210fe594a47 data/scans_tif/00000002.tif -fe0349a065f7e04b7445d318b05021450a114617924e9cba05b99c4e665912b05881a1ad89a9639832c6fd0317babd94d14799e33756d46e6164742e2bbe36ce data/scans_tif/00000001.tif diff --git a/tmp/PPN-457035137_2020-02-25_11-24-48/meta/mods.xml b/tmp/PPN-457035137_2020-02-25_11-24-48/meta/mods.xml deleted file mode 100644 index 444f8c53abe7c3af7ffe0837a4927307a0de9882..0000000000000000000000000000000000000000 --- a/tmp/PPN-457035137_2020-02-25_11-24-48/meta/mods.xml +++ /dev/null @@ -1,70 +0,0 @@ -<!-- removed xml header from mods part --> -<mods xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.loc.gov/mods/v3" version="3.6" xsi:schemaLocation="http://www.loc.gov/mods/v3 http://www.loc.gov/standards/mods/v3/mods-3-6.xsd"> - <titleInfo> - <nonSort xml:space="preserve">Der </nonSort> - <title>Fichtelberg</title> - <subTitle>Berg der unbekannten Rekorde</subTitle> - </titleInfo> - <titleInfo type="alternative"> - <title>Der Osten - entdecke wo du lebst</title> - </titleInfo> - <name type="personal"> - <namePart>Schneider, Dirk</namePart> - <role> - <roleTerm type="text">FilmemacherIn</roleTerm> - </role> - <role> - <roleTerm authority="marcrelator" type="code">fmk</roleTerm> - </role> - <nameIdentifier>(DE-627)1235502279 (DE-576)165502274</nameIdentifier> - </name> - <typeOfResource>moving image</typeOfResource> - <genre authority="marcgt">government publication</genre> - <genre authority="rdacontent">zweidimensionales bewegtes Bild</genre> - <genre authority="gnd-content">Film</genre> - <originInfo> - <place> - <placeTerm type="code" authority="marccountry">xx</placeTerm> - </place> - <dateIssued encoding="marc">2014</dateIssued> - <issuance>monographic</issuance> - </originInfo> - <originInfo eventType="publication"> - <place> - <placeTerm type="text">[Leipzig]</placeTerm> - </place> - <publisher>top ten tv</publisher> - <dateIssued>[2014]</dateIssued> - </originInfo> - <language> - <languageTerm authority="iso639-2b" type="code">ger</languageTerm> - </language> - <physicalDescription> - <form authority="marccategory">electronic resource</form> - <form authority="marcsmd">remote</form> - <extent>1 Online-Ressource (1 Videodatei, 29:49) farbig</extent> - <form type="media" authority="rdamedia">Computermedien</form> - <form type="carrier" authority="rdacarrier">Online-Ressource</form> - </physicalDescription> - <note type="statement of responsibility" altRepGroup="00">ein Film von Dirk Schneider</note> - <note>Dokumentarfilm. Deutschland. 2014</note> - <classification authority="rvk">RH 65862</classification> - <relatedItem type="series"> - <titleInfo> - <title>MDR</title> - </titleInfo> - </relatedItem> - <identifier type="oclc">946544758</identifier> - <recordInfo> - <descriptionStandard>rda</descriptionStandard> - <recordContentSource authority="marcorg">DE-576</recordContentSource> - <recordCreationDate encoding="marc">160304</recordCreationDate> - <recordChangeDate encoding="iso8601">20200124082033.0</recordChangeDate> - <recordIdentifier source="DE-576">457035137</recordIdentifier> - <recordOrigin>Converted from MARCXML to MODS version 3.6 using MARC21slim2MODS3-6.xsl - (Revision 1.119 2018/06/21)</recordOrigin> - <languageOfCataloging> - <languageTerm authority="iso639-2b" type="code">ger</languageTerm> - </languageOfCataloging> - </recordInfo> -</mods> diff --git a/tmp/PPN-457035137_2020-02-25_11-24-48/meta/rights.xml b/tmp/PPN-457035137_2020-02-25_11-24-48/meta/rights.xml deleted file mode 100644 index 9b98ec18328811d8761649d0b6fec80a9c7e995f..0000000000000000000000000000000000000000 --- a/tmp/PPN-457035137_2020-02-25_11-24-48/meta/rights.xml +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<slubarchiv:rightsRecord xmlns:slubarchiv="http://slubarchiv.slub-dresden.de/rights1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://slubarchiv.slub-dresden.de/rights1 https://slubarchiv.slub-dresden.de/slubarchiv/standards/rights/rights1.xsd"> - <slubarchiv:copyrightStatus>copyrighted</slubarchiv:copyrightStatus> - <slubarchiv:permissions> - <slubarchiv:contract date="2017-10-10">Vertrag zw. Herrn Mustermann und SLUB</slubarchiv:contract> - </slubarchiv:permissions> - <slubarchiv:legalRestrictions> - <slubarchiv:personalRight>Gerichtsurteil Amtsgericht Dresden, AZ: 1 O 12345/17</slubarchiv:personalRight> - </slubarchiv:legalRestrictions> -</slubarchiv:rightsRecord> diff --git a/tmp/PPN-457035137_2020-02-25_11-24-48/tagmanifest-md5.txt b/tmp/PPN-457035137_2020-02-25_11-24-48/tagmanifest-md5.txt deleted file mode 100644 index d03a3047ff679251ea7bf555cb6abcfc41ab169e..0000000000000000000000000000000000000000 --- a/tmp/PPN-457035137_2020-02-25_11-24-48/tagmanifest-md5.txt +++ /dev/null @@ -1,6 +0,0 @@ -fa4de6f6f9ec444a6586f6c430b0dc19 manifest-sha512.txt -c72c2eef5bf341d1a83146771185cb63 bag-info.txt -7cb0edfcba877a10170214f4f97d0319 bagit.txt -1015cbe0b8834a58dd23cca8b04b6f42 manifest-md5.txt -2f2988b28d80b8724c6fc610d9c5e7bd meta/mods.xml -6b25141145944515872b1c2f5458a8fa meta/rights.xml diff --git a/tmp/PPN-457035137_2020-02-25_11-24-48/tagmanifest-sha512.txt b/tmp/PPN-457035137_2020-02-25_11-24-48/tagmanifest-sha512.txt deleted file mode 100644 index 0c560c2a9bec3781f0ec85c9ba18ebd09aad3c62..0000000000000000000000000000000000000000 --- a/tmp/PPN-457035137_2020-02-25_11-24-48/tagmanifest-sha512.txt +++ /dev/null @@ -1,6 +0,0 @@ -c3ed118aed03c2e4915ee376d9301fbc129ec6f2abdc7d499b9d0f5846631ffef5fac2ab0a881bcd4dfc82e74256462843272d3556bc3ffd54fe29dc00010a18 manifest-sha512.txt -f125d245617387e7498615097d6910be481753c0066b9ad56beb6586bc2cfffc27456a8d1ee7e55c4e59019bf37c0d18b71f53f0c331e3796ff85bcfe29cc89f bag-info.txt -da429ec4f5ca60aebd25aa4c26ccf51ae87609129ae76f09683c810da4af4414277250ecc0253bf7871c7a3f9c5b3ed6918a5d5c092a7dc394051601eb8bb3ab bagit.txt -fbb2cf67a1c2ebcf3477d6839492c35edda2f9a99d025ddf2d8bb503a465610ee24a20ef7299255ef93c98f710e1d9ea38b497a4f074e060e456d74a20a1e671 manifest-md5.txt -d9c4288fc5122d79bdf913ad2b801655660b9e0736f85bc254cf0f75c2d2c98978cfd058060eb8eb1a908729c57a864f0cc04386892b0a3865f699d8f0d6844d meta/mods.xml -c71536260348720f5ae1c95bb791c86d3801fbc1682d00bc2cba2f65c6aa85a6ac0eccc333f9a0f9264c3fd725f368fca075c860f502c225ac2d6da9364f5645 meta/rights.xml diff --git a/tmp/bagit/test/bag-info.txt b/tmp/bagit/test/bag-info.txt deleted file mode 100644 index 746e31a9f3dbc86984924a072667bc50d57eb12c..0000000000000000000000000000000000000000 --- a/tmp/bagit/test/bag-info.txt +++ /dev/null @@ -1,6 +0,0 @@ -SLUBArchiv-sipVersion: v2020.1 -Author: Taras Schevchenko -Bagging-Date: 2020-03-09 -Bag-Software-Agent: Archive::BagIt <https://metacpan.org/pod/Archive::BagIt> -Payload-Oxum: 23.1 -Bag-Size: 23 B diff --git a/tmp/bagit/test/bagit.txt b/tmp/bagit/test/bagit.txt deleted file mode 100644 index 33835cda70940cd823354cea5a1776c925221934..0000000000000000000000000000000000000000 --- a/tmp/bagit/test/bagit.txt +++ /dev/null @@ -1,2 +0,0 @@ -BagIt-Version: 1.0 -Tag-File-Character-Encoding: UTF-8 \ No newline at end of file diff --git a/tmp/bagit/test/data/test.txt b/tmp/bagit/test/data/test.txt deleted file mode 100644 index 6f3f31b13b1726146f8777621ec363583bbea240..0000000000000000000000000000000000000000 --- a/tmp/bagit/test/data/test.txt +++ /dev/null @@ -1 +0,0 @@ -test file for payload. diff --git a/tmp/bagit/test/manifest-md5.txt b/tmp/bagit/test/manifest-md5.txt deleted file mode 100644 index dc8b2b1b74d3f90976eac71ffcf04d6d74446fa0..0000000000000000000000000000000000000000 --- a/tmp/bagit/test/manifest-md5.txt +++ /dev/null @@ -1 +0,0 @@ -0f371d83cd19d8a20cc6c4ff66bf1d1b data/test.txt diff --git a/tmp/bagit/test/manifest-sha512.txt b/tmp/bagit/test/manifest-sha512.txt deleted file mode 100644 index 8ac5937e23d7064973bb333c79f43121312bbd47..0000000000000000000000000000000000000000 --- a/tmp/bagit/test/manifest-sha512.txt +++ /dev/null @@ -1 +0,0 @@ -a9236acde7945d0848ae76233017caed4dc0dfab68f58a8a38fa1052c0e215a72a760b0b0c11ab4fd4b3656504f4f2d8e6daf1652d38c106c65d24f88cf97c72 data/test.txt diff --git a/tmp/bagit/test/meta/Fallbeispiel-01.xml b/tmp/bagit/test/meta/Fallbeispiel-01.xml deleted file mode 100644 index 3df70f4b2ef3b228720d678dda06c6c07ce06f04..0000000000000000000000000000000000000000 --- a/tmp/bagit/test/meta/Fallbeispiel-01.xml +++ /dev/null @@ -1,4 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<slubarchiv:rightsRecord xmlns:slubarchiv="http://slubarchiv.slub-dresden.de/rights1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://slubarchiv.slub-dresden.de/rights1 https://slubarchiv.slub-dresden.de/slubarchiv/standards/rights/rights1.xsd"> - <slubarchiv:copyrightStatus>publicdomain</slubarchiv:copyrightStatus> -</slubarchiv:rightsRecord> diff --git a/tmp/bagit/test/meta/Fallbeispiel-02.xml b/tmp/bagit/test/meta/Fallbeispiel-02.xml deleted file mode 100644 index 9b98ec18328811d8761649d0b6fec80a9c7e995f..0000000000000000000000000000000000000000 --- a/tmp/bagit/test/meta/Fallbeispiel-02.xml +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<slubarchiv:rightsRecord xmlns:slubarchiv="http://slubarchiv.slub-dresden.de/rights1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://slubarchiv.slub-dresden.de/rights1 https://slubarchiv.slub-dresden.de/slubarchiv/standards/rights/rights1.xsd"> - <slubarchiv:copyrightStatus>copyrighted</slubarchiv:copyrightStatus> - <slubarchiv:permissions> - <slubarchiv:contract date="2017-10-10">Vertrag zw. Herrn Mustermann und SLUB</slubarchiv:contract> - </slubarchiv:permissions> - <slubarchiv:legalRestrictions> - <slubarchiv:personalRight>Gerichtsurteil Amtsgericht Dresden, AZ: 1 O 12345/17</slubarchiv:personalRight> - </slubarchiv:legalRestrictions> -</slubarchiv:rightsRecord> diff --git a/tmp/bagit/test/meta/Fallbeispiel-03.xml b/tmp/bagit/test/meta/Fallbeispiel-03.xml deleted file mode 100644 index 55e8d829ed82040511b3b0e0cc03daf697faac88..0000000000000000000000000000000000000000 --- a/tmp/bagit/test/meta/Fallbeispiel-03.xml +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<slubarchiv:rightsRecord xmlns:slubarchiv="http://slubarchiv.slub-dresden.de/rights1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://slubarchiv.slub-dresden.de/rights1 https://slubarchiv.slub-dresden.de/slubarchiv/standards/rights/rights1.xsd"> - <slubarchiv:copyrightStatus>copyrighted</slubarchiv:copyrightStatus> - <slubarchiv:permissions> - <slubarchiv:license url="https://creativecommons.org/publicdomain/zero/1.0/">CC0 1.0</slubarchiv:license> - </slubarchiv:permissions> -</slubarchiv:rightsRecord> diff --git a/tmp/bagit/test/meta/Fallbeispiel-04.xml b/tmp/bagit/test/meta/Fallbeispiel-04.xml deleted file mode 100644 index 06426c34e0195e768b3c803d83f03e27100cb977..0000000000000000000000000000000000000000 --- a/tmp/bagit/test/meta/Fallbeispiel-04.xml +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<slubarchiv:rightsRecord xmlns:slubarchiv="http://slubarchiv.slub-dresden.de/rights1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://slubarchiv.slub-dresden.de/rights1 https://slubarchiv.slub-dresden.de/slubarchiv/standards/rights/rights1.xsd"> - <slubarchiv:copyrightStatus>copyrighted</slubarchiv:copyrightStatus> - <slubarchiv:permissions> - <slubarchiv:contract date="2017-01-01">Vereinbarung zur Digitalisierung und zur digitalen Präsentation von Beständen im Rahmen des Landesdigitalisierungsprogramms für Wissenschaft und Kultur zwischen Einrichtung XY und der Sächsische Landesbibliothek – Staats- und Universitätsbibliothek Dresden (SLUB)</slubarchiv:contract> - <slubarchiv:license url="https://creativecommons.org/licenses/by-sa/4.0/">CC BY-SA 4.0</slubarchiv:license> - </slubarchiv:permissions> -</slubarchiv:rightsRecord> diff --git a/tmp/bagit/test/meta/Fallbeispiel-05.xml b/tmp/bagit/test/meta/Fallbeispiel-05.xml deleted file mode 100644 index 1c85151e519576ca92d7c852720f3b86d9686196..0000000000000000000000000000000000000000 --- a/tmp/bagit/test/meta/Fallbeispiel-05.xml +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<slubarchiv:rightsRecord xmlns:slubarchiv="http://slubarchiv.slub-dresden.de/rights1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://slubarchiv.slub-dresden.de/rights1 https://slubarchiv.slub-dresden.de/slubarchiv/standards/rights/rights1.xsd"> - <slubarchiv:copyrightStatus>copyrighted</slubarchiv:copyrightStatus> - <slubarchiv:permissions> - <slubarchiv:orphanedWork/> - </slubarchiv:permissions> -</slubarchiv:rightsRecord> diff --git a/tmp/bagit/test/meta/Fallbeispiel-06.xml b/tmp/bagit/test/meta/Fallbeispiel-06.xml deleted file mode 100644 index bb921f00ecd9142f30c95369aa8fa94f98528799..0000000000000000000000000000000000000000 --- a/tmp/bagit/test/meta/Fallbeispiel-06.xml +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<slubarchiv:rightsRecord xmlns:slubarchiv="http://slubarchiv.slub-dresden.de/rights1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://slubarchiv.slub-dresden.de/rights1 https://slubarchiv.slub-dresden.de/slubarchiv/standards/rights/rights1.xsd"> - <slubarchiv:copyrightStatus>copyrighted</slubarchiv:copyrightStatus> - <slubarchiv:permissions> - <slubarchiv:contract date="2015-01-01">Rahmenvertrag zur Nutzung von vergriffenen Werken in Büchern zwischen Bund, Ländern, Verwertungsgesellschaft WORT und Verwertungsgesellschaft Bild-Kunst</slubarchiv:contract> - <slubarchiv:outOfPrintWork/> - </slubarchiv:permissions> -</slubarchiv:rightsRecord> diff --git a/tmp/bagit/test/meta/Fallbeispiel-07.xml b/tmp/bagit/test/meta/Fallbeispiel-07.xml deleted file mode 100644 index d8080ea508f0a3bab57f3463c9c681b67a732fb8..0000000000000000000000000000000000000000 --- a/tmp/bagit/test/meta/Fallbeispiel-07.xml +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<slubarchiv:rightsRecord xmlns:slubarchiv="http://slubarchiv.slub-dresden.de/rights1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://slubarchiv.slub-dresden.de/rights1 https://slubarchiv.slub-dresden.de/slubarchiv/standards/rights/rights1.xsd"> - <slubarchiv:copyrightStatus>copyrighted</slubarchiv:copyrightStatus> - <slubarchiv:permissions> - <slubarchiv:contract date="2019-01-31">Vertrag zur Digitalisierung der XY-Tagebücher zwischen dem Verlag Z und der SLUB Dresden</slubarchiv:contract> - </slubarchiv:permissions> -</slubarchiv:rightsRecord> diff --git a/tmp/bagit/test/meta/Fallbeispiel-08a-undef.xml b/tmp/bagit/test/meta/Fallbeispiel-08a-undef.xml deleted file mode 100644 index 3922d3c13cd40a45e9f6e38bca3e022afa75ce5c..0000000000000000000000000000000000000000 --- a/tmp/bagit/test/meta/Fallbeispiel-08a-undef.xml +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<slubarchiv:rightsRecord xmlns:slubarchiv="http://slubarchiv.slub-dresden.de/rights1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://slubarchiv.slub-dresden.de/rights1 https://slubarchiv.slub-dresden.de/slubarchiv/standards/rights/rights1.xsd"> - <slubarchiv:copyrightStatus>undefined</slubarchiv:copyrightStatus> - <slubarchiv:legalRestrictions> - <slubarchiv:childProtection>Nationalsozialistischer Inhalt</slubarchiv:childProtection> - </slubarchiv:legalRestrictions> -</slubarchiv:rightsRecord> diff --git a/tmp/bagit/test/meta/Fallbeispiel-09.xml b/tmp/bagit/test/meta/Fallbeispiel-09.xml deleted file mode 100644 index 7cd9bac20f2487a826facee9edb51e0524e9da2d..0000000000000000000000000000000000000000 --- a/tmp/bagit/test/meta/Fallbeispiel-09.xml +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<slubarchiv:rightsRecord xmlns:slubarchiv="http://slubarchiv.slub-dresden.de/rights1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://slubarchiv.slub-dresden.de/rights1 https://slubarchiv.slub-dresden.de/slubarchiv/standards/rights/rights1.xsd"> - <slubarchiv:copyrightStatus>copyrighted</slubarchiv:copyrightStatus> - <slubarchiv:permissions> - <slubarchiv:contract date="2016-12-09">Kooperationsvereinbarung zwischen dem Freistaat Sachsen, vertreten durch die Landesbehörde XY und der Sächsischen Landesbibliothek - Staats- und Universitätsbibliothek Dresden (SLUB)</slubarchiv:contract> - </slubarchiv:permissions> - <slubarchiv:legalRestrictions> - <slubarchiv:confidentialContent>Dieses Dokument enthält Betriebs- und Geschäftsgeheimnisse.</slubarchiv:confidentialContent> - </slubarchiv:legalRestrictions> -</slubarchiv:rightsRecord> diff --git a/tmp/bagit/test/meta/Fallbeispiel-10.xml b/tmp/bagit/test/meta/Fallbeispiel-10.xml deleted file mode 100644 index 37c861c074c83e2b77bd1792411df9b9cf8afac0..0000000000000000000000000000000000000000 --- a/tmp/bagit/test/meta/Fallbeispiel-10.xml +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<slubarchiv:rightsRecord xmlns:slubarchiv="http://slubarchiv.slub-dresden.de/rights1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://slubarchiv.slub-dresden.de/rights1 https://slubarchiv.slub-dresden.de/slubarchiv/standards/rights/rights1.xsd"> - <slubarchiv:copyrightStatus>copyrighted</slubarchiv:copyrightStatus> - <slubarchiv:permissions> - <slubarchiv:contract date="2016-12-09">Kooperationsvereinbarung zwischen dem Freistaat Sachsen, vertreten durch die Landesbehörde XY und der Sächsischen Landesbibliothek - Staats- und Universitätsbibliothek Dresden (SLUB)</slubarchiv:contract> - </slubarchiv:permissions> - <slubarchiv:legalRestrictions> - <slubarchiv:confidentialContent>Dieses Dokument enthält Daten über sensible Einrichtungen.</slubarchiv:confidentialContent> - </slubarchiv:legalRestrictions> -</slubarchiv:rightsRecord> diff --git a/tmp/bagit/test/meta/Fallbeispiel-11.xml b/tmp/bagit/test/meta/Fallbeispiel-11.xml deleted file mode 100644 index ca53766ebe8b4539d3d0d964154fac8e600d65b7..0000000000000000000000000000000000000000 --- a/tmp/bagit/test/meta/Fallbeispiel-11.xml +++ /dev/null @@ -1,10 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<slubarchiv:rightsRecord xmlns:slubarchiv="http://slubarchiv.slub-dresden.de/rights1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://slubarchiv.slub-dresden.de/rights1 https://slubarchiv.slub-dresden.de/slubarchiv/standards/rights/rights1.xsd"> - <slubarchiv:copyrightStatus>copyrighted</slubarchiv:copyrightStatus> - <slubarchiv:permissions> - <slubarchiv:contract date="2016-12-09">Kooperationsvereinbarung zwischen dem Freistaat Sachsen, vertreten durch die Landesbehörde XY und der Sächsischen Landesbibliothek - Staats- und Universitätsbibliothek Dresden (SLUB)</slubarchiv:contract> - </slubarchiv:permissions> - <slubarchiv:legalRestrictions> - <slubarchiv:personalRight>Das Dokument enthält persönliche Daten, präzise Wohnorte oder andere Informationen mit Personenbezug.</slubarchiv:personalRight> - </slubarchiv:legalRestrictions> -</slubarchiv:rightsRecord> diff --git a/tmp/bagit/test/meta/Fallbeispiel-12.xml b/tmp/bagit/test/meta/Fallbeispiel-12.xml deleted file mode 100644 index b333e2f6c4787e10b7890ea85df6674c86c35426..0000000000000000000000000000000000000000 --- a/tmp/bagit/test/meta/Fallbeispiel-12.xml +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<slubarchiv:rightsRecord xmlns:slubarchiv="http://slubarchiv.slub-dresden.de/rights1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://slubarchiv.slub-dresden.de/rights1 https://slubarchiv.slub-dresden.de/slubarchiv/standards/rights/rights1.xsd"> - <slubarchiv:copyrightStatus>copyrighted</slubarchiv:copyrightStatus> - <slubarchiv:permissions> - <slubarchiv:contract date="2016-12-09">Kooperationsvereinbarung zwischen dem Freistaat Sachsen, vertreten durch die Landesbehörde XY und der Sächsischen Landesbibliothek - Staats- und Universitätsbibliothek Dresden (SLUB)</slubarchiv:contract> - </slubarchiv:permissions> -</slubarchiv:rightsRecord> diff --git a/tmp/bagit/test/meta/Fallbeispiel-13.xml b/tmp/bagit/test/meta/Fallbeispiel-13.xml deleted file mode 100644 index 3df70f4b2ef3b228720d678dda06c6c07ce06f04..0000000000000000000000000000000000000000 --- a/tmp/bagit/test/meta/Fallbeispiel-13.xml +++ /dev/null @@ -1,4 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<slubarchiv:rightsRecord xmlns:slubarchiv="http://slubarchiv.slub-dresden.de/rights1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://slubarchiv.slub-dresden.de/rights1 https://slubarchiv.slub-dresden.de/slubarchiv/standards/rights/rights1.xsd"> - <slubarchiv:copyrightStatus>publicdomain</slubarchiv:copyrightStatus> -</slubarchiv:rightsRecord> diff --git a/tmp/bagit/test/meta/Fallbeispiel-14.xml b/tmp/bagit/test/meta/Fallbeispiel-14.xml deleted file mode 100644 index 3f20f4a7c6c382549caad59590c74834b65d92d1..0000000000000000000000000000000000000000 --- a/tmp/bagit/test/meta/Fallbeispiel-14.xml +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<slubarchiv:rightsRecord xmlns:slubarchiv="http://slubarchiv.slub-dresden.de/rights1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://slubarchiv.slub-dresden.de/rights1 https://slubarchiv.slub-dresden.de/slubarchiv/standards/rights/rights1.xsd"> - <slubarchiv:copyrightStatus>copyrighted</slubarchiv:copyrightStatus> - <slubarchiv:permissions> - <slubarchiv:contract date="2012-03-13">Lizenzvertrag zwischen der Sächsischen Landesbibliothek - Staats- und Universitätsbibliothek Dresden (SLUB) und dem die Landesbehörde Verein XY</slubarchiv:contract> - </slubarchiv:permissions> -</slubarchiv:rightsRecord> diff --git a/tmp/bagit/test/meta/Fallbeispiel-15.xml b/tmp/bagit/test/meta/Fallbeispiel-15.xml deleted file mode 100644 index d31e356b7a35586004dda3a097969d4385c303ce..0000000000000000000000000000000000000000 --- a/tmp/bagit/test/meta/Fallbeispiel-15.xml +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<slubarchiv:rightsRecord xmlns:slubarchiv="http://slubarchiv.slub-dresden.de/rights1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://slubarchiv.slub-dresden.de/rights1 https://slubarchiv.slub-dresden.de/slubarchiv/standards/rights/rights1.xsd"> - <slubarchiv:copyrightStatus>copyrighted</slubarchiv:copyrightStatus> - <slubarchiv:permissions> - <slubarchiv:contract date="2017-07-18">Einverständniserklärung für das elektronische Publizieren in den Digitalen Sammlungen der SLUB. Autor oder sonstige Rechteinhaber: XY</slubarchiv:contract> - <slubarchiv:license url="https://creativecommons.org/licenses/by-nc-sa/4.0/">CC BY-NC-SA 4.0</slubarchiv:license> - </slubarchiv:permissions> -</slubarchiv:rightsRecord> diff --git a/tmp/bagit/test/meta/Fallbeispiel-16.xml b/tmp/bagit/test/meta/Fallbeispiel-16.xml deleted file mode 100644 index c77761ff99372661d4f7610f18f6e32b8ec0e6f7..0000000000000000000000000000000000000000 --- a/tmp/bagit/test/meta/Fallbeispiel-16.xml +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<slubarchiv:rightsRecord xmlns:slubarchiv="http://slubarchiv.slub-dresden.de/rights1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://slubarchiv.slub-dresden.de/rights1 https://slubarchiv.slub-dresden.de/slubarchiv/standards/rights/rights1.xsd"> - <slubarchiv:copyrightStatus>copyrighted</slubarchiv:copyrightStatus> - <slubarchiv:permissions> - <slubarchiv:license url="https://www.govdata.de/dl-de/by-2-0">DL-DE BY 2.0</slubarchiv:license> - </slubarchiv:permissions> -</slubarchiv:rightsRecord> diff --git a/tmp/bagit/test/meta/bubble.xml b/tmp/bagit/test/meta/bubble.xml deleted file mode 100644 index 3713df5e6c931dce354bb643d687460931e91de9..0000000000000000000000000000000000000000 --- a/tmp/bagit/test/meta/bubble.xml +++ /dev/null @@ -1 +0,0 @@ -this is my rights.xml \ No newline at end of file diff --git a/tmp/bagit/test/meta/lido.xml b/tmp/bagit/test/meta/lido.xml deleted file mode 100644 index 19b16cc72c67d3a63e9545d4ad01635e85e4c8d9..0000000000000000000000000000000000000000 --- a/tmp/bagit/test/meta/lido.xml +++ /dev/null @@ -1 +0,0 @@ -<xml></xml> \ No newline at end of file diff --git a/tmp/bagit/test/meta/mods.xml b/tmp/bagit/test/meta/mods.xml deleted file mode 100644 index ab512e26c7d17e941357c4e439a6fd31d85dc568..0000000000000000000000000000000000000000 --- a/tmp/bagit/test/meta/mods.xml +++ /dev/null @@ -1,38 +0,0 @@ -<mods:mods xmlns:mods="http://www.loc.gov/mods/v3"> -<mods:location> -<mods:physicalLocation authority="marcorg" displayLabel="Saxon State Library, Dresden, -Germany">DE-14</mods:physicalLocation> -<mods:shelfLocator>Hist.Sax.M.37.t,120</mods:shelfLocator> -</mods:location> -<mods:relatedItem type="series"> -<mods:titleInfo> -<mods:title>Saxonica</mods:title> -</mods:titleInfo> -</mods:relatedItem> -<mods:recordInfo> -<mods:recordIdentifier source="http://digital.slub-dresden.de/oai/">oai:de:slub-dresden:db:id- -319037843</mods:recordIdentifier> -</mods:recordInfo> -<mods:physicalDescription> -<mods:digitalOrigin>reformatted digital</mods:digitalOrigin> -<mods:extent>[1] Bl.</mods:extent> -</mods:physicalDescription> -<mods:identifier type="urn">urn:nbn:de:bsz:14-db-id3190378431</mods:identifier> -<mods:titleInfo> -<mods:title>Eingabe der Handelskammer zu Leipzig den Entwurf eines Tabak-Steuer-Gesetzes -betr.</mods:title> -<mods:subTitle>an den Reichstag zu Berlin</mods:subTitle> -</mods:titleInfo> -<mods:language> -<mods:languageTerm authority="rfc3066" type="code">de</mods:languageTerm> -</mods:language> -<mods:originInfo> -<mods:place> -<mods:placeTerm type="text">[Leipzig]</mods:placeTerm> -</mods:place> -<mods:dateIssued keyDate="yes">1893</mods:dateIssued> -</mods:originInfo> -<mods:subject authority="slub"> -<mods:topic>eingdehaz</mods:topic> -</mods:subject> -</mods:mods> diff --git a/tmp/bagit/test/meta/rights.xml b/tmp/bagit/test/meta/rights.xml deleted file mode 100644 index 3201b82290c78afdb5e85650061cae25fe930e26..0000000000000000000000000000000000000000 --- a/tmp/bagit/test/meta/rights.xml +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<slubarchiv:rightsRecord xmlns:slubarchiv="http://slubarchiv.slub-dresden.de/rights1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://slubarchiv.slub-dresden.de/rights1 https://slubarchiv.slub-dresden.de/slubarchiv/standards/rights/slub-rr-v09-1.xsd"> - <slubarchiv:copyrightStatus>publicdomain</slubarchiv:copyrightStatus> - <slubarchiv:copyrightStatus>copyrighted</slubarchiv:copyrightStatus> -</slubarchiv:rightsRecord> \ No newline at end of file diff --git a/tmp/bagit/test/tagmanifest-md5.txt b/tmp/bagit/test/tagmanifest-md5.txt deleted file mode 100644 index 04e2a1bbfddf84d466f8f5b6c391702bd4bd44cf..0000000000000000000000000000000000000000 --- a/tmp/bagit/test/tagmanifest-md5.txt +++ /dev/null @@ -1,24 +0,0 @@ -78bfb3f0189a50e8652f8fcfffebeb12 manifest-sha512.txt -1e2916f186cc750d5dc68bc27e7efe21 bag-info.txt -7cb0edfcba877a10170214f4f97d0319 bagit.txt -4aa497234e99e2f9302d10bed31db634 manifest-md5.txt -8895d8bf80620a0c2f79969cac46782a meta/Fallbeispiel-13.xml -7c629d7a26a8ef8002a8fb5d996950de meta/Fallbeispiel-11.xml -ee98158d8cf7eba4016450d7e4605713 meta/Fallbeispiel-09.xml -8eb41527a8f53e5d673771fa2159edac meta/lido.xml -c4f9e551a4cd013de78ada514d06779b meta/Fallbeispiel-15.xml -f4fd94d7f1fa9094af50f98f078ec7ee meta/Fallbeispiel-10.xml -5315f924d13eb503839c0ed232496c8a meta/Fallbeispiel-08a-undef.xml -6b25141145944515872b1c2f5458a8fa meta/Fallbeispiel-02.xml -e95b13f7e8026828f895430414e961e7 meta/Fallbeispiel-12.xml -8895d8bf80620a0c2f79969cac46782a meta/Fallbeispiel-01.xml -5754f9d6d3e8e3f9d32371007187c196 meta/Fallbeispiel-14.xml -b546f354e3a76f49849289d842de3b39 meta/mods.xml -43891602828342b90fe94da9b9f7120c meta/bubble.xml -a04a99c5726cd49b1d0215fe7a6738da meta/Fallbeispiel-05.xml -4338b843b85a7e0a17fc99d263db6e7c meta/Fallbeispiel-16.xml -afc7066bd482bc8c4fa55a56f02448b0 meta/Fallbeispiel-07.xml -30705ad6c0fef2214e6e9faa7e6bf21b meta/Fallbeispiel-03.xml -bd82c36224a282d3d8f160b08aea9b1c meta/rights.xml -09c961f63fcad5bae582e106e65dd993 meta/Fallbeispiel-04.xml -0be9746c8217ba9e507d11ca0463fd9c meta/Fallbeispiel-06.xml diff --git a/tmp/bagit/test/tagmanifest-sha512.txt b/tmp/bagit/test/tagmanifest-sha512.txt deleted file mode 100644 index 785841bd1a7a89e4503b5ece5ee4174ebe9af1dc..0000000000000000000000000000000000000000 --- a/tmp/bagit/test/tagmanifest-sha512.txt +++ /dev/null @@ -1,24 +0,0 @@ -b1c9a4bc23f472db7fff27884e69567fd62ee2dc17b36909a373b80fda9b0bcf84491ce0bc163e00ce43e4f02e085a3d5315556604cf23f40e81a25d3c0a57a8 manifest-sha512.txt -f21212570b7b64e142c866cafcb0c891ad7beb288f439b1489b68445b93e22450f07c13a7b0ac9ec2c9d7e9cfc91bb9102af2c71954f0b7e2eb67511bd8ff6eb bag-info.txt -da429ec4f5ca60aebd25aa4c26ccf51ae87609129ae76f09683c810da4af4414277250ecc0253bf7871c7a3f9c5b3ed6918a5d5c092a7dc394051601eb8bb3ab bagit.txt -0e892c5219c5b1153f6cdbdcdc4c08d5fb7d0eeb63725d4ec19110ccc28ed59d0129ccdb29117d8094f5e8f04924db6dc55b8a0416216a60df46047d4ede4114 manifest-md5.txt -a9c97cc5c5f4677472965fb988cc0e4eff57beb534fcdadb838b29226d212bb00a3d3ae5ca15390f41b2d0f2f57bf02bbb779f7db41f128c32893fd0f85038d1 meta/Fallbeispiel-13.xml -9a27d28e741f6d0d7b853fe80e5307eb0cb2dfba314ef9d45bdf651b298c82a0b6ec7e65bcb8dc3ead1d4395a3eae9089b1dd659ab6e676fbdd7ded7b99f0e27 meta/Fallbeispiel-11.xml -da7768692d2aef6fe8ae123ef8eb0ce58a6adab7ff8bfeb2a743956586c36e1c3fffb8aff7e03110c11e0c81dc490931c80c5f835608b50b44549782322e2427 meta/Fallbeispiel-09.xml -f2df67529acb78b080b1fed3ff488851ebc881d9a782240bd1c70a3c8cb2c4ea22c95d0f1646de9626ff2d1ad51c236d7d092badbbc55e4d8c15c1562f72576d meta/lido.xml -8538bc934542c39b35cb60113f444cbdaa0ede39e557e23d2a1c980a21e467bfc5d2ab37ae207a91b138a559331bda702f8efd9a147c8d6634a3cb90100a4b81 meta/Fallbeispiel-15.xml -35b54f8001d00fe86a1d2618587d16636e73abca69b2dc0e9d989d38a180a52848f6dfe1884c73643e9ddbbd11db52ee64791e34f01d406f451959cde1f33db1 meta/Fallbeispiel-10.xml -b94fef5ff5cbd4f365e81b814bd96ddc62d30dd77d9b7f36f796e64a439b127558dbd94836d1d1331b5735718053f09c35f119ffbd5fd7cfbc0411d6221286e8 meta/Fallbeispiel-08a-undef.xml -c71536260348720f5ae1c95bb791c86d3801fbc1682d00bc2cba2f65c6aa85a6ac0eccc333f9a0f9264c3fd725f368fca075c860f502c225ac2d6da9364f5645 meta/Fallbeispiel-02.xml -dd242aa91bdb51f4d6791c1b7754960f5c517e8058438e5e5830b593b5e16396ad5ba1df44a483a7c7952996bdfc97dccc37b50841d93d324ac2f7d7d8d84dfe meta/Fallbeispiel-12.xml -a9c97cc5c5f4677472965fb988cc0e4eff57beb534fcdadb838b29226d212bb00a3d3ae5ca15390f41b2d0f2f57bf02bbb779f7db41f128c32893fd0f85038d1 meta/Fallbeispiel-01.xml -11fee9e7697a2da85bd5c484f5863c97bb1b00f5981ed17660b1e2a1b9402d3ccf50e9506753d10a196c34659165e27b5736647ff0b31a0dc6f470ff7cfcc07d meta/Fallbeispiel-14.xml -b637642ada4336d2048ba4d62585577158cdf2ecf54bf9b2f64887b5747f665e81035ff752be810d7b04468de9415f39d61c5d4cf0426c9c5f52de1b9a272ba4 meta/mods.xml -ad8312d611dfe1b053a222b7c2f789fd0f6e4af20002ec3cea5e6e2a6bbf7bdeee0d06f1cb098b168f136245f34933ed4333c70ff3465881be13dbb14ca633dd meta/bubble.xml -87a8ea168c351db56f8160a2735872f4214c47daf4328412c3789f5abda04909942b18e87eb5abb2f6e8bf6f23e54cedd62da8045a8646257585fa411ec68b01 meta/Fallbeispiel-05.xml -2958eb494880f1a7732655b61ff8232a34de188402ddaa84c412adae65739a97693a7f9afff6b90978c2324afe0e8a6ea1c136ab514581b3245f156bc63e5f9e meta/Fallbeispiel-16.xml -7953c989696fe39eb3c96b2b0893dca486164dc20b8c9661295a060eb13b7ee672a5ac5776a58733c0e7c9d4a3a3663af54b442cb4c2a825e22360a03c447e31 meta/Fallbeispiel-07.xml -8de9b482fe0072c2a039d174f976097bdb0e22c95f3d6f1cfaffab0e9ba1ea5f59980968c3cc0760d71b3a597fcfa3a441d96fca3342935786cf3038b047cdf9 meta/Fallbeispiel-03.xml -56ea1ad45cd66672c40272fd0603f978d69f81433f327ddfd3058fa612ccd13bc18bd71a554f8bd18e71c41ed9e6917575367c2db14dfa4cea9a75d0c23ffe26 meta/rights.xml -8de2e90833a84ca9596a519dd220dfd00b08dd3778d4339528bbde681954f8583d1f3ede700a5de275ca4be7f358f47133e3a7edc1a57f5f849f6f008e835d4f meta/Fallbeispiel-04.xml -46cd260e0d51a085eb25e4a3c203d8c50836f9522049985ba644d5d604b68018e61a898defd0a8833edd8ce9b2548b2ba392e06a8f96f735197025cc7f30f497 meta/Fallbeispiel-06.xml diff --git a/xsl/MARC21slim2MODS3-6.patched.xsl b/xsl/MARC21slim2MODS3-6.patched.xsl deleted file mode 100644 index b2014b30f14f099d82da48a6cf71802ebb0bfe56..0000000000000000000000000000000000000000 --- a/xsl/MARC21slim2MODS3-6.patched.xsl +++ /dev/null @@ -1,5714 +0,0 @@ -<xsl:stylesheet xmlns="http://www.loc.gov/mods/v3" xmlns:marc="http://www.loc.gov/MARC21/slim" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" exclude-result-prefixes="xlink marc" version="1.0"> - <xsl:include href="/home/bolkun/git/SLUB_SIP_Builder/xsl/MARC21slimUtils.xsl"/> - <xsl:output encoding="UTF-8" indent="yes" method="xml"/> - <xsl:strip-space elements="*"/> - - <!-- Maintenance note: For each revision, change the content of <recordInfo><recordOrigin> to reflect the new revision number. - MARC21slim2MODS3-6 - - MODS 3.6 (Revision 1.119) 20180621 - - Revision 1.119 - Fixed 700 ind1=0 to transform - tmee 2018/06/21 - Revision 1.118 - Fixed namePart termsOfAddress subelement order - 2018/01/31 tmee - Revision 1.117 - Fixed name type="corporate" RE: MODS 3.6 - 2017/2/14 ntra - Revision 1.116 - Added nameIdentifier to 700/710/711/100/110/111 $0 RE: MODS 3.6 - 2016/3/15 ws - Revision 1.115 - Added @otherType for 7xx RE: MODS 3.6 - 2016/3/15 ws - Revision 1.114 - Added <itemIdentifier> for 852$p and <itemIdentifier > with type="copy number" for 852$t RE: MODS 3.6 - 2016/3/15 ws - Revision 1.113 - Added @valueURI="contents of $0" for 752/662 RE: MODS 3.6 - 2016/3/15 ws - Revision 1.112 - Added @xml:space="preserve" to title/nonSort on 245 and 242 RE: MODS 3.6 - 2016/3/15 ws - - Revision 1.111 - Added test to prevent empty authority attribute for 047 with no subfield 2. - ws 2016/03/24 - Revision 1.110 - Added test to prevent empty authority attribute for 336 with no subfield 2. - ws 2016/03/24 - Revision 1.109 - Added test to prevent empty authority attribute for 655 and use if ind2 if no subfield 2 is available. - ws 2016/03/24 - Revision 1.108 - Added filter to name templates to exclude names with title subfields. - ws 2016/03/24 - - Revision 1.107 - Added support for 024/@ind1=7 - ws 2016/1/7 - Revision 1.106 - Added a xsl:when to deal with '#' and ' ' in $leader19 and $controlField008-18 - ws 2014/12/19 - Revision 1.105 - Add @unit to extent - ws 2014/11/20 - Revision 1.104 - Fixed 111$n and 711$n to reflect mapping to <namePart> tmee 20141112 - Revision 1.103 - Fixed 008/28 to reflect revised mapping for government publication tmee 20141104 - Revision 1.102 - Fixed 240$s duplication tmee 20140812 - Revision 1.101 - Fixed 130 tmee 20140806 - Revision 1.100 - Fixed 245c tmee 20140804 - Revision 1.99 - Fixed 240 issue tmee 20140804 - Revision 1.98 - Fixed 336 mapping tmee 20140522 - Revision 1.97 - Fixed 264 mapping tmee 20140521 - Revision 1.96 - Fixed 310 and 321 and 008 frequency authority for marcfrequency tmee 2014/04/22 - Revision 1.95 - Modified 035 to include identifier type (WlCaITV) tmee 2014/04/21 - Revision 1.94 - Leader 07 b changed mapping from continuing to serial tmee 2014/02/21 - - MODS 3.5 - Revision 1.93 - Fixed personal name transform for ind1=0 tmee 2014/01/31 - Revision 1.92 - Removed duplicate code for 856 1.51 tmee 2014/01/31 - Revision 1.91 - Fixed createnameFrom720 duplication tmee 2014/01/31 - Revision 1.90 - Fixed 520 displayLabel tmee tmee 2014/01/31 - Revision 1.89 - Fixed 008-06 when value = 's' for cartographics tmee tmee 2014/01/31 - Revision 1.88 - Fixed 510c mapping - tmee 2013/08/29 - Revision 1.87 - Fixed expressions of <accessCondition> type values - tmee 2013/08/29 - Revision 1.86 - Fixed 008 <frequency> subfield to occur w/i <originiInfo> - tmee 2013/08/29 - Revision 1.85 - Fixed 245$c - tmee 2013/03/07 - Revision 1.84 - Fixed 1.35 and 1.36 date mapping for 008 when 008/06=e,p,r,s,t so only 008/07-10 displays, rather than 008/07-14 - tmee 2013/02/01 - Revision 1.83 - Deleted mapping for 534 to note - tmee 2013/01/18 - Revision 1.82 - Added mapping for 264 ind 0,1,2,3 to originInfo - 2013/01/15 tmee - Revision 1.81 - Added mapping for 336$a$2, 337$a$2, 338$a$2 - 2012/12/03 tmee - Revision 1.80 - Added 100/700 mapping for "family" - 2012/09/10 tmee - Revision 1.79 - Added 245 $s mapping - 2012/07/11 tmee - Revision 1.78 - Fixed 852 mapping <shelfLocation> was changed to <shelfLocator> - 2012/05/07 tmee - Revision 1.77 - Fixed 008-06 when value = 's' - 2012/04/19 tmee - Revision 1.76 - Fixed 242 - 2012/02/01 tmee - Revision 1.75 - Fixed 653 - 2012/01/31 tmee - Revision 1.74 - Fixed 510 note - 2011/07/15 tmee - Revision 1.73 - Fixed 506 540 - 2011/07/11 tmee - Revision 1.72 - Fixed frequency error - 2011/07/07 and 2011/07/14 tmee - Revision 1.71 - Fixed subject titles for subfields t - 2011/04/26 tmee - Revision 1.70 - Added mapping for OCLC numbers in 035s to go into <identifier type="oclc"> 2011/02/27 - tmee - Revision 1.69 - Added mapping for untyped identifiers for 024 - 2011/02/27 tmee - Revision 1.68 - Added <subject><titleInfo> mapping for 600/610/611 subfields t,p,n - 2010/12/22 tmee - Revision 1.67 - Added frequency values and authority="marcfrequency" for 008/18 - 2010/12/09 tmee - Revision 1.66 - Fixed 008/06=c,d,i,m,k,u, from dateCreated to dateIssued - 2010/12/06 tmee - Revision 1.65 - Added back marcsmd and marccategory for 007 cr- 2010/12/06 tmee - Revision 1.64 - Fixed identifiers - removed isInvalid template - 2010/12/06 tmee - Revision 1.63 - Fixed descriptiveStandard value from aacr2 to aacr - 2010/12/06 tmee - Revision 1.62 - Fixed date mapping for 008/06=e,p,r,s,t - 2010/12/01 tmee - Revision 1.61 - Added 007 mappings for marccategory - 2010/11/12 tmee - Revision 1.60 - Added altRepGroups and 880 linkages for relevant fields, see mapping - 2010/11/26 tmee - Revision 1.59 - Added scriptTerm type=text to language for 546b and 066c - 2010/09/23 tmee - Revision 1.58 - Expanded script template to include code conversions for extended scripts - 2010/09/22 tmee - Revision 1.57 - Added Ldr/07 and Ldr/19 mappings - 2010/09/17 tmee - Revision 1.56 - Mapped 1xx usage="primary" - 2010/09/17 tmee - Revision 1.55 - Mapped UT 240/1xx nameTitleGroup - 2010/09/17 tmee - MODS 3.4 - Revision 1.54 - Fixed 086 redundancy - 2010/07/27 tmee - Revision 1.53 - Added direct href for MARC21slimUtils - 2010/07/27 tmee - Revision 1.52 - Mapped 046 subfields c,e,k,l - 2010/04/09 tmee - Revision 1.51 - Corrected 856 transform - 2010/01/29 tmee - Revision 1.50 - Added 210 $2 authority attribute in <titleInfo type=”abbreviated”> 2009/11/23 tmee - Revision 1.49 - Aquifer revision 1.14 - Added 240s (version) data to <titleInfo type="uniform"><title> 2009/11/23 tmee - Revision 1.48 - Aquifer revision 1.27 - Added mapping of 242 second indicator (for nonfiling characters) to <titleInfo><nonSort > subelement 2007/08/08 tmee/dlf - Revision 1.47 - Aquifer revision 1.26 - Mapped 300 subfield f (type of unit) - and g (size of unit) 2009 ntra - Revision 1.46 - Aquifer revision 1.25 - Changed mapping of 767 so that <type="otherVersion> 2009/11/20 tmee - Revision 1.45 - Aquifer revision 1.24 - Changed mapping of 765 so that <type="otherVersion> 2009/11/20 tmee - Revision 1.44 - Added <recordInfo><recordOrigin> canned text about the version of this stylesheet 2009 ntra - Revision 1.43 - Mapped 351 subfields a,b,c 2009/11/20 tmee - Revision 1.42 - Changed 856 second indicator=1 to go to <location><url displayLabel=”electronic resource”> instead of to <relatedItem type=”otherVersion”><url> 2009/11/20 tmee - Revision 1.41 - Aquifer revision 1.9 Added variable and choice protocol for adding usage=”primary display” 2009/11/19 tmee - Revision 1.40 - Dropped <note> for 510 and added <relatedItem type="isReferencedBy"> for 510 2009/11/19 tmee - Revision 1.39 - Aquifer revision 1.23 Changed mapping for 762 (Subseries Entry) from <relatedItem type="series"> to <relatedItem type="constituent"> 2009/11/19 tmee - Revision 1.38 - Aquifer revision 1.29 Dropped 007s for electronic versions 2009/11/18 tmee - Revision 1.37 - Fixed date redundancy in output (with questionable dates) 2009/11/16 tmee - Revision 1.36 - If mss material (Ldr/06=d,p,f,t) map 008 dates and 260$c/$g dates to dateCreated 2009/11/24, otherwise map 008 and 260$c/$g to dateIssued 2010/01/08 tmee - Revision 1.35 - Mapped appended detailed dates from 008/07-10 and 008/11-14 to dateIssued or DateCreated w/encoding="marc" 2010/01/12 tmee - Revision 1.34 - Mapped 045b B.C. and C.E. date range info to iso8601-compliant dates in <subject><temporal> 2009/01/08 ntra - Revision 1.33 - Mapped Ldr/06 "o" to <typeOfResource>kit 2009/11/16 tmee - Revision 1.32 - Mapped specific note types from the MODS Note Type list <http://www.loc.gov/standards/mods/mods-notes.html> tmee 2009/11/17 - Revision 1.31 - Mapped 540 to <accessCondition type="use and reproduction"> and 506 to <accessCondition type="restriction on access"> and delete mappings of 540 and 506 to <note> - Revision 1.30 - Mapped 037c to <identifier displayLabel=""> 2009/11/13 tmee - Revision 1.29 - Corrected schemaLocation to 3.3 2009/11/13 tmee - Revision 1.28 - Changed mapping from 752,662 g going to mods:hierarchicalGeographic/area instead of "region" 2009/07/30 ntra - Revision 1.27 - Mapped 648 to <subject> 2009/03/13 tmee - Revision 1.26 - Added subfield $s mapping for 130/240/730 2008/10/16 tmee - Revision 1.25 - Mapped 040e to <descriptiveStandard> and Leader/18 to <descriptive standard>aacr2 2008/09/18 tmee - Revision 1.24 - Mapped 852 subfields $h, $i, $j, $k, $l, $m, $t to <shelfLocation> and 852 subfield $u to <physicalLocation> with @xlink 2008/09/17 tmee - Revision 1.23 - Commented out xlink/uri for subfield 0 for 130/240/730, 100/700, 110/710, 111/711 as these are currently unactionable 2008/09/17 tmee - Revision 1.22 - Mapped 022 subfield $l to type "issn-l" subfield $m to output identifier element with corresponding @type and @invalid eq 'yes'2008/09/17 tmee - Revision 1.21 - Mapped 856 ind2=1 or ind2=2 to <relatedItem><location><url> 2008/07/03 tmee - Revision 1.20 - Added genre w/@auth="contents of 2" and type= "musical composition" 2008/07/01 tmee - Revision 1.19 - Added genre offprint for 008/24+ BK code 2 2008/07/01 tmee - Revision 1.18 - Added xlink/uri for subfield 0 for 130/240/730, 100/700, 110/710, 111/711 2008/06/26 tmee - Revision 1.17 - Added mapping of 662 2008/05/14 tmee - Revision 1.16 - Changed @authority from "marc" to "marcgt" for 007 and 008 codes mapped to a term in <genre> 2007/07/10 tmee - Revision 1.15 - For field 630, moved call to part template outside title element 2007/07/10 tmee - Revision 1.14 - Fixed template isValid and fields 010, 020, 022, 024, 028, and 037 to output additional identifier elements with corresponding @type and @invalid eq 'yes' when subfields z or y (in the case of 022) exist in the MARCXML ::: 2007/01/04 17:35:20 cred - Revision 1.13 - Changed order of output under cartographics to reflect schema 2006/11/28 tmee - Revision 1.12 - Updated to reflect MODS 3.2 Mapping 2006/10/11 tmee - Revision 1.11 - The attribute objectPart moved from <languageTerm> to <language> 2006/04/08 jrad - Revision 1.10 - MODS 3.1 revisions to language and classification elements (plus ability to find marc:collection embedded in wrapper elements such as SRU zs: wrappers) 2006/02/06 ggar - Revision 1.09 - Subfield $y was added to field 242 2004/09/02 10:57 jrad - Revision 1.08 - Subject chopPunctuation expanded and attribute fixes 2004/08/12 jrad - Revision 1.07 - 2004/03/25 08:29 jrad - Revision 1.06 - Various validation fixes 2004/02/20 ntra - Revision 1.05 - MODS2 to MODS3 updates, language unstacking and de-duping, chopPunctuation expanded 2003/10/02 16:18:58 ntra - Revision 1.03 - Additional Changes not related to MODS Version 2.0 by ntra - Revision 1.02 - Added Log Comment 2003/03/24 19:37:42 ckeith - --> - - <xsl:template match="/"> - <xsl:choose> - <xsl:when test="//marc:collection"> - <modsCollection xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.loc.gov/mods/v3 http://www.loc.gov/standards/mods/v3/mods-3-6.xsd"> - <xsl:for-each select="//marc:collection/marc:record"> - <mods version="3.6"> - <xsl:call-template name="marcRecord"/> - </mods> - </xsl:for-each> - </modsCollection> - </xsl:when> - <xsl:otherwise> - <mods xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.6" xsi:schemaLocation="http://www.loc.gov/mods/v3 http://www.loc.gov/standards/mods/v3/mods-3-6.xsd"> - <xsl:for-each select="//marc:record"> - <xsl:call-template name="marcRecord"/> - </xsl:for-each> - </mods> - </xsl:otherwise> - </xsl:choose> - </xsl:template> - <xsl:template name="marcRecord"> - <xsl:variable name="leader" select="marc:leader"/> - <xsl:variable name="leader6" select="substring($leader,7,1)"/> - <xsl:variable name="leader7" select="substring($leader,8,1)"/> - <xsl:variable name="leader19" select="substring($leader,20,1)"/> - <xsl:variable name="controlField008" select="marc:controlfield[@tag='008']"/> - <xsl:variable name="typeOf008"> - <xsl:choose> - <xsl:when test="$leader6='a'"> - <xsl:choose> - <xsl:when test="$leader7='a' or $leader7='c' or $leader7='d' or $leader7='m'">BK</xsl:when> - <xsl:when test="$leader7='b' or $leader7='i' or $leader7='s'">SE</xsl:when> - </xsl:choose> - </xsl:when> - <xsl:when test="$leader6='t'">BK</xsl:when> - <xsl:when test="$leader6='p'">MM</xsl:when> - <xsl:when test="$leader6='m'">CF</xsl:when> - <xsl:when test="$leader6='e' or $leader6='f'">MP</xsl:when> - <xsl:when test="$leader6='g' or $leader6='k' or $leader6='o' or $leader6='r'">VM</xsl:when> - <xsl:when test="$leader6='c' or $leader6='d' or $leader6='i' or $leader6='j'">MU</xsl:when> - </xsl:choose> - </xsl:variable> - - <!-- titleInfo --> - - <xsl:for-each select="marc:datafield[@tag='245']"> - <xsl:call-template name="createTitleInfoFrom245"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag='210']"> - <xsl:call-template name="createTitleInfoFrom210"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag='246']"> - <xsl:call-template name="createTitleInfoFrom246"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag='240']"> - <xsl:call-template name="createTitleInfoFrom240"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag='740']"> - <xsl:call-template name="createTitleInfoFrom740"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag='130']"> - <xsl:call-template name="createTitleInfoFrom130"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag='730']"> - <xsl:call-template name="createTitleInfoFrom730"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag='242']"> - <titleInfo type="translated"> - <!--09/01/04 Added subfield $y--> - <xsl:for-each select="marc:subfield[@code='y']"> - <xsl:attribute name="lang"> - <xsl:value-of select="text()"/> - </xsl:attribute> - </xsl:for-each> - - <!-- AQ1.27 tmee/dlf --> - <xsl:variable name="title"> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:call-template name="subfieldSelect"> - <!-- 1/04 removed $h, b --> - <xsl:with-param name="codes">a</xsl:with-param> - </xsl:call-template> - </xsl:with-param> - </xsl:call-template> - </xsl:variable> - <xsl:variable name="titleChop"> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:value-of select="$title"/> - </xsl:with-param> - </xsl:call-template> - </xsl:variable> - <xsl:choose> - <xsl:when test="@ind2>0"> - <!-- 1.112 --> - <nonSort xml:space="preserve"><xsl:value-of select="substring($titleChop,1,@ind2)"/> </nonSort> - <title> - <xsl:value-of select="substring($titleChop,@ind2+1)"/> - </title> - </xsl:when> - <xsl:otherwise> - <title> - <xsl:value-of select="$titleChop"/> - </title> - </xsl:otherwise> - </xsl:choose> - - <!-- 1/04 fix --> - <xsl:call-template name="subtitle"/> - <xsl:call-template name="part"/> - </titleInfo> - </xsl:for-each> - - <!-- name --> - <!-- 1.108 --> - <xsl:for-each select="marc:datafield[@tag='100'][not(marc:subfield[@code='t'])]"> - <xsl:call-template name="createNameFrom100"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag='110'][not(marc:subfield[@code='t'])]"> - <xsl:call-template name="createNameFrom110"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag='111'][not(marc:subfield[@code='t'])]"> - <xsl:call-template name="createNameFrom111"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag='700'][not(marc:subfield[@code='t'])]"> - <xsl:call-template name="createNameFrom700"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag='710'][not(marc:subfield[@code='t'])]"> - <xsl:call-template name="createNameFrom710"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag='711'][not(marc:subfield[@code='t'])]"> - <xsl:call-template name="createNameFrom711"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag='720'][not(marc:subfield[@code='t'])]"> - <xsl:call-template name="createNameFrom720"/> - </xsl:for-each> - - <!--old 7XXs - <xsl:for-each select="marc:datafield[@tag='700'][not(marc:subfield[@code='t'])]"> - <name type="personal"> - <xsl:call-template name="nameABCDQ"/> - <xsl:call-template name="affiliation"/> - <xsl:call-template name="role"/> - </name> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag='710'][not(marc:subfield[@code='t'])]"> - <name type="corporate"> - <xsl:call-template name="nameABCDN"/> - <xsl:call-template name="role"/> - </name> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag='711'][not(marc:subfield[@code='t'])]"> - <name type="conference"> - <xsl:call-template name="nameACDEQ"/> - <xsl:call-template name="role"/> - </name> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag='720'][not(marc:subfield[@code='t'])]"> - <name> - <xsl:if test="@ind1=1"> - <xsl:attribute name="type"> - <xsl:text>personal</xsl:text> - </xsl:attribute> - </xsl:if> - <namePart> - <xsl:value-of select="marc:subfield[@code='a']"/> - </namePart> - <xsl:call-template name="role"/> - </name> - </xsl:for-each> ---> - - <typeOfResource> - <xsl:if test="$leader7='c'"> - <xsl:attribute name="collection">yes</xsl:attribute> - </xsl:if> - <xsl:if test="$leader6='d' or $leader6='f' or $leader6='p' or $leader6='t'"> - <xsl:attribute name="manuscript">yes</xsl:attribute> - </xsl:if> - <xsl:choose> - <xsl:when test="$leader6='a' or $leader6='t'">text</xsl:when> - <xsl:when test="$leader6='e' or $leader6='f'">cartographic</xsl:when> - <xsl:when test="$leader6='c' or $leader6='d'">notated music</xsl:when> - <xsl:when test="$leader6='i'">sound recording-nonmusical</xsl:when> - <xsl:when test="$leader6='j'">sound recording-musical</xsl:when> - <xsl:when test="$leader6='k'">still image</xsl:when> - <xsl:when test="$leader6='g'">moving image</xsl:when> - <xsl:when test="$leader6='r'">three dimensional object</xsl:when> - <xsl:when test="$leader6='m'">software, multimedia</xsl:when> - <xsl:when test="$leader6='p'">mixed material</xsl:when> - </xsl:choose> - </typeOfResource> - <xsl:if test="substring($controlField008,26,1)='d'"> - <genre authority="marcgt">globe</genre> - </xsl:if> - <xsl:if test="marc:controlfield[@tag='007'][substring(text(),1,1)='a'][substring(text(),2,1)='r']"> - <genre authority="marcgt">remote-sensing image</genre> - </xsl:if> - <xsl:if test="$typeOf008='MP'"> - <xsl:variable name="controlField008-25" select="substring($controlField008,26,1)"/> - <xsl:choose> - <xsl:when test="$controlField008-25='a' or $controlField008-25='b' or $controlField008-25='c' or marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2,1)='j']"> - <genre authority="marcgt">map</genre> - </xsl:when> - <xsl:when test="$controlField008-25='e' or marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2,1)='d']"> - <genre authority="marcgt">atlas</genre> - </xsl:when> - </xsl:choose> - </xsl:if> - <xsl:if test="$typeOf008='SE'"> - <xsl:variable name="controlField008-21" select="substring($controlField008,22,1)"/> - <xsl:choose> - <xsl:when test="$controlField008-21='d'"> - <genre authority="marcgt">database</genre> - </xsl:when> - <xsl:when test="$controlField008-21='l'"> - <genre authority="marcgt">loose-leaf</genre> - </xsl:when> - <xsl:when test="$controlField008-21='m'"> - <genre authority="marcgt">series</genre> - </xsl:when> - <xsl:when test="$controlField008-21='n'"> - <genre authority="marcgt">newspaper</genre> - </xsl:when> - <xsl:when test="$controlField008-21='p'"> - <genre authority="marcgt">periodical</genre> - </xsl:when> - <xsl:when test="$controlField008-21='w'"> - <genre authority="marcgt">web site</genre> - </xsl:when> - </xsl:choose> - </xsl:if> - <xsl:if test="$typeOf008='BK' or $typeOf008='SE'"> - <xsl:variable name="controlField008-24" select="substring($controlField008,25,4)"/> - <xsl:choose> - <xsl:when test="contains($controlField008-24,'a')"> - <genre authority="marcgt">abstract or summary</genre> - </xsl:when> - <xsl:when test="contains($controlField008-24,'b')"> - <genre authority="marcgt">bibliography</genre> - </xsl:when> - <xsl:when test="contains($controlField008-24,'c')"> - <genre authority="marcgt">catalog</genre> - </xsl:when> - <xsl:when test="contains($controlField008-24,'d')"> - <genre authority="marcgt">dictionary</genre> - </xsl:when> - <xsl:when test="contains($controlField008-24,'e')"> - <genre authority="marcgt">encyclopedia</genre> - </xsl:when> - <xsl:when test="contains($controlField008-24,'f')"> - <genre authority="marcgt">handbook</genre> - </xsl:when> - <xsl:when test="contains($controlField008-24,'g')"> - <genre authority="marcgt">legal article</genre> - </xsl:when> - <xsl:when test="contains($controlField008-24,'i')"> - <genre authority="marcgt">index</genre> - </xsl:when> - <xsl:when test="contains($controlField008-24,'k')"> - <genre authority="marcgt">discography</genre> - </xsl:when> - <xsl:when test="contains($controlField008-24,'l')"> - <genre authority="marcgt">legislation</genre> - </xsl:when> - <xsl:when test="contains($controlField008-24,'m')"> - <genre authority="marcgt">theses</genre> - </xsl:when> - <xsl:when test="contains($controlField008-24,'n')"> - <genre authority="marcgt">survey of literature</genre> - </xsl:when> - <xsl:when test="contains($controlField008-24,'o')"> - <genre authority="marcgt">review</genre> - </xsl:when> - <xsl:when test="contains($controlField008-24,'p')"> - <genre authority="marcgt">programmed text</genre> - </xsl:when> - <xsl:when test="contains($controlField008-24,'q')"> - <genre authority="marcgt">filmography</genre> - </xsl:when> - <xsl:when test="contains($controlField008-24,'r')"> - <genre authority="marcgt">directory</genre> - </xsl:when> - <xsl:when test="contains($controlField008-24,'s')"> - <genre authority="marcgt">statistics</genre> - </xsl:when> - <xsl:when test="contains($controlField008-24,'t')"> - <genre authority="marcgt">technical report</genre> - </xsl:when> - <xsl:when test="contains($controlField008-24,'v')"> - <genre authority="marcgt">legal case and case notes</genre> - </xsl:when> - <xsl:when test="contains($controlField008-24,'w')"> - <genre authority="marcgt">law report or digest</genre> - </xsl:when> - <xsl:when test="contains($controlField008-24,'z')"> - <genre authority="marcgt">treaty</genre> - </xsl:when> - </xsl:choose> - <xsl:variable name="controlField008-29" select="substring($controlField008,30,1)"/> - <xsl:choose> - <xsl:when test="$controlField008-29='1'"> - <genre authority="marcgt">conference publication</genre> - </xsl:when> - </xsl:choose> - </xsl:if> - <xsl:if test="$typeOf008='CF'"> - <xsl:variable name="controlField008-26" select="substring($controlField008,27,1)"/> - <xsl:choose> - <xsl:when test="$controlField008-26='a'"> - <genre authority="marcgt">numeric data</genre> - </xsl:when> - <xsl:when test="$controlField008-26='e'"> - <genre authority="marcgt">database</genre> - </xsl:when> - <xsl:when test="$controlField008-26='f'"> - <genre authority="marcgt">font</genre> - </xsl:when> - <xsl:when test="$controlField008-26='g'"> - <genre authority="marcgt">game</genre> - </xsl:when> - </xsl:choose> - </xsl:if> - <xsl:if test="$typeOf008='BK'"> - <xsl:if test="substring($controlField008,25,1)='j'"> - <genre authority="marcgt">patent</genre> - </xsl:if> - <xsl:if test="substring($controlField008,25,1)='2'"> - <genre authority="marcgt">offprint</genre> - </xsl:if> - <xsl:if test="substring($controlField008,31,1)='1'"> - <genre authority="marcgt">festschrift</genre> - </xsl:if> - <xsl:variable name="controlField008-34" select="substring($controlField008,35,1)"/> - <xsl:if test="$controlField008-34='a' or $controlField008-34='b' or $controlField008-34='c' or $controlField008-34='d'"> - <genre authority="marcgt">biography</genre> - </xsl:if> - <xsl:variable name="controlField008-33" select="substring($controlField008,34,1)"/> - <xsl:choose> - <xsl:when test="$controlField008-33='e'"> - <genre authority="marcgt">essay</genre> - </xsl:when> - <xsl:when test="$controlField008-33='d'"> - <genre authority="marcgt">drama</genre> - </xsl:when> - <xsl:when test="$controlField008-33='c'"> - <genre authority="marcgt">comic strip</genre> - </xsl:when> - <xsl:when test="$controlField008-33='l'"> - <genre authority="marcgt">fiction</genre> - </xsl:when> - <xsl:when test="$controlField008-33='h'"> - <genre authority="marcgt">humor, satire</genre> - </xsl:when> - <xsl:when test="$controlField008-33='i'"> - <genre authority="marcgt">letter</genre> - </xsl:when> - <xsl:when test="$controlField008-33='f'"> - <genre authority="marcgt">novel</genre> - </xsl:when> - <xsl:when test="$controlField008-33='j'"> - <genre authority="marcgt">short story</genre> - </xsl:when> - <xsl:when test="$controlField008-33='s'"> - <genre authority="marcgt">speech</genre> - </xsl:when> - </xsl:choose> - </xsl:if> - <xsl:if test="$typeOf008='MU'"> - <xsl:variable name="controlField008-30-31" select="substring($controlField008,31,2)"/> - <xsl:if test="contains($controlField008-30-31,'b')"> - <genre authority="marcgt">biography</genre> - </xsl:if> - <xsl:if test="contains($controlField008-30-31,'c')"> - <genre authority="marcgt">conference publication</genre> - </xsl:if> - <xsl:if test="contains($controlField008-30-31,'d')"> - <genre authority="marcgt">drama</genre> - </xsl:if> - <xsl:if test="contains($controlField008-30-31,'e')"> - <genre authority="marcgt">essay</genre> - </xsl:if> - <xsl:if test="contains($controlField008-30-31,'f')"> - <genre authority="marcgt">fiction</genre> - </xsl:if> - <xsl:if test="contains($controlField008-30-31,'o')"> - <genre authority="marcgt">folktale</genre> - </xsl:if> - <xsl:if test="contains($controlField008-30-31,'h')"> - <genre authority="marcgt">history</genre> - </xsl:if> - <xsl:if test="contains($controlField008-30-31,'k')"> - <genre authority="marcgt">humor, satire</genre> - </xsl:if> - <xsl:if test="contains($controlField008-30-31,'m')"> - <genre authority="marcgt">memoir</genre> - </xsl:if> - <xsl:if test="contains($controlField008-30-31,'p')"> - <genre authority="marcgt">poetry</genre> - </xsl:if> - <xsl:if test="contains($controlField008-30-31,'r')"> - <genre authority="marcgt">rehearsal</genre> - </xsl:if> - <xsl:if test="contains($controlField008-30-31,'g')"> - <genre authority="marcgt">reporting</genre> - </xsl:if> - <xsl:if test="contains($controlField008-30-31,'s')"> - <genre authority="marcgt">sound</genre> - </xsl:if> - <xsl:if test="contains($controlField008-30-31,'l')"> - <genre authority="marcgt">speech</genre> - </xsl:if> - </xsl:if> - <xsl:if test="$typeOf008='VM'"> - <xsl:variable name="controlField008-33" select="substring($controlField008,34,1)"/> - <xsl:choose> - <xsl:when test="$controlField008-33='a'"> - <genre authority="marcgt">art original</genre> - </xsl:when> - <xsl:when test="$controlField008-33='b'"> - <genre authority="marcgt">kit</genre> - </xsl:when> - <xsl:when test="$controlField008-33='c'"> - <genre authority="marcgt">art reproduction</genre> - </xsl:when> - <xsl:when test="$controlField008-33='d'"> - <genre authority="marcgt">diorama</genre> - </xsl:when> - <xsl:when test="$controlField008-33='f'"> - <genre authority="marcgt">filmstrip</genre> - </xsl:when> - <xsl:when test="$controlField008-33='g'"> - <genre authority="marcgt">legal article</genre> - </xsl:when> - <xsl:when test="$controlField008-33='i'"> - <genre authority="marcgt">picture</genre> - </xsl:when> - <xsl:when test="$controlField008-33='k'"> - <genre authority="marcgt">graphic</genre> - </xsl:when> - <xsl:when test="$controlField008-33='l'"> - <genre authority="marcgt">technical drawing</genre> - </xsl:when> - <xsl:when test="$controlField008-33='m'"> - <genre authority="marcgt">motion picture</genre> - </xsl:when> - <xsl:when test="$controlField008-33='n'"> - <genre authority="marcgt">chart</genre> - </xsl:when> - <xsl:when test="$controlField008-33='o'"> - <genre authority="marcgt">flash card</genre> - </xsl:when> - <xsl:when test="$controlField008-33='p'"> - <genre authority="marcgt">microscope slide</genre> - </xsl:when> - <xsl:when test="$controlField008-33='q' or marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2,1)='q']"> - <genre authority="marcgt">model</genre> - </xsl:when> - <xsl:when test="$controlField008-33='r'"> - <genre authority="marcgt">realia</genre> - </xsl:when> - <xsl:when test="$controlField008-33='s'"> - <genre authority="marcgt">slide</genre> - </xsl:when> - <xsl:when test="$controlField008-33='t'"> - <genre authority="marcgt">transparency</genre> - </xsl:when> - <xsl:when test="$controlField008-33='v'"> - <genre authority="marcgt">videorecording</genre> - </xsl:when> - <xsl:when test="$controlField008-33='w'"> - <genre authority="marcgt">toy</genre> - </xsl:when> - </xsl:choose> - </xsl:if> - -<!-- 111$n, 711$n 1.103 --> - - <xsl:if test="$typeOf008='BK'"> - <xsl:variable name="controlField008-28" select="substring($controlField008,29,1)"/> - <xsl:choose> - <xsl:when test="contains($controlField008-28,'a')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'c')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'f')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'m')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'i')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'l')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'m')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'o')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'s')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'u')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'z')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'|')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - </xsl:choose> - </xsl:if> - <xsl:if test="$typeOf008='CF'"> - <xsl:variable name="controlField008-28" select="substring($controlField008,29,1)"/> - <xsl:choose> - <xsl:when test="contains($controlField008-28,'a')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'c')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'f')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'m')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'i')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'l')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'m')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'o')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'s')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'u')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'z')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'|')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - </xsl:choose> - </xsl:if> - <xsl:if test="$typeOf008='CR'"> - <xsl:variable name="controlField008-28" select="substring($controlField008,29,1)"/> - <xsl:choose> - <xsl:when test="contains($controlField008-28,'a')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'c')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'f')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'m')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'i')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'l')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'m')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'o')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'s')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'u')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'z')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'|')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - </xsl:choose> - </xsl:if> - <xsl:if test="$typeOf008='MP'"> - <xsl:variable name="controlField008-28" select="substring($controlField008,29,1)"/> - <xsl:choose> - <xsl:when test="contains($controlField008-28,'a')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'c')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'f')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'m')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'i')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'l')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'m')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'o')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'s')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'u')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'z')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'|')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - </xsl:choose> - </xsl:if> - <xsl:if test="$typeOf008='VM'"> - <xsl:variable name="controlField008-28" select="substring($controlField008,29,1)"/> - <xsl:choose> - <xsl:when test="contains($controlField008-28,'a')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'c')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'f')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'m')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'i')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'l')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'m')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'o')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'s')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'u')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'z')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'|')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - </xsl:choose> - </xsl:if> - - - <!-- genre --> - - <xsl:for-each select="marc:datafield[@tag=047]"> - <xsl:call-template name="createGenreFrom047"/> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=336]"> - <xsl:call-template name="createGenreFrom336"/> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=655]"> - <xsl:call-template name="createGenreFrom655"/> - </xsl:for-each> - - <!-- originInfo 250 and 260 --> - - <originInfo> - <xsl:call-template name="scriptCode"/> - <xsl:for-each select="marc:datafield[(@tag=260 or @tag=250) and marc:subfield[@code='a' or code='b' or @code='c' or code='g']]"> - <xsl:call-template name="z2xx880"/> - </xsl:for-each> - - <xsl:variable name="MARCpublicationCode" select="normalize-space(substring($controlField008,16,3))"/> - <xsl:if test="translate($MARCpublicationCode,'|','')"> - <place> - <placeTerm> - <xsl:attribute name="type">code</xsl:attribute> - <xsl:attribute name="authority">marccountry</xsl:attribute> - <xsl:value-of select="$MARCpublicationCode"/> - </placeTerm> - </place> - </xsl:if> - <xsl:for-each select="marc:datafield[@tag=044]/marc:subfield[@code='c']"> - <place> - <placeTerm> - <xsl:attribute name="type">code</xsl:attribute> - <xsl:attribute name="authority">iso3166</xsl:attribute> - <xsl:value-of select="."/> - </placeTerm> - </place> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=260]/marc:subfield[@code='a']"> - <place> - <placeTerm> - <xsl:attribute name="type">text</xsl:attribute> - <xsl:call-template name="chopPunctuationFront"> - <xsl:with-param name="chopString"> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString" select="."/> - </xsl:call-template> - </xsl:with-param> - </xsl:call-template> - </placeTerm> - </place> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=046]/marc:subfield[@code='m']"> - <dateValid point="start"> - <xsl:value-of select="."/> - </dateValid> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=046]/marc:subfield[@code='n']"> - <dateValid point="end"> - <xsl:value-of select="."/> - </dateValid> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=046]/marc:subfield[@code='j']"> - <dateModified> - <xsl:value-of select="."/> - </dateModified> - </xsl:for-each> - - <!-- tmee 1.52 --> - - <xsl:for-each select="marc:datafield[@tag=046]/marc:subfield[@code='c']"> - <dateIssued encoding="marc" point="start"> - <xsl:value-of select="."/> - </dateIssued> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=046]/marc:subfield[@code='e']"> - <dateIssued encoding="marc" point="end"> - <xsl:value-of select="."/> - </dateIssued> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=046]/marc:subfield[@code='k']"> - <dateCreated encoding="marc" point="start"> - <xsl:value-of select="."/> - </dateCreated> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=046]/marc:subfield[@code='l']"> - <dateCreated encoding="marc" point="end"> - <xsl:value-of select="."/> - </dateCreated> - </xsl:for-each> - - <!-- tmee 1.35 1.36 dateIssued/nonMSS vs dateCreated/MSS --> - <xsl:for-each select="marc:datafield[@tag=260]/marc:subfield[@code='b' or @code='c' or @code='g']"> - <xsl:choose> - <xsl:when test="@code='b'"> - <publisher> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString" select="."/> - <xsl:with-param name="punctuation"> - <xsl:text>:,;/ </xsl:text> - </xsl:with-param> - </xsl:call-template> - </publisher> - </xsl:when> - <xsl:when test="(@code='c')"> - <xsl:if test="$leader6='d' or $leader6='f' or $leader6='p' or $leader6='t'"> - <dateCreated> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString" select="."/> - </xsl:call-template> - </dateCreated> - </xsl:if> - - <xsl:if test="not($leader6='d' or $leader6='f' or $leader6='p' or $leader6='t')"> - <dateIssued> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString" select="."/> - </xsl:call-template> - </dateIssued> - </xsl:if> - </xsl:when> - <xsl:when test="@code='g'"> - <xsl:if test="$leader6='d' or $leader6='f' or $leader6='p' or $leader6='t'"> - <dateCreated> - <xsl:value-of select="."/> - </dateCreated> - </xsl:if> - <xsl:if test="not($leader6='d' or $leader6='f' or $leader6='p' or $leader6='t')"> - <dateCreated> - <xsl:value-of select="."/> - </dateCreated> - </xsl:if> - </xsl:when> - </xsl:choose> - </xsl:for-each> - <xsl:variable name="dataField260c"> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString" select="marc:datafield[@tag=260]/marc:subfield[@code='c']"/> - </xsl:call-template> - </xsl:variable> - <xsl:variable name="controlField008-7-10" select="normalize-space(substring($controlField008, 8, 4))"/> - <xsl:variable name="controlField008-11-14" select="normalize-space(substring($controlField008, 12, 4))"/> - <xsl:variable name="controlField008-6" select="normalize-space(substring($controlField008, 7, 1))"/> - - - - <!-- tmee 1.35 and 1.36 and 1.84--> - - <xsl:if test="($controlField008-6='e' or $controlField008-6='p' or $controlField008-6='r' or $controlField008-6='s' or $controlField008-6='t') and ($leader6='d' or $leader6='f' or $leader6='p' or $leader6='t')"> - <xsl:if test="$controlField008-7-10 and ($controlField008-7-10 != $dataField260c)"> - <dateCreated encoding="marc"> - <xsl:value-of select="$controlField008-7-10"/> - </dateCreated> - </xsl:if> - </xsl:if> - - <xsl:if test="($controlField008-6='e' or $controlField008-6='p' or $controlField008-6='r' or $controlField008-6='s' or $controlField008-6='t') and not($leader6='d' or $leader6='f' or $leader6='p' or $leader6='t')"> - <xsl:if test="$controlField008-7-10 and ($controlField008-7-10 != $dataField260c)"> - <dateIssued encoding="marc"> - <xsl:value-of select="$controlField008-7-10"/></dateIssued> - </xsl:if> - </xsl:if> - - <xsl:if test="$controlField008-6='c' or $controlField008-6='d' or $controlField008-6='i' or $controlField008-6='k' or $controlField008-6='m' or $controlField008-6='u'"> - <xsl:if test="$controlField008-7-10"> - <dateIssued encoding="marc" point="start"> - <xsl:value-of select="$controlField008-7-10"/> - </dateIssued> - </xsl:if> - </xsl:if> - - <xsl:if test="$controlField008-6='c' or $controlField008-6='d' or $controlField008-6='i' or $controlField008-6='k' or $controlField008-6='m' or $controlField008-6='u'"> - <xsl:if test="$controlField008-11-14"> - <dateIssued encoding="marc" point="end"> - <xsl:value-of select="$controlField008-11-14"/> - </dateIssued> - </xsl:if> - </xsl:if> - - <xsl:if test="$controlField008-6='q'"> - <xsl:if test="$controlField008-7-10"> - <dateIssued encoding="marc" point="start" qualifier="questionable"> - <xsl:value-of select="$controlField008-7-10"/> - </dateIssued> - </xsl:if> - </xsl:if> - <xsl:if test="$controlField008-6='q'"> - <xsl:if test="$controlField008-11-14"> - <dateIssued encoding="marc" point="end" qualifier="questionable"> - <xsl:value-of select="$controlField008-11-14"/> - </dateIssued> - </xsl:if> - </xsl:if> - - - <!-- tmee 1.77 008-06 dateIssued for value 's' 1.89 removed 20130920 - <xsl:if test="$controlField008-6='s'"> - <xsl:if test="$controlField008-7-10"> - <dateIssued encoding="marc"> - <xsl:value-of select="$controlField008-7-10"/> - </dateIssued> - </xsl:if> - </xsl:if> - --> - - <xsl:if test="$controlField008-6='t'"> - <xsl:if test="$controlField008-11-14"> - <copyrightDate encoding="marc"> - <xsl:value-of select="$controlField008-11-14"/> - </copyrightDate> - </xsl:if> - </xsl:if> - <xsl:for-each select="marc:datafield[@tag=033][@ind1=0 or @ind1=1]/marc:subfield[@code='a']"> - <dateCaptured encoding="iso8601"> - <xsl:value-of select="."/> - </dateCaptured> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=033][@ind1=2]/marc:subfield[@code='a'][1]"> - <dateCaptured encoding="iso8601" point="start"> - <xsl:value-of select="."/> - </dateCaptured> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=033][@ind1=2]/marc:subfield[@code='a'][2]"> - <dateCaptured encoding="iso8601" point="end"> - <xsl:value-of select="."/> - </dateCaptured> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=250]/marc:subfield[@code='a']"> - <edition> - <xsl:value-of select="."/> - </edition> - </xsl:for-each> - <xsl:for-each select="marc:leader"> - <issuance> - <xsl:choose> - <xsl:when test="$leader7='a' or $leader7='c' or $leader7='d' or $leader7='m'">monographic</xsl:when> - <xsl:when test="$leader7='m' and ($leader19='a' or $leader19='b' or $leader19='c')">multipart monograph</xsl:when> - <!-- 1.106 20141218 --> - <xsl:when test="$leader7='m' and ($leader19=' ')">single unit</xsl:when> - <xsl:when test="$leader7='m' and ($leader19='#')">single unit</xsl:when> - <xsl:when test="$leader7='i'">integrating resource</xsl:when> - <xsl:when test="$leader7='b' or $leader7='s'">serial</xsl:when> - </xsl:choose> - </issuance> - </xsl:for-each> - - <!-- 1.96 20140422 --> - <xsl:for-each select="marc:datafield[@tag=310]|marc:datafield[@tag=321]"> - <frequency> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">ab</xsl:with-param> - </xsl:call-template> - </frequency> - </xsl:for-each> - - <!-- 1.67 1.72 updated fixed location issue 201308 1.86 --> - - <xsl:if test="$typeOf008='SE'"> - <xsl:for-each select="marc:controlfield[@tag=008]"> - <xsl:variable name="controlField008-18" select="substring($controlField008,19,1)"/> - <xsl:variable name="frequency"> - <frequency> - <xsl:choose> - <xsl:when test="$controlField008-18='a'">Annual</xsl:when> - <xsl:when test="$controlField008-18='b'">Bimonthly</xsl:when> - <xsl:when test="$controlField008-18='c'">Semiweekly</xsl:when> - <xsl:when test="$controlField008-18='d'">Daily</xsl:when> - <xsl:when test="$controlField008-18='e'">Biweekly</xsl:when> - <xsl:when test="$controlField008-18='f'">Semiannual</xsl:when> - <xsl:when test="$controlField008-18='g'">Biennial</xsl:when> - <xsl:when test="$controlField008-18='h'">Triennial</xsl:when> - <xsl:when test="$controlField008-18='i'">Three times a week</xsl:when> - <xsl:when test="$controlField008-18='j'">Three times a month</xsl:when> - <xsl:when test="$controlField008-18='k'">Continuously updated</xsl:when> - <xsl:when test="$controlField008-18='m'">Monthly</xsl:when> - <xsl:when test="$controlField008-18='q'">Quarterly</xsl:when> - <xsl:when test="$controlField008-18='s'">Semimonthly</xsl:when> - <xsl:when test="$controlField008-18='t'">Three times a year</xsl:when> - <xsl:when test="$controlField008-18='u'">Unknown</xsl:when> - <xsl:when test="$controlField008-18='w'">Weekly</xsl:when> - <!-- 1.106 20141218 --> - <xsl:when test="$controlField008-18=' '">Completely irregular</xsl:when> - <xsl:when test="$controlField008-18='#'">Completely irregular</xsl:when> - <xsl:otherwise/> - </xsl:choose> - </frequency> - </xsl:variable> - <xsl:if test="$frequency!=''"> - <frequency authority="marcfrequency"> - <xsl:value-of select="$frequency"/> - </frequency> - </xsl:if> - </xsl:for-each> - </xsl:if> - </originInfo> - - - <!-- originInfo - 264 --> - - <xsl:for-each select="marc:datafield[@tag=264][@ind2=0]"> - <originInfo eventType="production"> - <!-- Template checks for altRepGroup - 880 $6 --> - <xsl:call-template name="xxx880"/> - <place> - <placeTerm type="text"> - <xsl:value-of select="marc:subfield[@code='a']"/> - </placeTerm> - </place> - <publisher> - <xsl:value-of select="marc:subfield[@code='b']"/> - </publisher> - <dateOther type="production"> - <xsl:value-of select="marc:subfield[@code='c']"/> - </dateOther> - </originInfo> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=264][@ind2=1]"> - <originInfo eventType="publication"> - <!-- Template checks for altRepGroup - 880 $6 1.88 20130829 added chopPunc--> - <xsl:call-template name="xxx880"/> - <place> - <placeTerm type="text"> - <xsl:value-of select="marc:subfield[@code='a']"/> - </placeTerm> - </place> - <publisher> - <xsl:value-of select="marc:subfield[@code='b']"/> - </publisher> - <dateIssued> - <xsl:value-of select="marc:subfield[@code='c']"/> - </dateIssued> - </originInfo> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=264][@ind2=2]"> - <originInfo eventType="distribution"> - <!-- Template checks for altRepGroup - 880 $6 --> - <xsl:call-template name="xxx880"/> - <place> - <placeTerm type="text"> - <xsl:value-of select="marc:subfield[@code='a']"/> - </placeTerm> - </place> - <publisher> - <xsl:value-of select="marc:subfield[@code='b']"/> - </publisher> - <dateOther type="distribution"> - <xsl:value-of select="marc:subfield[@code='c']"/> - </dateOther> - </originInfo> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=264][@ind2=3]"> - <originInfo eventType="manufacture"> - <!-- Template checks for altRepGroup - 880 $6 --> - <xsl:call-template name="xxx880"/> - <place> - <placeTerm type="text"> - <xsl:value-of select="marc:subfield[@code='a']"/> - </placeTerm> - </place> - <publisher> - <xsl:value-of select="marc:subfield[@code='b']"/> - </publisher> - <dateOther type="manufacture"> - <xsl:value-of select="marc:subfield[@code='c']"/> - </dateOther> - </originInfo> - </xsl:for-each> - - - <xsl:for-each select="marc:datafield[@tag=880]"> - <xsl:variable name="related_datafield" select="substring-before(marc:subfield[@code='6'],'-')"/> - <xsl:variable name="occurence_number" select="substring( substring-after(marc:subfield[@code='6'],'-') , 1 , 2 )"/> - <xsl:variable name="hit" select="../marc:datafield[@tag=$related_datafield and contains(marc:subfield[@code='6'] , concat('880-' , $occurence_number))]/@tag"/> - - <xsl:choose> - <xsl:when test="$hit='260'"> - <originInfo> - <xsl:call-template name="scriptCode"/> - <xsl:for-each select="../marc:datafield[@tag=260 and marc:subfield[@code='a' or code='b' or @code='c' or code='g']]"> - <xsl:call-template name="z2xx880"/> - </xsl:for-each> - <xsl:if test="marc:subfield[@code='a']"> - <place> - <placeTerm type="text"> - <xsl:value-of select="marc:subfield[@code='a']"/> - </placeTerm> - </place> - </xsl:if> - <xsl:if test="marc:subfield[@code='b']"> - <publisher> - <xsl:value-of select="marc:subfield[@code='b']"/> - </publisher> - </xsl:if> - <xsl:if test="marc:subfield[@code='c']"> - <dateIssued> - <xsl:value-of select="marc:subfield[@code='c']"/> - </dateIssued> - </xsl:if> - <xsl:if test="marc:subfield[@code='g']"> - <dateCreated> - <xsl:value-of select="marc:subfield[@code='g']"/> - </dateCreated> - </xsl:if> - <xsl:for-each select="../marc:datafield[@tag=880]/marc:subfield[@code=6][contains(text(),'250')]"> - <edition> - <xsl:value-of select="following-sibling::marc:subfield"/> - </edition> - </xsl:for-each> - </originInfo> - </xsl:when> - <xsl:when test="$hit='300'"> - <physicalDescription> - <xsl:for-each select="../marc:datafield[@tag=300]"> - <xsl:call-template name="z3xx880"/> - </xsl:for-each> - <extent> - <xsl:for-each select="marc:subfield"> - <xsl:if test="@code='a' or @code='3' or @code='b' or @code='c'"> - <xsl:value-of select="."/> - <xsl:text> </xsl:text> - </xsl:if> - </xsl:for-each> - </extent> - <!-- form 337 338 --> - <form> - <xsl:attribute name="authority"> - <xsl:value-of select="marc:subfield[@code='2']"/> - </xsl:attribute> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">a</xsl:with-param> - </xsl:call-template> - </form> - </physicalDescription> - </xsl:when> - </xsl:choose> - </xsl:for-each> - - <!-- language 041 --> - <xsl:variable name="controlField008-35-37" select="normalize-space(translate(substring($controlField008,36,3),'|#',''))"/> - <xsl:if test="$controlField008-35-37"> - <language> - <languageTerm authority="iso639-2b" type="code"> - <xsl:value-of select="substring($controlField008,36,3)"/> - </languageTerm> - </language> - </xsl:if> - <xsl:for-each select="marc:datafield[@tag=041]"> - <xsl:for-each select="marc:subfield[@code='a' or @code='b' or @code='d' or @code='e' or @code='f' or @code='g' or @code='h']"> - <xsl:variable name="langCodes" select="."/> - <xsl:choose> - <xsl:when test="../marc:subfield[@code='2']='rfc3066'"> - <!-- not stacked but could be repeated --> - <xsl:call-template name="rfcLanguages"> - <xsl:with-param name="nodeNum"> - <xsl:value-of select="1"/> - </xsl:with-param> - <xsl:with-param name="usedLanguages"> - <xsl:text/> - </xsl:with-param> - <xsl:with-param name="controlField008-35-37"> - <xsl:value-of select="$controlField008-35-37"/> - </xsl:with-param> - </xsl:call-template> - </xsl:when> - <xsl:otherwise> - <!-- iso --> - <xsl:variable name="allLanguages"> - <xsl:copy-of select="$langCodes"/> - </xsl:variable> - <xsl:variable name="currentLanguage"> - <xsl:value-of select="substring($allLanguages,1,3)"/> - </xsl:variable> - <xsl:call-template name="isoLanguage"> - <xsl:with-param name="currentLanguage"> - <xsl:value-of select="substring($allLanguages,1,3)"/> - </xsl:with-param> - <xsl:with-param name="remainingLanguages"> - <xsl:value-of select="substring($allLanguages,4,string-length($allLanguages)-3)"/> - </xsl:with-param> - <xsl:with-param name="usedLanguages"> - <xsl:if test="$controlField008-35-37"> - <xsl:value-of select="$controlField008-35-37"/> - </xsl:if> - </xsl:with-param> - </xsl:call-template> - </xsl:otherwise> - </xsl:choose> - </xsl:for-each> - </xsl:for-each> - - <!-- physicalDescription --> - - <xsl:variable name="physicalDescription"> - <!--3.2 change tmee 007/11 --> - <xsl:if test="$typeOf008='CF' and marc:controlfield[@tag=007][substring(.,12,1)='a']"> - <digitalOrigin>reformatted digital</digitalOrigin> - </xsl:if> - <xsl:if test="$typeOf008='CF' and marc:controlfield[@tag=007][substring(.,12,1)='b']"> - <digitalOrigin>digitized microfilm</digitalOrigin> - </xsl:if> - <xsl:if test="$typeOf008='CF' and marc:controlfield[@tag=007][substring(.,12,1)='d']"> - <digitalOrigin>digitized other analog</digitalOrigin> - </xsl:if> - <xsl:variable name="controlField008-23" select="substring($controlField008,24,1)"/> - <xsl:variable name="controlField008-29" select="substring($controlField008,30,1)"/> - <xsl:variable name="check008-23"> - <xsl:if test="$typeOf008='BK' or $typeOf008='MU' or $typeOf008='SE' or $typeOf008='MM'"> - <xsl:value-of select="true()"/> - </xsl:if> - </xsl:variable> - <xsl:variable name="check008-29"> - <xsl:if test="$typeOf008='MP' or $typeOf008='VM'"> - <xsl:value-of select="true()"/> - </xsl:if> - </xsl:variable> - <xsl:choose> - <xsl:when test="($check008-23 and $controlField008-23='f') or ($check008-29 and $controlField008-29='f')"> - <form authority="marcform">braille</form> - </xsl:when> - <xsl:when test="($controlField008-23=' ' and ($leader6='c' or $leader6='d')) or (($typeOf008='BK' or $typeOf008='SE') and ($controlField008-23=' ' or $controlField008='r'))"> - <form authority="marcform">print</form> - </xsl:when> - <xsl:when test="$leader6 = 'm' or ($check008-23 and $controlField008-23='s') or ($check008-29 and $controlField008-29='s')"> - <form authority="marcform">electronic</form> - </xsl:when> - <!-- 1.33 --> - <xsl:when test="$leader6 = 'o'"> - <form authority="marcform">kit</form> - </xsl:when> - <xsl:when test="($check008-23 and $controlField008-23='b') or ($check008-29 and $controlField008-29='b')"> - <form authority="marcform">microfiche</form> - </xsl:when> - <xsl:when test="($check008-23 and $controlField008-23='a') or ($check008-29 and $controlField008-29='a')"> - <form authority="marcform">microfilm</form> - </xsl:when> - </xsl:choose> - - <!-- 1/04 fix --> - <xsl:if test="marc:datafield[@tag=130]/marc:subfield[@code='h']"> - <form authority="gmd"> - <xsl:call-template name="chopBrackets"> - <xsl:with-param name="chopString"> - <xsl:value-of select="marc:datafield[@tag=130]/marc:subfield[@code='h']"/> - </xsl:with-param> - </xsl:call-template> - </form> - </xsl:if> - <xsl:if test="marc:datafield[@tag=240]/marc:subfield[@code='h']"> - <form authority="gmd"> - <xsl:call-template name="chopBrackets"> - <xsl:with-param name="chopString"> - <xsl:value-of select="marc:datafield[@tag=240]/marc:subfield[@code='h']"/> - </xsl:with-param> - </xsl:call-template> - </form> - </xsl:if> - <xsl:if test="marc:datafield[@tag=242]/marc:subfield[@code='h']"> - <form authority="gmd"> - <xsl:call-template name="chopBrackets"> - <xsl:with-param name="chopString"> - <xsl:value-of select="marc:datafield[@tag=242]/marc:subfield[@code='h']"/> - </xsl:with-param> - </xsl:call-template> - </form> - </xsl:if> - <xsl:if test="marc:datafield[@tag=245]/marc:subfield[@code='h']"> - <form authority="gmd"> - <xsl:call-template name="chopBrackets"> - <xsl:with-param name="chopString"> - <xsl:value-of select="marc:datafield[@tag=245]/marc:subfield[@code='h']"/> - </xsl:with-param> - </xsl:call-template> - </form> - </xsl:if> - <xsl:if test="marc:datafield[@tag=246]/marc:subfield[@code='h']"> - <form authority="gmd"> - <xsl:call-template name="chopBrackets"> - <xsl:with-param name="chopString"> - <xsl:value-of select="marc:datafield[@tag=246]/marc:subfield[@code='h']"/> - </xsl:with-param> - </xsl:call-template> - </form> - </xsl:if> - <xsl:if test="marc:datafield[@tag=730]/marc:subfield[@code='h']"> - <form authority="gmd"> - <xsl:call-template name="chopBrackets"> - <xsl:with-param name="chopString"> - <xsl:value-of select="marc:datafield[@tag=730]/marc:subfield[@code='h']"/> - </xsl:with-param> - </xsl:call-template> - </form> - </xsl:if> - <xsl:for-each select="marc:datafield[@tag=256]/marc:subfield[@code='a']"> - <form> - <xsl:value-of select="."/> - </form> - </xsl:for-each> - <xsl:for-each select="marc:controlfield[@tag=007][substring(text(),1,1)='c']"> - <xsl:choose> - <xsl:when test="substring(text(),14,1)='a'"> - <reformattingQuality>access</reformattingQuality> - </xsl:when> - <xsl:when test="substring(text(),14,1)='p'"> - <reformattingQuality>preservation</reformattingQuality> - </xsl:when> - <xsl:when test="substring(text(),14,1)='r'"> - <reformattingQuality>replacement</reformattingQuality> - </xsl:when> - </xsl:choose> - </xsl:for-each> - <!--3.2 change tmee 007/01 --> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='c'][substring(text(),2,1)='b']"> - <form authority="marccategory">electronic resource</form> - <form authority="marcsmd">chip cartridge</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='c'][substring(text(),2,1)='c']"> - <form authority="marccategory">electronic resource</form> - <form authority="marcsmd">computer optical disc cartridge</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='c'][substring(text(),2,1)='j']"> - <form authority="marccategory">electronic resource</form> - <form authority="marcsmd">magnetic disc</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='c'][substring(text(),2,1)='m']"> - <form authority="marccategory">electronic resource</form> - <form authority="marcsmd">magneto-optical disc</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='c'][substring(text(),2,1)='o']"> - <form authority="marccategory">electronic resource</form> - <form authority="marcsmd">optical disc</form> - </xsl:if> - - <!-- 1.38 AQ 1.29 tmee 1.66 added marccategory and marcsmd as part of 3.4 --> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='c'][substring(text(),2,1)='r']"> - <form authority="marccategory">electronic resource</form> - <form authority="marcsmd">remote</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='c'][substring(text(),2,1)='a']"> - <form authority="marccategory">electronic resource</form> - <form authority="marcsmd">tape cartridge</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='c'][substring(text(),2,1)='f']"> - <form authority="marccategory">electronic resource</form> - <form authority="marcsmd">tape cassette</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='c'][substring(text(),2,1)='h']"> - <form authority="marccategory">electronic resource</form> - <form authority="marcsmd">tape reel</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='d'][substring(text(),2,1)='a']"> - <form authority="marccategory">globe</form> - <form authority="marcsmd">celestial globe</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='d'][substring(text(),2,1)='e']"> - <form authority="marccategory">globe</form> - <form authority="marcsmd">earth moon globe</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='d'][substring(text(),2,1)='b']"> - <form authority="marccategory">globe</form> - <form authority="marcsmd">planetary or lunar globe</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='d'][substring(text(),2,1)='c']"> - <form authority="marccategory">globe</form> - <form authority="marcsmd">terrestrial globe</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='o'][substring(text(),2,1)='o']"> - <form authority="marccategory">kit</form> - <form authority="marcsmd">kit</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2,1)='d']"> - <form authority="marccategory">map</form> - <form authority="marcsmd">atlas</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2,1)='g']"> - <form authority="marccategory">map</form> - <form authority="marcsmd">diagram</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2,1)='j']"> - <form authority="marccategory">map</form> - <form authority="marcsmd">map</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2,1)='q']"> - <form authority="marccategory">map</form> - <form authority="marcsmd">model</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2,1)='k']"> - <form authority="marccategory">map</form> - <form authority="marcsmd">profile</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2,1)='r']"> - <form authority="marcsmd">remote-sensing image</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2,1)='s']"> - <form authority="marccategory">map</form> - <form authority="marcsmd">section</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2,1)='y']"> - <form authority="marccategory">map</form> - <form authority="marcsmd">view</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='h'][substring(text(),2,1)='a']"> - <form authority="marccategory">microform</form> - <form authority="marcsmd">aperture card</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='h'][substring(text(),2,1)='e']"> - <form authority="marccategory">microform</form> - <form authority="marcsmd">microfiche</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='h'][substring(text(),2,1)='f']"> - <form authority="marccategory">microform</form> - <form authority="marcsmd">microfiche cassette</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='h'][substring(text(),2,1)='b']"> - <form authority="marccategory">microform</form> - <form authority="marcsmd">microfilm cartridge</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='h'][substring(text(),2,1)='c']"> - <form authority="marccategory">microform</form> - <form authority="marcsmd">microfilm cassette</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='h'][substring(text(),2,1)='d']"> - <form authority="marccategory">microform</form> - <form authority="marcsmd">microfilm reel</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='h'][substring(text(),2,1)='g']"> - <form authority="marccategory">microform</form> - <form authority="marcsmd">microopaque</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='m'][substring(text(),2,1)='c']"> - <form authority="marccategory">motion picture</form> - <form authority="marcsmd">film cartridge</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='m'][substring(text(),2,1)='f']"> - <form authority="marccategory">motion picture</form> - <form authority="marcsmd">film cassette</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='m'][substring(text(),2,1)='r']"> - <form authority="marccategory">motion picture</form> - <form authority="marcsmd">film reel</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='k'][substring(text(),2,1)='n']"> - <form authority="marccategory">nonprojected graphic</form> - <form authority="marcsmd">chart</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='k'][substring(text(),2,1)='c']"> - <form authority="marccategory">nonprojected graphic</form> - <form authority="marcsmd">collage</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='k'][substring(text(),2,1)='d']"> - <form authority="marccategory">nonprojected graphic</form> - <form authority="marcsmd">drawing</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='k'][substring(text(),2,1)='o']"> - <form authority="marccategory">nonprojected graphic</form> - <form authority="marcsmd">flash card</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='k'][substring(text(),2,1)='e']"> - <form authority="marccategory">nonprojected graphic</form> - <form authority="marcsmd">painting</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='k'][substring(text(),2,1)='f']"> - <form authority="marccategory">nonprojected graphic</form> - <form authority="marcsmd">photomechanical print</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='k'][substring(text(),2,1)='g']"> - <form authority="marccategory">nonprojected graphic</form> - <form authority="marcsmd">photonegative</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='k'][substring(text(),2,1)='h']"> - <form authority="marccategory">nonprojected graphic</form> - <form authority="marcsmd">photoprint</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='k'][substring(text(),2,1)='i']"> - <form authority="marccategory">nonprojected graphic</form> - <form authority="marcsmd">picture</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='k'][substring(text(),2,1)='j']"> - <form authority="marccategory">nonprojected graphic</form> - <form authority="marcsmd">print</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='k'][substring(text(),2,1)='l']"> - <form authority="marccategory">nonprojected graphic</form> - <form authority="marcsmd">technical drawing</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='q'][substring(text(),2,1)='q']"> - <form authority="marccategory">notated music</form> - <form authority="marcsmd">notated music</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='g'][substring(text(),2,1)='d']"> - <form authority="marccategory">projected graphic</form> - <form authority="marcsmd">filmslip</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='g'][substring(text(),2,1)='c']"> - <form authority="marccategory">projected graphic</form> - <form authority="marcsmd">filmstrip cartridge</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='g'][substring(text(),2,1)='o']"> - <form authority="marccategory">projected graphic</form> - <form authority="marcsmd">filmstrip roll</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='g'][substring(text(),2,1)='f']"> - <form authority="marccategory">projected graphic</form> - <form authority="marcsmd">other filmstrip type</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='g'][substring(text(),2,1)='s']"> - <form authority="marccategory">projected graphic</form> - <form authority="marcsmd">slide</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='g'][substring(text(),2,1)='t']"> - <form authority="marccategory">projected graphic</form> - <form authority="marcsmd">transparency</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='r'][substring(text(),2,1)='r']"> - <form authority="marccategory">remote-sensing image</form> - <form authority="marcsmd">remote-sensing image</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='s'][substring(text(),2,1)='e']"> - <form authority="marccategory">sound recording</form> - <form authority="marcsmd">cylinder</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='s'][substring(text(),2,1)='q']"> - <form authority="marccategory">sound recording</form> - <form authority="marcsmd">roll</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='s'][substring(text(),2,1)='g']"> - <form authority="marccategory">sound recording</form> - <form authority="marcsmd">sound cartridge</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='s'][substring(text(),2,1)='s']"> - <form authority="marccategory">sound recording</form> - <form authority="marcsmd">sound cassette</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='s'][substring(text(),2,1)='d']"> - <form authority="marccategory">sound recording</form> - <form authority="marcsmd">sound disc</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='s'][substring(text(),2,1)='t']"> - <form authority="marccategory">sound recording</form> - <form authority="marcsmd">sound-tape reel</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='s'][substring(text(),2,1)='i']"> - <form authority="marccategory">sound recording</form> - <form authority="marcsmd">sound-track film</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='s'][substring(text(),2,1)='w']"> - <form authority="marccategory">sound recording</form> - <form authority="marcsmd">wire recording</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='f'][substring(text(),2,1)='c']"> - <form authority="marccategory">tactile material</form> - <form authority="marcsmd">braille</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='f'][substring(text(),2,1)='b']"> - <form authority="marccategory">tactile material</form> - <form authority="marcsmd">combination</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='f'][substring(text(),2,1)='a']"> - <form authority="marccategory">tactile material</form> - <form authority="marcsmd">moon</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='f'][substring(text(),2,1)='d']"> - <form authority="marccategory">tactile material</form> - <form authority="marcsmd">tactile, with no writing system</form> - </xsl:if> - - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='t'][substring(text(),2,1)='c']"> - <form authority="marccategory">text</form> - <form authority="marcsmd">braille</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='t'][substring(text(),2,1)='b']"> - <form authority="marccategory">text</form> - <form authority="marcsmd">large print</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='t'][substring(text(),2,1)='a']"> - <form authority="marccategory">text</form> - <form authority="marcsmd">regular print</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='t'][substring(text(),2,1)='d']"> - <form authority="marccategory">text</form> - <form authority="marcsmd">text in looseleaf binder</form> - </xsl:if> - - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='v'][substring(text(),2,1)='c']"> - <form authority="marccategory">videorecording</form> - <form authority="marcsmd">videocartridge</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='v'][substring(text(),2,1)='f']"> - <form authority="marccategory">videorecording</form> - <form authority="marcsmd">videocassette</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='v'][substring(text(),2,1)='d']"> - <form authority="marccategory">videorecording</form> - <form authority="marcsmd">videodisc</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='v'][substring(text(),2,1)='r']"> - <form authority="marccategory">videorecording</form> - <form authority="marcsmd">videoreel</form> - </xsl:if> - - <xsl:for-each select="marc:datafield[@tag=856]/marc:subfield[@code='q'][string-length(.)>1]"> - <internetMediaType> - <xsl:value-of select="."/> - </internetMediaType> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=300]"> - <extent> - <xsl:if test="marc:subfield[@code='f']"> - <xsl:attribute name="unit"> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">f</xsl:with-param> - </xsl:call-template> - </xsl:attribute> - </xsl:if> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">abce3g</xsl:with-param> - </xsl:call-template> - </extent> - </xsl:for-each> - - - <xsl:for-each select="marc:datafield[@tag=337]"> - <form type="media"> - <xsl:attribute name="authority"> - <xsl:value-of select="marc:subfield[@code=2]"/> - </xsl:attribute> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">a</xsl:with-param> - </xsl:call-template> - </form> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=338]"> - <form type="carrier"> - <xsl:attribute name="authority"> - <xsl:value-of select="marc:subfield[@code=2]"/> - </xsl:attribute> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">a</xsl:with-param> - </xsl:call-template> - </form> - </xsl:for-each> - - - <!-- 1.43 tmee 351 $3$a$b$c--> - <xsl:for-each select="marc:datafield[@tag=351]"> - <note type="arrangement"> - <xsl:for-each select="marc:subfield[@code='3']"> - <xsl:value-of select="."/> - <xsl:text>: </xsl:text> - </xsl:for-each> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">abc</xsl:with-param> - </xsl:call-template> - </note> - </xsl:for-each> - - </xsl:variable> - - - <xsl:if test="string-length(normalize-space($physicalDescription))"> - <physicalDescription> - <xsl:for-each select="marc:datafield[@tag=300]"> - <!-- Template checks for altRepGroup - 880 $6 --> - <xsl:call-template name="z3xx880"/> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=337]"> - <!-- Template checks for altRepGroup - 880 $6 --> - <xsl:call-template name="xxx880"/> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=338]"> - <!-- Template checks for altRepGroup - 880 $6 --> - <xsl:call-template name="xxx880"/> - </xsl:for-each> - - <xsl:copy-of select="$physicalDescription"/> - </physicalDescription> - </xsl:if> - - - <xsl:for-each select="marc:datafield[@tag=520]"> - <xsl:call-template name="createAbstractFrom520"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=505]"> - <xsl:call-template name="createTOCFrom505"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=521]"> - <xsl:call-template name="createTargetAudienceFrom521"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=506]"> - <xsl:call-template name="createAccessConditionFrom506"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=540]"> - <xsl:call-template name="createAccessConditionFrom540"/> - </xsl:for-each> - - - <xsl:if test="$typeOf008='BK' or $typeOf008='CF' or $typeOf008='MU' or $typeOf008='VM'"> - <xsl:variable name="controlField008-22" select="substring($controlField008,23,1)"/> - <xsl:choose> - <!-- 01/04 fix --> - <xsl:when test="$controlField008-22='d'"> - <targetAudience authority="marctarget">adolescent</targetAudience> - </xsl:when> - <xsl:when test="$controlField008-22='e'"> - <targetAudience authority="marctarget">adult</targetAudience> - </xsl:when> - <xsl:when test="$controlField008-22='g'"> - <targetAudience authority="marctarget">general</targetAudience> - </xsl:when> - <xsl:when test="$controlField008-22='b' or $controlField008-22='c' or $controlField008-22='j'"> - <targetAudience authority="marctarget">juvenile</targetAudience> - </xsl:when> - <xsl:when test="$controlField008-22='a'"> - <targetAudience authority="marctarget">preschool</targetAudience> - </xsl:when> - <xsl:when test="$controlField008-22='f'"> - <targetAudience authority="marctarget">specialized</targetAudience> - </xsl:when> - </xsl:choose> - </xsl:if> - - <!-- 1.32 tmee Drop note mapping for 510 and map only to <relatedItem> - <xsl:for-each select="marc:datafield[@tag=510]"> - <note type="citation/reference"> - <xsl:call-template name="uri"/> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield[@code!='6' or @code!='8']"> - <xsl:value-of select="."/> - <xsl:text> </xsl:text> - </xsl:for-each> - </xsl:variable> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </note> - </xsl:for-each> - --> - - <!-- 245c 362az 502-585 5XX--> - - <xsl:for-each select="marc:datafield[@tag=245]"> - <xsl:call-template name="createNoteFrom245c"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=362]"> - <xsl:call-template name="createNoteFrom362"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=500]"> - <xsl:call-template name="createNoteFrom500"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=502]"> - <xsl:call-template name="createNoteFrom502"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=504]"> - <xsl:call-template name="createNoteFrom504"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=508]"> - <xsl:call-template name="createNoteFrom508"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=511]"> - <xsl:call-template name="createNoteFrom511"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=515]"> - <xsl:call-template name="createNoteFrom515"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=518]"> - <xsl:call-template name="createNoteFrom518"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=524]"> - <xsl:call-template name="createNoteFrom524"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=530]"> - <xsl:call-template name="createNoteFrom530"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=533]"> - <xsl:call-template name="createNoteFrom533"/> - </xsl:for-each> - <!-- - <xsl:for-each select="marc:datafield[@tag=534]"> - <xsl:call-template name="createNoteFrom534"/> - </xsl:for-each> ---> - - <xsl:for-each select="marc:datafield[@tag=535]"> - <xsl:call-template name="createNoteFrom535"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=536]"> - <xsl:call-template name="createNoteFrom536"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=538]"> - <xsl:call-template name="createNoteFrom538"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=541]"> - <xsl:call-template name="createNoteFrom541"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=545]"> - <xsl:call-template name="createNoteFrom545"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=546]"> - <xsl:call-template name="createNoteFrom546"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=561]"> - <xsl:call-template name="createNoteFrom561"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=562]"> - <xsl:call-template name="createNoteFrom562"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=581]"> - <xsl:call-template name="createNoteFrom581"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=583]"> - <xsl:call-template name="createNoteFrom583"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=585]"> - <xsl:call-template name="createNoteFrom585"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=501 or @tag=507 or @tag=513 or @tag=514 or @tag=516 or @tag=522 or @tag=525 or @tag=526 or @tag=544 or @tag=547 or @tag=550 or @tag=552 or @tag=555 or @tag=556 or @tag=565 or @tag=567 or @tag=580 or @tag=584 or @tag=586]"> - <xsl:call-template name="createNoteFrom5XX"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=034]"> - <xsl:call-template name="createSubGeoFrom034"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=043]"> - <xsl:call-template name="createSubGeoFrom043"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=045]"> - <xsl:call-template name="createSubTemFrom045"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=255]"> - <xsl:call-template name="createSubGeoFrom255"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=600]"> - <xsl:call-template name="createSubNameFrom600"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=610]"> - <xsl:call-template name="createSubNameFrom610"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=611]"> - <xsl:call-template name="createSubNameFrom611"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=630]"> - <xsl:call-template name="createSubTitleFrom630"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=648]"> - <xsl:call-template name="createSubChronFrom648"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=650]"> - <xsl:call-template name="createSubTopFrom650"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=651]"> - <xsl:call-template name="createSubGeoFrom651"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=653]"> - <xsl:call-template name="createSubFrom653"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=656]"> - <xsl:call-template name="createSubFrom656"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=662]"> - <xsl:call-template name="createSubGeoFrom662752"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=752]"> - <xsl:call-template name="createSubGeoFrom662752"/> - </xsl:for-each> - - <!-- createClassificationFrom 0XX--> - <xsl:for-each select="marc:datafield[@tag='050']"> - <xsl:call-template name="createClassificationFrom050"/> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag='060']"> - <xsl:call-template name="createClassificationFrom060"/> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag='080']"> - <xsl:call-template name="createClassificationFrom080"/> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag='082']"> - <xsl:call-template name="createClassificationFrom082"/> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag='084']"> - <xsl:call-template name="createClassificationFrom084"/> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag='086']"> - <xsl:call-template name="createClassificationFrom086"/> - </xsl:for-each> - - <!-- location --> - - <xsl:for-each select="marc:datafield[@tag=852]"> - <xsl:call-template name="createLocationFrom852"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=856]"> - <xsl:call-template name="createLocationFrom856"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=490][@ind1=0]"> - <xsl:call-template name="createRelatedItemFrom490"/> - </xsl:for-each> - - - <xsl:for-each select="marc:datafield[@tag=440]"> - <relatedItem type="series"> - <titleInfo> - <title> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">av</xsl:with-param> - </xsl:call-template> - </xsl:with-param> - </xsl:call-template> - </title> - <xsl:call-template name="part"/> - </titleInfo> - </relatedItem> - </xsl:for-each> - - <!-- tmee 1.40 1.74 1.88 fixed 510c mapping 20130829--> - - <xsl:for-each select="marc:datafield[@tag=510]"> - <relatedItem type="isReferencedBy"> - <xsl:for-each select="marc:subfield[@code='a']"> - <titleInfo> - <title> - <xsl:value-of select="."/> - </title> - </titleInfo> - </xsl:for-each> - <xsl:for-each select="marc:subfield[@code='b']"> - <originInfo> - <dateOther type="coverage"> - <xsl:value-of select="."/> - </dateOther> - </originInfo> - </xsl:for-each> - - <part> - <detail type="part"> - <number> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">c</xsl:with-param> - </xsl:call-template> - </xsl:with-param> - </xsl:call-template> - </number> - </detail> - </part> - </relatedItem> - </xsl:for-each> - - - <xsl:for-each select="marc:datafield[@tag=534]"> - <relatedItem type="original"> - <xsl:call-template name="relatedTitle"/> - <xsl:call-template name="relatedName"/> - <xsl:if test="marc:subfield[@code='b' or @code='c']"> - <originInfo> - <xsl:for-each select="marc:subfield[@code='c']"> - <publisher> - <xsl:value-of select="."/> - </publisher> - </xsl:for-each> - <xsl:for-each select="marc:subfield[@code='b']"> - <edition> - <xsl:value-of select="."/> - </edition> - </xsl:for-each> - </originInfo> - </xsl:if> - <xsl:call-template name="relatedIdentifierISSN"/> - <xsl:for-each select="marc:subfield[@code='z']"> - <identifier type="isbn"> - <xsl:value-of select="."/> - </identifier> - </xsl:for-each> - <xsl:call-template name="relatedNote"/> - </relatedItem> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=700][marc:subfield[@code='t']]"> - <relatedItem> - <!-- 1.115 --> - <xsl:if test="marc:subfield[@code='i']"> - <xsl:attribute name="otherType"><xsl:value-of select="marc:subfield[@code='i']"/></xsl:attribute> - </xsl:if> - <xsl:call-template name="constituentOrRelatedType"/> - <titleInfo> - <title> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:call-template name="specialSubfieldSelect"> - <xsl:with-param name="anyCodes">tfklmorsv</xsl:with-param> - <xsl:with-param name="axis">t</xsl:with-param> - <xsl:with-param name="afterCodes">g</xsl:with-param> - </xsl:call-template> - </xsl:with-param> - </xsl:call-template> - </title> - <xsl:call-template name="part"/> - </titleInfo> - <name type="personal"> - <namePart> - <xsl:call-template name="specialSubfieldSelect"> - <xsl:with-param name="anyCodes">aq</xsl:with-param> - <xsl:with-param name="axis">t</xsl:with-param> - <xsl:with-param name="beforeCodes">g</xsl:with-param> - </xsl:call-template> - </namePart> - <xsl:call-template name="termsOfAddress"/> - <xsl:call-template name="nameDate"/> - <xsl:call-template name="role"/> - </name> - <xsl:call-template name="relatedForm"/> - <xsl:call-template name="relatedIdentifierISSN"/> - </relatedItem> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=710][marc:subfield[@code='t']]"> - <relatedItem> - <!-- 1.115 --> - <xsl:if test="marc:subfield[@code='i']"> - <xsl:attribute name="otherType"><xsl:value-of select="marc:subfield[@code='i']"/></xsl:attribute> - </xsl:if> - <xsl:call-template name="constituentOrRelatedType"/> - <titleInfo> - <title> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:call-template name="specialSubfieldSelect"> - <xsl:with-param name="anyCodes">tfklmorsv</xsl:with-param> - <xsl:with-param name="axis">t</xsl:with-param> - <xsl:with-param name="afterCodes">dg</xsl:with-param> - </xsl:call-template> - </xsl:with-param> - </xsl:call-template> - </title> - <xsl:call-template name="relatedPartNumName"/> - </titleInfo> - <name type="corporate"> - <xsl:for-each select="marc:subfield[@code='a']"> - <namePart> - <xsl:value-of select="."/> - </namePart> - </xsl:for-each> - <xsl:for-each select="marc:subfield[@code='b']"> - <namePart> - <xsl:value-of select="."/> - </namePart> - </xsl:for-each> - <xsl:variable name="tempNamePart"> - <xsl:call-template name="specialSubfieldSelect"> - <xsl:with-param name="anyCodes">c</xsl:with-param> - <xsl:with-param name="axis">t</xsl:with-param> - <xsl:with-param name="beforeCodes">dgn</xsl:with-param> - </xsl:call-template> - </xsl:variable> - <xsl:if test="normalize-space($tempNamePart)"> - <namePart> - <xsl:value-of select="$tempNamePart"/> - </namePart> - </xsl:if> - <xsl:call-template name="role"/> - </name> - <xsl:call-template name="relatedForm"/> - <xsl:call-template name="relatedIdentifierISSN"/> - </relatedItem> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=711][marc:subfield[@code='t']]"> - <relatedItem> - <!-- 1.115 --> - <xsl:if test="marc:subfield[@code='i']"> - <xsl:attribute name="otherType"><xsl:value-of select="marc:subfield[@code='i']"/></xsl:attribute> - </xsl:if> - <xsl:call-template name="constituentOrRelatedType"/> - <titleInfo> - <title> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:call-template name="specialSubfieldSelect"> - <xsl:with-param name="anyCodes">tfklsv</xsl:with-param> - <xsl:with-param name="axis">t</xsl:with-param> - <xsl:with-param name="afterCodes">g</xsl:with-param> - </xsl:call-template> - </xsl:with-param> - </xsl:call-template> - </title> - <xsl:call-template name="relatedPartNumName"/> - </titleInfo> - <name type="conference"> - <namePart> - <xsl:call-template name="specialSubfieldSelect"> - <xsl:with-param name="anyCodes">aqdc</xsl:with-param> - <xsl:with-param name="axis">t</xsl:with-param> - <xsl:with-param name="beforeCodes">gn</xsl:with-param> - </xsl:call-template> - </namePart> - </name> - <xsl:call-template name="relatedForm"/> - <xsl:call-template name="relatedIdentifierISSN"/> - </relatedItem> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=730][@ind2=2]"> - <relatedItem> - <!-- 1.115 --> - <xsl:if test="marc:subfield[@code='i']"> - <xsl:attribute name="otherType"><xsl:value-of select="marc:subfield[@code='i']"/></xsl:attribute> - </xsl:if> - <xsl:call-template name="constituentOrRelatedType"/> - <titleInfo> - <title> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">adfgklmorsv</xsl:with-param> - </xsl:call-template> - </xsl:with-param> - </xsl:call-template> - </title> - <xsl:call-template name="part"/> - </titleInfo> - <xsl:call-template name="relatedForm"/> - <xsl:call-template name="relatedIdentifierISSN"/> - </relatedItem> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=740][@ind2=2]"> - <relatedItem> - <!-- 1.115 --> - <xsl:if test="marc:subfield[@code='i']"> - <xsl:attribute name="otherType"><xsl:value-of select="marc:subfield[@code='i']"/></xsl:attribute> - </xsl:if> - <xsl:call-template name="constituentOrRelatedType"/> - <titleInfo> - <title> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:value-of select="marc:subfield[@code='a']"/> - </xsl:with-param> - </xsl:call-template> - </title> - <xsl:call-template name="part"/> - </titleInfo> - <xsl:call-template name="relatedForm"/> - </relatedItem> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=760]"> - <relatedItem type="series"> - <!-- 1.115 --> - <xsl:if test="marc:subfield[@code='i']"> - <xsl:attribute name="otherType"><xsl:value-of select="marc:subfield[@code='i']"/></xsl:attribute> - </xsl:if> - <xsl:call-template name="relatedItem76X-78X"/> - </relatedItem> - </xsl:for-each> - - <!--AQ1.23 tmee/dlf --> - <xsl:for-each select="marc:datafield[@tag=762]"> - <relatedItem type="constituent"> - <!-- 1.115 --> - <xsl:if test="marc:subfield[@code='i']"> - <xsl:attribute name="otherType"><xsl:value-of select="marc:subfield[@code='i']"/></xsl:attribute> - </xsl:if> - <xsl:call-template name="relatedItem76X-78X"/> - </relatedItem> - </xsl:for-each> - - <!-- AQ1.5, AQ1.7 deleted tags 777 and 787 from the following select for relatedItem mapping --> - <!-- 1.45 and 1.46 - AQ1.24 and 1.25 tmee--> - <xsl:for-each select="marc:datafield[@tag=765]|marc:datafield[@tag=767]|marc:datafield[@tag=775]"> - <relatedItem type="otherVersion"> - <!-- 1.115 --> - <xsl:if test="marc:subfield[@code='i']"> - <xsl:attribute name="otherType"><xsl:value-of select="marc:subfield[@code='i']"/></xsl:attribute> - </xsl:if> - <xsl:call-template name="relatedItem76X-78X"/> - </relatedItem> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=770]|marc:datafield[@tag=774]"> - <relatedItem type="constituent"> - <!-- 1.115 --> - <xsl:if test="marc:subfield[@code='i']"> - <xsl:attribute name="otherType"><xsl:value-of select="marc:subfield[@code='i']"/></xsl:attribute> - </xsl:if> - <xsl:call-template name="relatedItem76X-78X"/> - </relatedItem> - </xsl:for-each> - - - <xsl:for-each select="marc:datafield[@tag=772]|marc:datafield[@tag=773]"> - <relatedItem type="host"> - <!-- 1.115 --> - <xsl:if test="marc:subfield[@code='i']"> - <xsl:attribute name="otherType"><xsl:value-of select="marc:subfield[@code='i']"/></xsl:attribute> - </xsl:if> - <xsl:call-template name="relatedItem76X-78X"/> - </relatedItem> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=776]"> - <relatedItem type="otherFormat"> - <!-- 1.115 --> - <xsl:if test="marc:subfield[@code='i']"> - <xsl:attribute name="otherType"><xsl:value-of select="marc:subfield[@code='i']"/></xsl:attribute> - </xsl:if> - <xsl:call-template name="relatedItem76X-78X"/> - </relatedItem> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=780]"> - <relatedItem type="preceding"> - <!-- 1.115 --> - <xsl:if test="marc:subfield[@code='i']"> - <xsl:attribute name="otherType"><xsl:value-of select="marc:subfield[@code='i']"/></xsl:attribute> - </xsl:if> - <xsl:call-template name="relatedItem76X-78X"/> - </relatedItem> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=785]"> - <relatedItem type="succeeding"> - <!-- 1.115 --> - <xsl:if test="marc:subfield[@code='i']"> - <xsl:attribute name="otherType"><xsl:value-of select="marc:subfield[@code='i']"/></xsl:attribute> - </xsl:if> - <xsl:call-template name="relatedItem76X-78X"/> - </relatedItem> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=786]"> - <relatedItem type="original"> - <!-- 1.115 --> - <xsl:if test="marc:subfield[@code='i']"> - <xsl:attribute name="otherType"><xsl:value-of select="marc:subfield[@code='i']"/></xsl:attribute> - </xsl:if> - <xsl:call-template name="relatedItem76X-78X"/> - </relatedItem> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=800]"> - <relatedItem type="series"> - <titleInfo> - <title> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:call-template name="specialSubfieldSelect"> - <xsl:with-param name="anyCodes">tfklmorsv</xsl:with-param> - <xsl:with-param name="axis">t</xsl:with-param> - <xsl:with-param name="afterCodes">g</xsl:with-param> - </xsl:call-template> - </xsl:with-param> - </xsl:call-template> - </title> - <xsl:call-template name="part"/> - </titleInfo> - <name type="personal"> - <namePart> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:call-template name="specialSubfieldSelect"> - <xsl:with-param name="anyCodes">aq</xsl:with-param> - <xsl:with-param name="axis">t</xsl:with-param> - <xsl:with-param name="beforeCodes">g</xsl:with-param> - </xsl:call-template> - </xsl:with-param> - </xsl:call-template> - </namePart> - <xsl:call-template name="termsOfAddress"/> - <xsl:call-template name="nameDate"/> - <xsl:call-template name="role"/> - </name> - <xsl:call-template name="relatedForm"/> - </relatedItem> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=810]"> - <relatedItem type="series"> - <titleInfo> - <title> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:call-template name="specialSubfieldSelect"> - <xsl:with-param name="anyCodes">tfklmorsv</xsl:with-param> - <xsl:with-param name="axis">t</xsl:with-param> - <xsl:with-param name="afterCodes">dg</xsl:with-param> - </xsl:call-template> - </xsl:with-param> - </xsl:call-template> - </title> - <xsl:call-template name="relatedPartNumName"/> - </titleInfo> - <name type="corporate"> - <xsl:for-each select="marc:subfield[@code='a']"> - <namePart> - <xsl:value-of select="."/> - </namePart> - </xsl:for-each> - <xsl:for-each select="marc:subfield[@code='b']"> - <namePart> - <xsl:value-of select="."/> - </namePart> - </xsl:for-each> - <namePart> - <xsl:call-template name="specialSubfieldSelect"> - <xsl:with-param name="anyCodes">c</xsl:with-param> - <xsl:with-param name="axis">t</xsl:with-param> - <xsl:with-param name="beforeCodes">dgn</xsl:with-param> - </xsl:call-template> - </namePart> - <xsl:call-template name="role"/> - </name> - <xsl:call-template name="relatedForm"/> - </relatedItem> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=811]"> - <relatedItem type="series"> - <titleInfo> - <title> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:call-template name="specialSubfieldSelect"> - <xsl:with-param name="anyCodes">tfklsv</xsl:with-param> - <xsl:with-param name="axis">t</xsl:with-param> - <xsl:with-param name="afterCodes">g</xsl:with-param> - </xsl:call-template> - </xsl:with-param> - </xsl:call-template> - </title> - <xsl:call-template name="relatedPartNumName"/> - </titleInfo> - <name type="conference"> - <namePart> - <xsl:call-template name="specialSubfieldSelect"> - <xsl:with-param name="anyCodes">aqdc</xsl:with-param> - <xsl:with-param name="axis">t</xsl:with-param> - <xsl:with-param name="beforeCodes">gn</xsl:with-param> - </xsl:call-template> - </namePart> - <xsl:call-template name="role"/> - </name> - <xsl:call-template name="relatedForm"/> - </relatedItem> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag='830']"> - <relatedItem type="series"> - <titleInfo> - <title> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">adfgklmorsv</xsl:with-param> - </xsl:call-template> - </xsl:with-param> - </xsl:call-template> - </title> - <xsl:call-template name="part"/> - </titleInfo> - <xsl:call-template name="relatedForm"/> - </relatedItem> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag='856'][@ind2='2']/marc:subfield[@code='q']"> - <relatedItem> - <internetMediaType> - <xsl:value-of select="."/> - </internetMediaType> - </relatedItem> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag='880']"> - <xsl:apply-templates select="self::*" mode="trans880"/> - </xsl:for-each> - - - <!-- 856, 020, 024, 022, 028, 010, 035, 037 --> - - <xsl:for-each select="marc:datafield[@tag='020']"> - <xsl:if test="marc:subfield[@code='a']"> - <identifier type="isbn"> - <xsl:value-of select="marc:subfield[@code='a']"/> - </identifier> - </xsl:if> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag='020']"> - <xsl:if test="marc:subfield[@code='z']"> - <identifier type="isbn" invalid="yes"> - <xsl:value-of select="marc:subfield[@code='z']"/> - </identifier> - </xsl:if> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag='024'][@ind1='0']"> - <xsl:if test="marc:subfield[@code='a']"> - <identifier type="isrc"> - <xsl:value-of select="marc:subfield[@code='a']"/> - </identifier> - </xsl:if> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag='024'][@ind1='2']"> - <xsl:if test="marc:subfield[@code='a']"> - <identifier type="ismn"> - <xsl:value-of select="marc:subfield[@code='a']"/> - </identifier> - </xsl:if> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag='024'][@ind1='4']"> - <identifier type="sici"> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">ab</xsl:with-param> - </xsl:call-template> - </identifier> - </xsl:for-each> - - <!-- 1.107 WS --> - <xsl:for-each select="marc:datafield[@tag='024'][@ind1='7']"> - <identifier> - <xsl:if test="marc:subfield[@code='2']"> - <xsl:attribute name="type"> - <xsl:value-of select="marc:subfield[@code='2']"/> - </xsl:attribute> - </xsl:if> - <xsl:value-of select="marc:subfield[@code='a']"/> - </identifier> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag='024'][@ind1='8']"> - <identifier> - <xsl:value-of select="marc:subfield[@code='a']"/> - </identifier> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag='022'][marc:subfield[@code='a']]"> - <xsl:if test="marc:subfield[@code='a']"> - <identifier type="issn"> - <xsl:value-of select="marc:subfield[@code='a']"/> - </identifier> - </xsl:if> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag='022'][marc:subfield[@code='z']]"> - <xsl:if test="marc:subfield[@code='z']"> - <identifier type="issn" invalid="yes"> - <xsl:value-of select="marc:subfield[@code='z']"/> - </identifier> - </xsl:if> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag='022'][marc:subfield[@code='y']]"> - <xsl:if test="marc:subfield[@code='y']"> - <identifier type="issn" invalid="yes"> - <xsl:value-of select="marc:subfield[@code='y']"/> - </identifier> - </xsl:if> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag='022'][marc:subfield[@code='l']]"> - <xsl:if test="marc:subfield[@code='l']"> - <identifier type="issn-l"> - <xsl:value-of select="marc:subfield[@code='l']"/> - </identifier> - </xsl:if> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag='022'][marc:subfield[@code='m']]"> - <xsl:if test="marc:subfield[@code='m']"> - <identifier type="issn-l" invalid="yes"> - <xsl:value-of select="marc:subfield[@code='m']"/> - </identifier> - </xsl:if> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag='010'][marc:subfield[@code='a']]"> - <identifier type="lccn"> - <xsl:value-of select="normalize-space(marc:subfield[@code='a'])"/> - </identifier> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag='010'][marc:subfield[@code='z']]"> - <identifier type="lccn" invalid="yes"> - <xsl:value-of select="normalize-space(marc:subfield[@code='z'])"/> - </identifier> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag='028']"> - <identifier> - <xsl:attribute name="type"> - <xsl:choose> - <xsl:when test="@ind1='0'">issue number</xsl:when> - <xsl:when test="@ind1='1'">matrix number</xsl:when> - <xsl:when test="@ind1='2'">music plate</xsl:when> - <xsl:when test="@ind1='3'">music publisher</xsl:when> - <xsl:when test="@ind1='4'">videorecording identifier</xsl:when> - </xsl:choose> - </xsl:attribute> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes"> - <xsl:choose> - <xsl:when test="@ind1='0'">ba</xsl:when> - <xsl:otherwise>ab</xsl:otherwise> - </xsl:choose> - </xsl:with-param> - </xsl:call-template> - </identifier> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag='035'][marc:subfield[@code='a'][contains(text(), '(OCoLC)')]]"> - <identifier type="oclc"> - <xsl:value-of select="normalize-space(substring-after(marc:subfield[@code='a'], '(OCoLC)'))"/> - </identifier> - </xsl:for-each> - - - <!-- 3.5 1.95 20140421 --> - <xsl:for-each select="marc:datafield[@tag='035'][marc:subfield[@code='a'][contains(text(), '(WlCaITV)')]]"> - <identifier type="WlCaITV"> - <xsl:value-of select="normalize-space(substring-after(marc:subfield[@code='a'], '(WlCaITV)'))"/> - </identifier> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag='037']"> - <identifier type="stock number"> - <xsl:if test="marc:subfield[@code='c']"> - <xsl:attribute name="displayLabel"> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">c</xsl:with-param> - </xsl:call-template> - </xsl:attribute> - </xsl:if> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">ab</xsl:with-param> - </xsl:call-template> - </identifier> - </xsl:for-each> - - - <!-- 1.51 tmee 20100129--> - <xsl:for-each select="marc:datafield[@tag='856'][marc:subfield[@code='u']]"> - <xsl:if test="starts-with(marc:subfield[@code='u'],'urn:hdl') or starts-with(marc:subfield[@code='u'],'hdl') or starts-with(marc:subfield[@code='u'],'http://hdl.loc.gov') "> - <identifier> - <xsl:attribute name="type"> - <xsl:if test="starts-with(marc:subfield[@code='u'],'urn:doi') or starts-with(marc:subfield[@code='u'],'doi')">doi</xsl:if> - <xsl:if test="starts-with(marc:subfield[@code='u'],'urn:hdl') or starts-with(marc:subfield[@code='u'],'hdl') or starts-with(marc:subfield[@code='u'],'http://hdl.loc.gov')">hdl</xsl:if> - </xsl:attribute> - <xsl:value-of select="concat('hdl:',substring-after(marc:subfield[@code='u'],'http://hdl.loc.gov/'))"/> - </identifier> - </xsl:if> - <xsl:if test="starts-with(marc:subfield[@code='u'],'urn:hdl') or starts-with(marc:subfield[@code='u'],'hdl')"> - <identifier type="hdl"> - <xsl:if test="marc:subfield[@code='y' or @code='3' or @code='z']"> - <xsl:attribute name="displayLabel"> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">y3z</xsl:with-param> - </xsl:call-template> - </xsl:attribute> - </xsl:if> - <xsl:value-of select="concat('hdl:',substring-after(marc:subfield[@code='u'],'http://hdl.loc.gov/'))"/> - </identifier> - </xsl:if> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=024][@ind1=1]"> - <identifier type="upc"> - <xsl:value-of select="marc:subfield[@code='a']"/> - </identifier> - </xsl:for-each> - - - <!-- 1.51 tmee 20100129 removed duplicate code 20131217 - <xsl:for-each select="marc:datafield[@tag='856'][marc:subfield[@code='u']]"> - <xsl:if - test="starts-with(marc:subfield[@code='u'],'urn:hdl') or starts-with(marc:subfield[@code='u'],'hdl') or starts-with(marc:subfield[@code='u'],'http://hdl.loc.gov') "> - <identifier> - <xsl:attribute name="type"> - <xsl:if - test="starts-with(marc:subfield[@code='u'],'urn:doi') or starts-with(marc:subfield[@code='u'],'doi')" - >doi</xsl:if> - <xsl:if - test="starts-with(marc:subfield[@code='u'],'urn:hdl') or starts-with(marc:subfield[@code='u'],'hdl') or starts-with(marc:subfield[@code='u'],'http://hdl.loc.gov')" - >hdl</xsl:if> - </xsl:attribute> - <xsl:value-of - select="concat('hdl:',substring-after(marc:subfield[@code='u'],'http://hdl.loc.gov/'))" - /> - </identifier> - </xsl:if> - - <xsl:if - test="starts-with(marc:subfield[@code='u'],'urn:hdl') or starts-with(marc:subfield[@code='u'],'hdl')"> - <identifier type="hdl"> - <xsl:if test="marc:subfield[@code='y' or @code='3' or @code='z']"> - <xsl:attribute name="displayLabel"> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">y3z</xsl:with-param> - </xsl:call-template> - </xsl:attribute> - </xsl:if> - <xsl:value-of - select="concat('hdl:',substring-after(marc:subfield[@code='u'],'http://hdl.loc.gov/'))" - /> - </identifier> - </xsl:if> - </xsl:for-each> - --> - - - <xsl:for-each select="marc:datafield[@tag=856][@ind2=2][marc:subfield[@code='u']]"> - <relatedItem> - <location> - <url> - <xsl:if test="marc:subfield[@code='y' or @code='3']"> - <xsl:attribute name="displayLabel"> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">y3</xsl:with-param> - </xsl:call-template> - </xsl:attribute> - </xsl:if> - <xsl:if test="marc:subfield[@code='z']"> - <xsl:attribute name="note"> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">z</xsl:with-param> - </xsl:call-template> - </xsl:attribute> - </xsl:if> - <xsl:value-of select="marc:subfield[@code='u']"/> - </url> - </location> - </relatedItem> - </xsl:for-each> - - <recordInfo> - <xsl:for-each select="marc:leader[substring($leader,19,1)='a']"> - <descriptionStandard>aacr</descriptionStandard> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=040]"> - <xsl:if test="marc:subfield[@code='e']"> - <descriptionStandard> - <xsl:value-of select="marc:subfield[@code='e']"/> - </descriptionStandard> - </xsl:if> - <recordContentSource authority="marcorg"> - <xsl:value-of select="marc:subfield[@code='a']"/> - </recordContentSource> - </xsl:for-each> - <xsl:for-each select="marc:controlfield[@tag=008]"> - <recordCreationDate encoding="marc"> - <xsl:value-of select="substring(.,1,6)"/> - </recordCreationDate> - </xsl:for-each> - - <xsl:for-each select="marc:controlfield[@tag=005]"> - <recordChangeDate encoding="iso8601"> - <xsl:value-of select="."/> - </recordChangeDate> - </xsl:for-each> - <xsl:for-each select="marc:controlfield[@tag=001]"> - <recordIdentifier> - <xsl:if test="../marc:controlfield[@tag=003]"> - <xsl:attribute name="source"> - <xsl:value-of select="../marc:controlfield[@tag=003]"/> - </xsl:attribute> - </xsl:if> - <xsl:value-of select="."/> - </recordIdentifier> - </xsl:for-each> - - <recordOrigin>Converted from MARCXML to MODS version 3.6 using MARC21slim2MODS3-6.xsl - (Revision 1.119 2018/06/21)</recordOrigin> - - <xsl:for-each select="marc:datafield[@tag=040]/marc:subfield[@code='b']"> - <languageOfCataloging> - <languageTerm authority="iso639-2b" type="code"> - <xsl:value-of select="."/> - </languageTerm> - </languageOfCataloging> - </xsl:for-each> - </recordInfo> - </xsl:template> - - <xsl:template name="displayForm"> - <xsl:for-each select="marc:subfield[@code='c']"> - <displayForm> - <xsl:value-of select="."/> - </displayForm> - </xsl:for-each> - </xsl:template> - <xsl:template name="affiliation"> - <xsl:for-each select="marc:subfield[@code='u']"> - <affiliation> - <xsl:value-of select="."/> - </affiliation> - </xsl:for-each> - </xsl:template> - <xsl:template name="uri"> - <xsl:for-each select="marc:subfield[@code='u']|marc:subfield[@code='0']"> - <xsl:attribute name="xlink:href"> - <xsl:value-of select="."/> - </xsl:attribute> - </xsl:for-each> - </xsl:template> - <xsl:template name="role"> - <xsl:for-each select="marc:subfield[@code='e']"> - <role> - <roleTerm type="text"> - <xsl:value-of select="."/> - </roleTerm> - </role> - </xsl:for-each> - <xsl:for-each select="marc:subfield[@code='4']"> - <role> - <roleTerm authority="marcrelator" type="code"> - <xsl:value-of select="."/> - </roleTerm> - </role> - </xsl:for-each> - </xsl:template> - <xsl:template name="part"> - <xsl:variable name="partNumber"> - <xsl:call-template name="specialSubfieldSelect"> - <xsl:with-param name="axis">n</xsl:with-param> - <xsl:with-param name="anyCodes">n</xsl:with-param> - <xsl:with-param name="afterCodes">fgkdlmor</xsl:with-param> - </xsl:call-template> - </xsl:variable> - <xsl:variable name="partName"> - <xsl:call-template name="specialSubfieldSelect"> - <xsl:with-param name="axis">p</xsl:with-param> - <xsl:with-param name="anyCodes">p</xsl:with-param> - <xsl:with-param name="afterCodes">fgkdlmor</xsl:with-param> - </xsl:call-template> - </xsl:variable> - <xsl:if test="string-length(normalize-space($partNumber))"> - <partNumber> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString" select="$partNumber"/> - </xsl:call-template> - </partNumber> - </xsl:if> - <xsl:if test="string-length(normalize-space($partName))"> - <partName> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString" select="$partName"/> - </xsl:call-template> - </partName> - </xsl:if> - </xsl:template> - <xsl:template name="relatedPart"> - <xsl:if test="@tag=773"> - <xsl:for-each select="marc:subfield[@code='g']"> - <part> - <text> - <xsl:value-of select="."/> - </text> - </part> - </xsl:for-each> - <xsl:for-each select="marc:subfield[@code='q']"> - <part> - <xsl:call-template name="parsePart"/> - </part> - </xsl:for-each> - </xsl:if> - </xsl:template> - <xsl:template name="relatedPartNumName"> - <xsl:variable name="partNumber"> - <xsl:call-template name="specialSubfieldSelect"> - <xsl:with-param name="axis">g</xsl:with-param> - <xsl:with-param name="anyCodes">g</xsl:with-param> - <xsl:with-param name="afterCodes">pst</xsl:with-param> - </xsl:call-template> - </xsl:variable> - <xsl:variable name="partName"> - <xsl:call-template name="specialSubfieldSelect"> - <xsl:with-param name="axis">p</xsl:with-param> - <xsl:with-param name="anyCodes">p</xsl:with-param> - <xsl:with-param name="afterCodes">fgkdlmor</xsl:with-param> - </xsl:call-template> - </xsl:variable> - <xsl:if test="string-length(normalize-space($partNumber))"> - <partNumber> - <xsl:value-of select="$partNumber"/> - </partNumber> - </xsl:if> - <xsl:if test="string-length(normalize-space($partName))"> - <partName> - <xsl:value-of select="$partName"/> - </partName> - </xsl:if> - </xsl:template> - <xsl:template name="relatedName"> - <xsl:for-each select="marc:subfield[@code='a']"> - <name> - <namePart> - <xsl:value-of select="."/> - </namePart> - </name> - </xsl:for-each> - </xsl:template> - <xsl:template name="relatedForm"> - <xsl:for-each select="marc:subfield[@code='h']"> - <physicalDescription> - <form> - <xsl:value-of select="."/> - </form> - </physicalDescription> - </xsl:for-each> - </xsl:template> - <xsl:template name="relatedExtent"> - <xsl:for-each select="marc:subfield[@code='h']"> - <physicalDescription> - <extent> - <xsl:value-of select="."/> - </extent> - </physicalDescription> - </xsl:for-each> - </xsl:template> - <xsl:template name="relatedNote"> - <xsl:for-each select="marc:subfield[@code='n']"> - <note> - <xsl:value-of select="."/> - </note> - </xsl:for-each> - </xsl:template> - <xsl:template name="relatedSubject"> - <xsl:for-each select="marc:subfield[@code='j']"> - <subject> - <temporal encoding="iso8601"> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString" select="."/> - </xsl:call-template> - </temporal> - </subject> - </xsl:for-each> - </xsl:template> - <xsl:template name="relatedIdentifierISSN"> - <xsl:for-each select="marc:subfield[@code='x']"> - <identifier type="issn"> - <xsl:value-of select="."/> - </identifier> - </xsl:for-each> - </xsl:template> - <xsl:template name="relatedIdentifierLocal"> - <xsl:for-each select="marc:subfield[@code='w']"> - <identifier type="local"> - <xsl:value-of select="."/> - </identifier> - </xsl:for-each> - </xsl:template> - <xsl:template name="relatedIdentifier"> - <xsl:for-each select="marc:subfield[@code='o']"> - <identifier> - <xsl:value-of select="."/> - </identifier> - </xsl:for-each> - </xsl:template> - - <!--tmee 1.40 510 isReferencedBy --> - <xsl:template name="relatedItem510"> - <xsl:call-template name="displayLabel"/> - <xsl:call-template name="relatedTitle76X-78X"/> - <xsl:call-template name="relatedName"/> - <xsl:call-template name="relatedOriginInfo510"/> - <xsl:call-template name="relatedLanguage"/> - <xsl:call-template name="relatedExtent"/> - <xsl:call-template name="relatedNote"/> - <xsl:call-template name="relatedSubject"/> - <xsl:call-template name="relatedIdentifier"/> - <xsl:call-template name="relatedIdentifierISSN"/> - <xsl:call-template name="relatedIdentifierLocal"/> - <xsl:call-template name="relatedPart"/> - </xsl:template> - <xsl:template name="relatedItem76X-78X"> - <xsl:call-template name="displayLabel"/> - <xsl:call-template name="relatedTitle76X-78X"/> - <xsl:call-template name="relatedName"/> - <xsl:call-template name="relatedOriginInfo"/> - <xsl:call-template name="relatedLanguage"/> - <xsl:call-template name="relatedExtent"/> - <xsl:call-template name="relatedNote"/> - <xsl:call-template name="relatedSubject"/> - <xsl:call-template name="relatedIdentifier"/> - <xsl:call-template name="relatedIdentifierISSN"/> - <xsl:call-template name="relatedIdentifierLocal"/> - <xsl:call-template name="relatedPart"/> - </xsl:template> - <xsl:template name="subjectGeographicZ"> - <geographic> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString" select="."/> - </xsl:call-template> - </geographic> - </xsl:template> - <xsl:template name="subjectTemporalY"> - <temporal> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString" select="."/> - </xsl:call-template> - </temporal> - </xsl:template> - <xsl:template name="subjectTopic"> - <topic> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString" select="."/> - </xsl:call-template> - </topic> - </xsl:template> - <!-- 3.2 change tmee 6xx $v genre --> - <xsl:template name="subjectGenre"> - <genre> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString" select="."/> - </xsl:call-template> - </genre> - </xsl:template> - - <xsl:template name="nameABCDN"> - <xsl:for-each select="marc:subfield[@code='a']"> - <namePart> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString" select="."/> - </xsl:call-template> - </namePart> - </xsl:for-each> - <xsl:for-each select="marc:subfield[@code='b']"> - <namePart> - <xsl:value-of select="."/> - </namePart> - </xsl:for-each> - <xsl:if test="marc:subfield[@code='c'] or marc:subfield[@code='d'] or marc:subfield[@code='n']"> - <namePart> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">cdn</xsl:with-param> - </xsl:call-template> - </namePart> - </xsl:if> - </xsl:template> - <xsl:template name="nameABCDQ"> - <namePart> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">aq</xsl:with-param> - </xsl:call-template> - </xsl:with-param> - <xsl:with-param name="punctuation"> - <xsl:text>:,;/ </xsl:text> - </xsl:with-param> - </xsl:call-template> - </namePart> - <xsl:call-template name="termsOfAddress"/> - <xsl:call-template name="nameDate"/> - </xsl:template> - <xsl:template name="nameACDEQ"> - <namePart> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">acdeq</xsl:with-param> - </xsl:call-template> - </namePart> - </xsl:template> - - <!--1.104 20141104--> - <xsl:template name="nameACDENQ"> - <namePart> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">acdenq</xsl:with-param> - </xsl:call-template> - </namePart> - </xsl:template> - - <!-- 1.116 --> - <xsl:template name="nameIdentifier"> - <xsl:if test="marc:subfield[@code='0']"> - <nameIdentifier> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">0</xsl:with-param> - </xsl:call-template> - </nameIdentifier> - </xsl:if> - </xsl:template> - - - <xsl:template name="constituentOrRelatedType"> - <xsl:if test="@ind2=2"> - <xsl:attribute name="type">constituent</xsl:attribute> - </xsl:if> - </xsl:template> - <xsl:template name="relatedTitle"> - <xsl:for-each select="marc:subfield[@code='t']"> - <titleInfo> - <title> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:value-of select="."/> - </xsl:with-param> - </xsl:call-template> - </title> - </titleInfo> - </xsl:for-each> - </xsl:template> - <xsl:template name="relatedTitle76X-78X"> - <xsl:for-each select="marc:subfield[@code='t']"> - <titleInfo> - <title> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:value-of select="."/> - </xsl:with-param> - </xsl:call-template> - </title> - <xsl:if test="marc:datafield[@tag!=773]and marc:subfield[@code='g']"> - <xsl:call-template name="relatedPartNumName"/> - </xsl:if> - </titleInfo> - </xsl:for-each> - <xsl:for-each select="marc:subfield[@code='p']"> - <titleInfo type="abbreviated"> - <title> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:value-of select="."/> - </xsl:with-param> - </xsl:call-template> - </title> - <xsl:if test="marc:datafield[@tag!=773]and marc:subfield[@code='g']"> - <xsl:call-template name="relatedPartNumName"/> - </xsl:if> - </titleInfo> - </xsl:for-each> - <xsl:for-each select="marc:subfield[@code='s']"> - <titleInfo type="uniform"> - <title> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:value-of select="."/> - </xsl:with-param> - </xsl:call-template> - </title> - <xsl:if test="marc:datafield[@tag!=773]and marc:subfield[@code='g']"> - <xsl:call-template name="relatedPartNumName"/> - </xsl:if> - </titleInfo> - </xsl:for-each> - </xsl:template> - <xsl:template name="relatedOriginInfo"> - <xsl:if test="marc:subfield[@code='b' or @code='d'] or marc:subfield[@code='f']"> - <originInfo> - <xsl:if test="@tag=775"> - <xsl:for-each select="marc:subfield[@code='f']"> - <place> - <placeTerm> - <xsl:attribute name="type">code</xsl:attribute> - <xsl:attribute name="authority">marcgac</xsl:attribute> - <xsl:value-of select="."/> - </placeTerm> - </place> - </xsl:for-each> - </xsl:if> - <xsl:for-each select="marc:subfield[@code='d']"> - <publisher> - <xsl:value-of select="."/> - </publisher> - </xsl:for-each> - <xsl:for-each select="marc:subfield[@code='b']"> - <edition> - <xsl:value-of select="."/> - </edition> - </xsl:for-each> - </originInfo> - </xsl:if> - </xsl:template> - - <!-- tmee 1.40 --> - - <xsl:template name="relatedOriginInfo510"> - <xsl:for-each select="marc:subfield[@code='b']"> - <originInfo> - <dateOther type="coverage"> - <xsl:value-of select="."/> - </dateOther> - </originInfo> - </xsl:for-each> - </xsl:template> - <xsl:template name="relatedLanguage"> - <xsl:for-each select="marc:subfield[@code='e']"> - <xsl:call-template name="getLanguage"> - <xsl:with-param name="langString"> - <xsl:value-of select="."/> - </xsl:with-param> - </xsl:call-template> - </xsl:for-each> - </xsl:template> - <xsl:template name="nameDate"> - <xsl:for-each select="marc:subfield[@code='d']"> - <namePart type="date"> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString" select="."/> - </xsl:call-template> - </namePart> - </xsl:for-each> - </xsl:template> - <xsl:template name="subjectAuthority"> - <xsl:if test="@ind2!=4"> - <xsl:if test="@ind2!=' '"> - <xsl:if test="@ind2!=8"> - <xsl:if test="@ind2!=9"> - <xsl:attribute name="authority"> - <xsl:choose> - <xsl:when test="@ind2=0">lcsh</xsl:when> - <xsl:when test="@ind2=1">lcshac</xsl:when> - <xsl:when test="@ind2=2">mesh</xsl:when> - <!-- 1/04 fix --> - <xsl:when test="@ind2=3">nal</xsl:when> - <xsl:when test="@ind2=5">csh</xsl:when> - <xsl:when test="@ind2=6">rvm</xsl:when> - <xsl:when test="@ind2=7"> - <xsl:value-of select="marc:subfield[@code='2']"/> - </xsl:when> - </xsl:choose> - </xsl:attribute> - </xsl:if> - </xsl:if> - </xsl:if> - </xsl:if> - </xsl:template> - <!-- 1.75 - fix --> - <xsl:template name="subject653Type"> - <xsl:if test="@ind2!=' '"> - <xsl:if test="@ind2!='0'"> - <xsl:if test="@ind2!='4'"> - <xsl:if test="@ind2!='5'"> - <xsl:if test="@ind2!='6'"> - <xsl:if test="@ind2!='7'"> - <xsl:if test="@ind2!='8'"> - <xsl:if test="@ind2!='9'"> - <xsl:attribute name="type"> - <xsl:choose> - <xsl:when test="@ind2=1">personal</xsl:when> - <xsl:when test="@ind2=2">corporate</xsl:when> - <xsl:when test="@ind2=3">conference</xsl:when> - </xsl:choose> - </xsl:attribute> - </xsl:if> - </xsl:if> - </xsl:if> - </xsl:if> - </xsl:if> - </xsl:if> - </xsl:if> - </xsl:if> - - - </xsl:template> - <xsl:template name="subjectAnyOrder"> - <xsl:for-each select="marc:subfield[@code='v' or @code='x' or @code='y' or @code='z']"> - <xsl:choose> - <xsl:when test="@code='v'"> - <xsl:call-template name="subjectGenre"/> - </xsl:when> - <xsl:when test="@code='x'"> - <xsl:call-template name="subjectTopic"/> - </xsl:when> - <xsl:when test="@code='y'"> - <xsl:call-template name="subjectTemporalY"/> - </xsl:when> - <xsl:when test="@code='z'"> - <xsl:call-template name="subjectGeographicZ"/> - </xsl:when> - </xsl:choose> - </xsl:for-each> - </xsl:template> - <xsl:template name="specialSubfieldSelect"> - <xsl:param name="anyCodes"/> - <xsl:param name="axis"/> - <xsl:param name="beforeCodes"/> - <xsl:param name="afterCodes"/> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield"> - <xsl:if test="contains($anyCodes, @code) or (contains($beforeCodes,@code) and following-sibling::marc:subfield[@code=$axis]) or (contains($afterCodes,@code) and preceding-sibling::marc:subfield[@code=$axis])"> - <xsl:value-of select="text()"/> - <xsl:text> </xsl:text> - </xsl:if> - </xsl:for-each> - </xsl:variable> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </xsl:template> - - - <xsl:template match="marc:datafield[@tag=656]"> - <subject> - <xsl:call-template name="xxx880"/> - <xsl:if test="marc:subfield[@code=2]"> - <xsl:attribute name="authority"> - <xsl:value-of select="marc:subfield[@code=2]"/> - </xsl:attribute> - </xsl:if> - <occupation> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:value-of select="marc:subfield[@code='a']"/> - </xsl:with-param> - </xsl:call-template> - </occupation> - </subject> - </xsl:template> - <xsl:template name="termsOfAddress"> - <xsl:if test="marc:subfield[@code='b' or @code='c']"> - <namePart type="termsOfAddress"> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">bc</xsl:with-param> - </xsl:call-template> - </xsl:with-param> - </xsl:call-template> - </namePart> - </xsl:if> - </xsl:template> - <xsl:template name="displayLabel"> - <xsl:if test="marc:subfield[@code='i']"> - <xsl:attribute name="displayLabel"> - <xsl:value-of select="marc:subfield[@code='i']"/> - </xsl:attribute> - </xsl:if> - <xsl:if test="marc:subfield[@code='3']"> - <xsl:attribute name="displayLabel"> - <xsl:value-of select="marc:subfield[@code='3']"/> - </xsl:attribute> - </xsl:if> - </xsl:template> - - <!-- isInvalid - <xsl:template name="isInvalid"> - <xsl:param name="type"/> - <xsl:if - test="marc:subfield[@code='z'] or marc:subfield[@code='y'] or marc:subfield[@code='m']"> - <identifier> - <xsl:attribute name="type"> - <xsl:value-of select="$type"/> - </xsl:attribute> - <xsl:attribute name="invalid"> - <xsl:text>yes</xsl:text> - </xsl:attribute> - <xsl:if test="marc:subfield[@code='z']"> - <xsl:value-of select="marc:subfield[@code='z']"/> - </xsl:if> - <xsl:if test="marc:subfield[@code='y']"> - <xsl:value-of select="marc:subfield[@code='y']"/> - </xsl:if> - <xsl:if test="marc:subfield[@code='m']"> - <xsl:value-of select="marc:subfield[@code='m']"/> - </xsl:if> - </identifier> - </xsl:if> - </xsl:template> - --> - <xsl:template name="subtitle"> - <xsl:if test="marc:subfield[@code='b']"> - <subTitle> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:value-of select="marc:subfield[@code='b']"/> - <!--<xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">b</xsl:with-param> - </xsl:call-template>--> - </xsl:with-param> - </xsl:call-template> - </subTitle> - </xsl:if> - </xsl:template> - <xsl:template name="script"> - <xsl:param name="scriptCode"/> - <xsl:attribute name="script"> - <xsl:choose> - <!-- ISO 15924 and CJK is a local code 20101123--> - <xsl:when test="$scriptCode='(3'">Arab</xsl:when> - <xsl:when test="$scriptCode='(4'">Arab</xsl:when> - <xsl:when test="$scriptCode='(B'">Latn</xsl:when> - <xsl:when test="$scriptCode='!E'">Latn</xsl:when> - <xsl:when test="$scriptCode='$1'">CJK</xsl:when> - <xsl:when test="$scriptCode='(N'">Cyrl</xsl:when> - <xsl:when test="$scriptCode='(Q'">Cyrl</xsl:when> - <xsl:when test="$scriptCode='(2'">Hebr</xsl:when> - <xsl:when test="$scriptCode='(S'">Grek</xsl:when> - </xsl:choose> - </xsl:attribute> - </xsl:template> - <xsl:template name="parsePart"> - <!-- assumes 773$q= 1:2:3<4 - with up to 3 levels and one optional start page - --> - <xsl:variable name="level1"> - <xsl:choose> - <xsl:when test="contains(text(),':')"> - <!-- 1:2 --> - <xsl:value-of select="substring-before(text(),':')"/> - </xsl:when> - <xsl:when test="not(contains(text(),':'))"> - <!-- 1 or 1<3 --> - <xsl:if test="contains(text(),'<')"> - <!-- 1<3 --> - <xsl:value-of select="substring-before(text(),'<')"/> - </xsl:if> - <xsl:if test="not(contains(text(),'<'))"> - <!-- 1 --> - <xsl:value-of select="text()"/> - </xsl:if> - </xsl:when> - </xsl:choose> - </xsl:variable> - <xsl:variable name="sici2"> - <xsl:choose> - <xsl:when test="starts-with(substring-after(text(),$level1),':')"> - <xsl:value-of select="substring(substring-after(text(),$level1),2)"/> - </xsl:when> - <xsl:otherwise> - <xsl:value-of select="substring-after(text(),$level1)"/> - </xsl:otherwise> - </xsl:choose> - </xsl:variable> - <xsl:variable name="level2"> - <xsl:choose> - <xsl:when test="contains($sici2,':')"> - <!-- 2:3<4 --> - <xsl:value-of select="substring-before($sici2,':')"/> - </xsl:when> - <xsl:when test="contains($sici2,'<')"> - <!-- 1: 2<4 --> - <xsl:value-of select="substring-before($sici2,'<')"/> - </xsl:when> - <xsl:otherwise> - <xsl:value-of select="$sici2"/> - <!-- 1:2 --> - </xsl:otherwise> - </xsl:choose> - </xsl:variable> - <xsl:variable name="sici3"> - <xsl:choose> - <xsl:when test="starts-with(substring-after($sici2,$level2),':')"> - <xsl:value-of select="substring(substring-after($sici2,$level2),2)"/> - </xsl:when> - <xsl:otherwise> - <xsl:value-of select="substring-after($sici2,$level2)"/> - </xsl:otherwise> - </xsl:choose> - </xsl:variable> - <xsl:variable name="level3"> - <xsl:choose> - <xsl:when test="contains($sici3,'<')"> - <!-- 2<4 --> - <xsl:value-of select="substring-before($sici3,'<')"/> - </xsl:when> - <xsl:otherwise> - <xsl:value-of select="$sici3"/> - <!-- 3 --> - </xsl:otherwise> - </xsl:choose> - </xsl:variable> - <xsl:variable name="page"> - <xsl:if test="contains(text(),'<')"> - <xsl:value-of select="substring-after(text(),'<')"/> - </xsl:if> - </xsl:variable> - <xsl:if test="$level1"> - <detail level="1"> - <number> - <xsl:value-of select="$level1"/> - </number> - </detail> - </xsl:if> - <xsl:if test="$level2"> - <detail level="2"> - <number> - <xsl:value-of select="$level2"/> - </number> - </detail> - </xsl:if> - <xsl:if test="$level3"> - <detail level="3"> - <number> - <xsl:value-of select="$level3"/> - </number> - </detail> - </xsl:if> - <xsl:if test="$page"> - <extent unit="page"> - <start> - <xsl:value-of select="$page"/> - </start> - </extent> - </xsl:if> - </xsl:template> - <xsl:template name="getLanguage"> - <xsl:param name="langString"/> - <xsl:param name="controlField008-35-37"/> - <xsl:variable name="length" select="string-length($langString)"/> - <xsl:choose> - <xsl:when test="$length=0"/> - <xsl:when test="$controlField008-35-37=substring($langString,1,3)"> - <xsl:call-template name="getLanguage"> - <xsl:with-param name="langString" select="substring($langString,4,$length)"/> - <xsl:with-param name="controlField008-35-37" select="$controlField008-35-37"/> - </xsl:call-template> - </xsl:when> - <xsl:otherwise> - <language> - <languageTerm authority="iso639-2b" type="code"> - <xsl:value-of select="substring($langString,1,3)"/> - </languageTerm> - </language> - <xsl:call-template name="getLanguage"> - <xsl:with-param name="langString" select="substring($langString,4,$length)"/> - <xsl:with-param name="controlField008-35-37" select="$controlField008-35-37"/> - </xsl:call-template> - </xsl:otherwise> - </xsl:choose> - </xsl:template> - <xsl:template name="isoLanguage"> - <xsl:param name="currentLanguage"/> - <xsl:param name="usedLanguages"/> - <xsl:param name="remainingLanguages"/> - <xsl:choose> - <xsl:when test="string-length($currentLanguage)=0"/> - <xsl:when test="not(contains($usedLanguages, $currentLanguage))"> - <language> - <xsl:if test="@code!='a'"> - <xsl:attribute name="objectPart"> - <xsl:choose> - <xsl:when test="@code='b'">summary or subtitle</xsl:when> - <xsl:when test="@code='d'">sung or spoken text</xsl:when> - <xsl:when test="@code='e'">libretto</xsl:when> - <xsl:when test="@code='f'">table of contents</xsl:when> - <xsl:when test="@code='g'">accompanying material</xsl:when> - <xsl:when test="@code='h'">translation</xsl:when> - </xsl:choose> - </xsl:attribute> - </xsl:if> - <languageTerm authority="iso639-2b" type="code"> - <xsl:value-of select="$currentLanguage"/> - </languageTerm> - </language> - <xsl:call-template name="isoLanguage"> - <xsl:with-param name="currentLanguage"> - <xsl:value-of select="substring($remainingLanguages,1,3)"/> - </xsl:with-param> - <xsl:with-param name="usedLanguages"> - <xsl:value-of select="concat($usedLanguages,$currentLanguage)"/> - </xsl:with-param> - <xsl:with-param name="remainingLanguages"> - <xsl:value-of select="substring($remainingLanguages,4,string-length($remainingLanguages))"/> - </xsl:with-param> - </xsl:call-template> - </xsl:when> - <xsl:otherwise> - <xsl:call-template name="isoLanguage"> - <xsl:with-param name="currentLanguage"> - <xsl:value-of select="substring($remainingLanguages,1,3)"/> - </xsl:with-param> - <xsl:with-param name="usedLanguages"> - <xsl:value-of select="concat($usedLanguages,$currentLanguage)"/> - </xsl:with-param> - <xsl:with-param name="remainingLanguages"> - <xsl:value-of select="substring($remainingLanguages,4,string-length($remainingLanguages))"/> - </xsl:with-param> - </xsl:call-template> - </xsl:otherwise> - </xsl:choose> - </xsl:template> - <xsl:template name="chopBrackets"> - <xsl:param name="chopString"/> - <xsl:variable name="string"> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString" select="$chopString"/> - </xsl:call-template> - </xsl:variable> - <xsl:if test="substring($string, 1,1)='['"> - <xsl:value-of select="substring($string,2, string-length($string)-2)"/> - </xsl:if> - <xsl:if test="substring($string, 1,1)!='['"> - <xsl:value-of select="$string"/> - </xsl:if> - </xsl:template> - <xsl:template name="rfcLanguages"> - <xsl:param name="nodeNum"/> - <xsl:param name="usedLanguages"/> - <xsl:param name="controlField008-35-37"/> - <xsl:variable name="currentLanguage" select="."/> - <xsl:choose> - <xsl:when test="not($currentLanguage)"/> - <xsl:when test="$currentLanguage!=$controlField008-35-37 and $currentLanguage!='rfc3066'"> - <xsl:if test="not(contains($usedLanguages,$currentLanguage))"> - <language> - <xsl:if test="@code!='a'"> - <xsl:attribute name="objectPart"> - <xsl:choose> - <xsl:when test="@code='b'">summary or subtitle</xsl:when> - <xsl:when test="@code='d'">sung or spoken text</xsl:when> - <xsl:when test="@code='e'">libretto</xsl:when> - <xsl:when test="@code='f'">table of contents</xsl:when> - <xsl:when test="@code='g'">accompanying material</xsl:when> - <xsl:when test="@code='h'">translation</xsl:when> - </xsl:choose> - </xsl:attribute> - </xsl:if> - <languageTerm authority="rfc3066" type="code"> - <xsl:value-of select="$currentLanguage"/> - </languageTerm> - </language> - </xsl:if> - </xsl:when> - <xsl:otherwise> </xsl:otherwise> - </xsl:choose> - </xsl:template> - - <!-- tmee added 20100106 for 045$b BC and CE date range info --> - <xsl:template name="dates045b"> - <xsl:param name="str"/> - <xsl:variable name="first-char" select="substring($str,1,1)"/> - <xsl:choose> - <xsl:when test="$first-char ='c'"> - <xsl:value-of select="concat ('-', substring($str, 2))"/> - </xsl:when> - <xsl:when test="$first-char ='d'"> - <xsl:value-of select="substring($str, 2)"/> - </xsl:when> - <xsl:otherwise> - <xsl:value-of select="$str"/> - </xsl:otherwise> - </xsl:choose> - </xsl:template> - - <xsl:template name="scriptCode"> - <xsl:variable name="sf06" select="normalize-space(child::marc:subfield[@code='6'])"/> - <xsl:variable name="sf06a" select="substring($sf06, 1, 3)"/> - <xsl:variable name="sf06b" select="substring($sf06, 5, 2)"/> - <xsl:variable name="sf06c" select="substring($sf06, 7)"/> - <xsl:variable name="scriptCode" select="substring($sf06, 8, 2)"/> - <xsl:if test="//marc:datafield/marc:subfield[@code='6']"> - <xsl:attribute name="script"> - <xsl:choose> - <xsl:when test="$scriptCode=''">Latn</xsl:when> - <xsl:when test="$scriptCode='(3'">Arab</xsl:when> - <xsl:when test="$scriptCode='(4'">Arab</xsl:when> - <xsl:when test="$scriptCode='(B'">Latn</xsl:when> - <xsl:when test="$scriptCode='!E'">Latn</xsl:when> - <xsl:when test="$scriptCode='$1'">CJK</xsl:when> - <xsl:when test="$scriptCode='(N'">Cyrl</xsl:when> - <xsl:when test="$scriptCode='(Q'">Cyrl</xsl:when> - <xsl:when test="$scriptCode='(2'">Hebr</xsl:when> - <xsl:when test="$scriptCode='(S'">Grek</xsl:when> - </xsl:choose> - </xsl:attribute> - </xsl:if> - </xsl:template> - - <!-- tmee 20100927 for 880s & corresponding fields 20101123 scriptCode --> - - <xsl:template name="xxx880"> - <xsl:if test="child::marc:subfield[@code='6']"> - <xsl:variable name="sf06" select="normalize-space(child::marc:subfield[@code='6'])"/> - <xsl:variable name="sf06a" select="substring($sf06, 1, 3)"/> - <xsl:variable name="sf06b" select="substring($sf06, 5, 2)"/> - <xsl:variable name="sf06c" select="substring($sf06, 7)"/> - <xsl:variable name="scriptCode" select="substring($sf06, 8, 2)"/> - <xsl:if test="//marc:datafield/marc:subfield[@code='6']"> - <xsl:attribute name="altRepGroup"> - <xsl:value-of select="$sf06b"/> - </xsl:attribute> - <xsl:attribute name="script"> - <xsl:choose> - <xsl:when test="$scriptCode=''">Latn</xsl:when> - <xsl:when test="$scriptCode='(3'">Arab</xsl:when> - <xsl:when test="$scriptCode='(4'">Arab</xsl:when> - <xsl:when test="$scriptCode='(B'">Latn</xsl:when> - <xsl:when test="$scriptCode='!E'">Latn</xsl:when> - <xsl:when test="$scriptCode='$1'">CJK</xsl:when> - <xsl:when test="$scriptCode='(N'">Cyrl</xsl:when> - <xsl:when test="$scriptCode='(Q'">Cyrl</xsl:when> - <xsl:when test="$scriptCode='(2'">Hebr</xsl:when> - <xsl:when test="$scriptCode='(S'">Grek</xsl:when> - </xsl:choose> - </xsl:attribute> - </xsl:if> - </xsl:if> - </xsl:template> - - <xsl:template name="yyy880"> - <xsl:if test="preceding-sibling::marc:subfield[@code='6']"> - <xsl:variable name="sf06" select="normalize-space(preceding-sibling::marc:subfield[@code='6'])"/> - <xsl:variable name="sf06a" select="substring($sf06, 1, 3)"/> - <xsl:variable name="sf06b" select="substring($sf06, 5, 2)"/> - <xsl:variable name="sf06c" select="substring($sf06, 7)"/> - <xsl:if test="//marc:datafield/marc:subfield[@code='6']"> - <xsl:attribute name="altRepGroup"> - <xsl:value-of select="$sf06b"/> - </xsl:attribute> - </xsl:if> - </xsl:if> - </xsl:template> - - <xsl:template name="z2xx880"> - <!-- Evaluating the 260 field --> - <xsl:variable name="x260"> - <xsl:choose> - <xsl:when test="@tag='260' and marc:subfield[@code='6']"> - <xsl:variable name="sf06260" select="normalize-space(child::marc:subfield[@code='6'])"/> - <xsl:variable name="sf06260a" select="substring($sf06260, 1, 3)"/> - <xsl:variable name="sf06260b" select="substring($sf06260, 5, 2)"/> - <xsl:variable name="sf06260c" select="substring($sf06260, 7)"/> - <xsl:value-of select="$sf06260b"/> - </xsl:when> - <xsl:when test="@tag='250' and ../marc:datafield[@tag='260']/marc:subfield[@code='6']"> - <xsl:variable name="sf06260" select="normalize-space(../marc:datafield[@tag='260']/marc:subfield[@code='6'])"/> - <xsl:variable name="sf06260a" select="substring($sf06260, 1, 3)"/> - <xsl:variable name="sf06260b" select="substring($sf06260, 5, 2)"/> - <xsl:variable name="sf06260c" select="substring($sf06260, 7)"/> - <xsl:value-of select="$sf06260b"/> - </xsl:when> - </xsl:choose> - </xsl:variable> - - <xsl:variable name="x250"> - <xsl:choose> - <xsl:when test="@tag='250' and marc:subfield[@code='6']"> - <xsl:variable name="sf06250" select="normalize-space(../marc:datafield[@tag='250']/marc:subfield[@code='6'])"/> - <xsl:variable name="sf06250a" select="substring($sf06250, 1, 3)"/> - <xsl:variable name="sf06250b" select="substring($sf06250, 5, 2)"/> - <xsl:variable name="sf06250c" select="substring($sf06250, 7)"/> - <xsl:value-of select="$sf06250b"/> - </xsl:when> - <xsl:when test="@tag='260' and ../marc:datafield[@tag='250']/marc:subfield[@code='6']"> - <xsl:variable name="sf06250" select="normalize-space(../marc:datafield[@tag='250']/marc:subfield[@code='6'])"/> - <xsl:variable name="sf06250a" select="substring($sf06250, 1, 3)"/> - <xsl:variable name="sf06250b" select="substring($sf06250, 5, 2)"/> - <xsl:variable name="sf06250c" select="substring($sf06250, 7)"/> - <xsl:value-of select="$sf06250b"/> - </xsl:when> - </xsl:choose> - </xsl:variable> - - <xsl:choose> - <xsl:when test="$x250!='' and $x260!=''"> - <xsl:attribute name="altRepGroup"> - <xsl:value-of select="concat($x250, $x260)"/> - </xsl:attribute> - </xsl:when> - <xsl:when test="$x250!=''"> - <xsl:attribute name="altRepGroup"> - <xsl:value-of select="$x250"/> - </xsl:attribute> - </xsl:when> - <xsl:when test="$x260!=''"> - <xsl:attribute name="altRepGroup"> - <xsl:value-of select="$x260"/> - </xsl:attribute> - </xsl:when> - </xsl:choose> - <xsl:if test="//marc:datafield/marc:subfield[@code='6']"> </xsl:if> - </xsl:template> - - <xsl:template name="z3xx880"> - <!-- Evaluating the 300 field --> - <xsl:variable name="x300"> - <xsl:choose> - <xsl:when test="@tag='300' and marc:subfield[@code='6']"> - <xsl:variable name="sf06300" select="normalize-space(child::marc:subfield[@code='6'])"/> - <xsl:variable name="sf06300a" select="substring($sf06300, 1, 3)"/> - <xsl:variable name="sf06300b" select="substring($sf06300, 5, 2)"/> - <xsl:variable name="sf06300c" select="substring($sf06300, 7)"/> - <xsl:value-of select="$sf06300b"/> - </xsl:when> - <xsl:when test="@tag='351' and ../marc:datafield[@tag='300']/marc:subfield[@code='6']"> - <xsl:variable name="sf06300" select="normalize-space(../marc:datafield[@tag='300']/marc:subfield[@code='6'])"/> - <xsl:variable name="sf06300a" select="substring($sf06300, 1, 3)"/> - <xsl:variable name="sf06300b" select="substring($sf06300, 5, 2)"/> - <xsl:variable name="sf06300c" select="substring($sf06300, 7)"/> - <xsl:value-of select="$sf06300b"/> - </xsl:when> - </xsl:choose> - </xsl:variable> - - <xsl:variable name="x351"> - <xsl:choose> - <xsl:when test="@tag='351' and marc:subfield[@code='6']"> - <xsl:variable name="sf06351" select="normalize-space(../marc:datafield[@tag='351']/marc:subfield[@code='6'])"/> - <xsl:variable name="sf06351a" select="substring($sf06351, 1, 3)"/> - <xsl:variable name="sf06351b" select="substring($sf06351, 5, 2)"/> - <xsl:variable name="sf06351c" select="substring($sf06351, 7)"/> - <xsl:value-of select="$sf06351b"/> - </xsl:when> - <xsl:when test="@tag='300' and ../marc:datafield[@tag='351']/marc:subfield[@code='6']"> - <xsl:variable name="sf06351" select="normalize-space(../marc:datafield[@tag='351']/marc:subfield[@code='6'])"/> - <xsl:variable name="sf06351a" select="substring($sf06351, 1, 3)"/> - <xsl:variable name="sf06351b" select="substring($sf06351, 5, 2)"/> - <xsl:variable name="sf06351c" select="substring($sf06351, 7)"/> - <xsl:value-of select="$sf06351b"/> - </xsl:when> - </xsl:choose> - </xsl:variable> - - <xsl:variable name="x337"> - <xsl:if test="@tag='337' and marc:subfield[@code='6']"> - <xsl:variable name="sf06337" select="normalize-space(child::marc:subfield[@code='6'])"/> - <xsl:variable name="sf06337a" select="substring($sf06337, 1, 3)"/> - <xsl:variable name="sf06337b" select="substring($sf06337, 5, 2)"/> - <xsl:variable name="sf06337c" select="substring($sf06337, 7)"/> - <xsl:value-of select="$sf06337b"/> - </xsl:if> - </xsl:variable> - <xsl:variable name="x338"> - <xsl:if test="@tag='338' and marc:subfield[@code='6']"> - <xsl:variable name="sf06338" select="normalize-space(child::marc:subfield[@code='6'])"/> - <xsl:variable name="sf06338a" select="substring($sf06338, 1, 3)"/> - <xsl:variable name="sf06338b" select="substring($sf06338, 5, 2)"/> - <xsl:variable name="sf06338c" select="substring($sf06338, 7)"/> - <xsl:value-of select="$sf06338b"/> - </xsl:if> - </xsl:variable> - - <xsl:choose> - <xsl:when test="$x351!='' and $x300!=''"> - <xsl:attribute name="altRepGroup"> - <xsl:value-of select="concat($x351, $x300, $x337, $x338)"/> - </xsl:attribute> - </xsl:when> - <xsl:when test="$x351!=''"> - <xsl:attribute name="altRepGroup"> - <xsl:value-of select="$x351"/> - </xsl:attribute> - </xsl:when> - <xsl:when test="$x300!=''"> - <xsl:attribute name="altRepGroup"> - <xsl:value-of select="$x300"/> - </xsl:attribute> - </xsl:when> - <xsl:when test="$x337!=''"> - <xsl:attribute name="altRepGroup"> - <xsl:value-of select="$x351"/> - </xsl:attribute> - </xsl:when> - <xsl:when test="$x338!=''"> - <xsl:attribute name="altRepGroup"> - <xsl:value-of select="$x300"/> - </xsl:attribute> - </xsl:when> - </xsl:choose> - <xsl:if test="//marc:datafield/marc:subfield[@code='6']"> </xsl:if> - </xsl:template> - - - - <xsl:template name="true880"> - <xsl:variable name="sf06" select="normalize-space(marc:subfield[@code='6'])"/> - <xsl:variable name="sf06a" select="substring($sf06, 1, 3)"/> - <xsl:variable name="sf06b" select="substring($sf06, 5, 2)"/> - <xsl:variable name="sf06c" select="substring($sf06, 7)"/> - <xsl:if test="//marc:datafield/marc:subfield[@code='6']"> - <xsl:attribute name="altRepGroup"> - <xsl:value-of select="$sf06b"/> - </xsl:attribute> - </xsl:if> - </xsl:template> - - <xsl:template match="marc:datafield" mode="trans880"> - <xsl:variable name="dataField880" select="//marc:datafield"/> - <xsl:variable name="sf06" select="normalize-space(marc:subfield[@code='6'])"/> - <xsl:variable name="sf06a" select="substring($sf06, 1, 3)"/> - <xsl:variable name="sf06b" select="substring($sf06, 4)"/> - <xsl:choose> - - <!--tranforms 880 equiv--> - - <xsl:when test="$sf06a='047'"> - <xsl:call-template name="createGenreFrom047"/> - </xsl:when> - <xsl:when test="$sf06a='336'"> - <xsl:call-template name="createGenreFrom336"/> - </xsl:when> - <xsl:when test="$sf06a='655'"> - <xsl:call-template name="createGenreFrom655"/> - </xsl:when> - - <xsl:when test="$sf06a='050'"> - <xsl:call-template name="createClassificationFrom050"/> - </xsl:when> - <xsl:when test="$sf06a='060'"> - <xsl:call-template name="createClassificationFrom060"/> - </xsl:when> - <xsl:when test="$sf06a='080'"> - <xsl:call-template name="createClassificationFrom080"/> - </xsl:when> - <xsl:when test="$sf06a='082'"> - <xsl:call-template name="createClassificationFrom082"/> - </xsl:when> - <xsl:when test="$sf06a='084'"> - <xsl:call-template name="createClassificationFrom080"/> - </xsl:when> - <xsl:when test="$sf06a='086'"> - <xsl:call-template name="createClassificationFrom082"/> - </xsl:when> - <xsl:when test="$sf06a='100'"> - <xsl:call-template name="createNameFrom100"/> - </xsl:when> - <xsl:when test="$sf06a='110'"> - <xsl:call-template name="createNameFrom110"/> - </xsl:when> - <xsl:when test="$sf06a='111'"> - <xsl:call-template name="createNameFrom110"/> - </xsl:when> - <xsl:when test="$sf06a='700'"> - <xsl:call-template name="createNameFrom700"/> - </xsl:when> - <xsl:when test="$sf06a='710'"> - <xsl:call-template name="createNameFrom710"/> - </xsl:when> - <xsl:when test="$sf06a='711'"> - <xsl:call-template name="createNameFrom710"/> - </xsl:when> - <xsl:when test="$sf06a='210'"> - <xsl:call-template name="createTitleInfoFrom210"/> - </xsl:when> - <xsl:when test="$sf06a='245'"> - <xsl:call-template name="createTitleInfoFrom245"/> - <xsl:call-template name="createNoteFrom245c"/> - </xsl:when> - <xsl:when test="$sf06a='246'"> - <xsl:call-template name="createTitleInfoFrom246"/> - </xsl:when> - <xsl:when test="$sf06a='240'"> - <xsl:call-template name="createTitleInfoFrom240"/> - </xsl:when> - <xsl:when test="$sf06a='740'"> - <xsl:call-template name="createTitleInfoFrom740"/> - </xsl:when> - - <xsl:when test="$sf06a='130'"> - <xsl:call-template name="createTitleInfoFrom130"/> - </xsl:when> - <xsl:when test="$sf06a='730'"> - <xsl:call-template name="createTitleInfoFrom730"/> - </xsl:when> - - <xsl:when test="$sf06a='505'"> - <xsl:call-template name="createTOCFrom505"/> - </xsl:when> - <xsl:when test="$sf06a='520'"> - <xsl:call-template name="createAbstractFrom520"/> - </xsl:when> - <xsl:when test="$sf06a='521'"> - <xsl:call-template name="createTargetAudienceFrom521"/> - </xsl:when> - <xsl:when test="$sf06a='506'"> - <xsl:call-template name="createAccessConditionFrom506"/> - </xsl:when> - <xsl:when test="$sf06a='540'"> - <xsl:call-template name="createAccessConditionFrom540"/> - </xsl:when> - - <!-- note 245 362 etc --> - - <xsl:when test="$sf06a='245'"> - <xsl:call-template name="createNoteFrom245c"/> - </xsl:when> - <xsl:when test="$sf06a='362'"> - <xsl:call-template name="createNoteFrom362"/> - </xsl:when> - <xsl:when test="$sf06a='502'"> - <xsl:call-template name="createNoteFrom502"/> - </xsl:when> - <xsl:when test="$sf06a='504'"> - <xsl:call-template name="createNoteFrom504"/> - </xsl:when> - <xsl:when test="$sf06a='508'"> - <xsl:call-template name="createNoteFrom508"/> - </xsl:when> - <xsl:when test="$sf06a='511'"> - <xsl:call-template name="createNoteFrom511"/> - </xsl:when> - <xsl:when test="$sf06a='515'"> - <xsl:call-template name="createNoteFrom515"/> - </xsl:when> - <xsl:when test="$sf06a='518'"> - <xsl:call-template name="createNoteFrom518"/> - </xsl:when> - <xsl:when test="$sf06a='524'"> - <xsl:call-template name="createNoteFrom524"/> - </xsl:when> - <xsl:when test="$sf06a='530'"> - <xsl:call-template name="createNoteFrom530"/> - </xsl:when> - <xsl:when test="$sf06a='533'"> - <xsl:call-template name="createNoteFrom533"/> - </xsl:when> - <!-- - <xsl:when test="$sf06a='534'"> - <xsl:call-template name="createNoteFrom534"/> - </xsl:when> ---> - <xsl:when test="$sf06a='535'"> - <xsl:call-template name="createNoteFrom535"/> - </xsl:when> - <xsl:when test="$sf06a='536'"> - <xsl:call-template name="createNoteFrom536"/> - </xsl:when> - <xsl:when test="$sf06a='538'"> - <xsl:call-template name="createNoteFrom538"/> - </xsl:when> - <xsl:when test="$sf06a='541'"> - <xsl:call-template name="createNoteFrom541"/> - </xsl:when> - <xsl:when test="$sf06a='545'"> - <xsl:call-template name="createNoteFrom545"/> - </xsl:when> - <xsl:when test="$sf06a='546'"> - <xsl:call-template name="createNoteFrom546"/> - </xsl:when> - <xsl:when test="$sf06a='561'"> - <xsl:call-template name="createNoteFrom561"/> - </xsl:when> - <xsl:when test="$sf06a='562'"> - <xsl:call-template name="createNoteFrom562"/> - </xsl:when> - <xsl:when test="$sf06a='581'"> - <xsl:call-template name="createNoteFrom581"/> - </xsl:when> - <xsl:when test="$sf06a='583'"> - <xsl:call-template name="createNoteFrom583"/> - </xsl:when> - <xsl:when test="$sf06a='585'"> - <xsl:call-template name="createNoteFrom585"/> - </xsl:when> - - <!-- note 5XX --> - - <xsl:when test="$sf06a='501'"> - <xsl:call-template name="createNoteFrom5XX"/> - </xsl:when> - <xsl:when test="$sf06a='507'"> - <xsl:call-template name="createNoteFrom5XX"/> - </xsl:when> - <xsl:when test="$sf06a='513'"> - <xsl:call-template name="createNoteFrom5XX"/> - </xsl:when> - <xsl:when test="$sf06a='514'"> - <xsl:call-template name="createNoteFrom5XX"/> - </xsl:when> - <xsl:when test="$sf06a='516'"> - <xsl:call-template name="createNoteFrom5XX"/> - </xsl:when> - <xsl:when test="$sf06a='522'"> - <xsl:call-template name="createNoteFrom5XX"/> - </xsl:when> - <xsl:when test="$sf06a='525'"> - <xsl:call-template name="createNoteFrom5XX"/> - </xsl:when> - <xsl:when test="$sf06a='526'"> - <xsl:call-template name="createNoteFrom5XX"/> - </xsl:when> - <xsl:when test="$sf06a='544'"> - <xsl:call-template name="createNoteFrom5XX"/> - </xsl:when> - <xsl:when test="$sf06a='552'"> - <xsl:call-template name="createNoteFrom5XX"/> - </xsl:when> - <xsl:when test="$sf06a='555'"> - <xsl:call-template name="createNoteFrom5XX"/> - </xsl:when> - <xsl:when test="$sf06a='556'"> - <xsl:call-template name="createNoteFrom5XX"/> - </xsl:when> - <xsl:when test="$sf06a='565'"> - <xsl:call-template name="createNoteFrom5XX"/> - </xsl:when> - <xsl:when test="$sf06a='567'"> - <xsl:call-template name="createNoteFrom5XX"/> - </xsl:when> - <xsl:when test="$sf06a='580'"> - <xsl:call-template name="createNoteFrom5XX"/> - </xsl:when> - <xsl:when test="$sf06a='584'"> - <xsl:call-template name="createNoteFrom5XX"/> - </xsl:when> - <xsl:when test="$sf06a='586'"> - <xsl:call-template name="createNoteFrom5XX"/> - </xsl:when> - - <!-- subject 034 043 045 255 656 662 752 --> - - <xsl:when test="$sf06a='034'"> - <xsl:call-template name="createSubGeoFrom034"/> - </xsl:when> - <xsl:when test="$sf06a='043'"> - <xsl:call-template name="createSubGeoFrom043"/> - </xsl:when> - <xsl:when test="$sf06a='045'"> - <xsl:call-template name="createSubTemFrom045"/> - </xsl:when> - <xsl:when test="$sf06a='255'"> - <xsl:call-template name="createSubGeoFrom255"/> - </xsl:when> - - <xsl:when test="$sf06a='600'"> - <xsl:call-template name="createSubNameFrom600"/> - </xsl:when> - <xsl:when test="$sf06a='610'"> - <xsl:call-template name="createSubNameFrom610"/> - </xsl:when> - <xsl:when test="$sf06a='611'"> - <xsl:call-template name="createSubNameFrom611"/> - </xsl:when> - - <xsl:when test="$sf06a='630'"> - <xsl:call-template name="createSubTitleFrom630"/> - </xsl:when> - - <xsl:when test="$sf06a='648'"> - <xsl:call-template name="createSubChronFrom648"/> - </xsl:when> - <xsl:when test="$sf06a='650'"> - <xsl:call-template name="createSubTopFrom650"/> - </xsl:when> - <xsl:when test="$sf06a='651'"> - <xsl:call-template name="createSubGeoFrom651"/> - </xsl:when> - - - <xsl:when test="$sf06a='653'"> - <xsl:call-template name="createSubFrom653"/> - </xsl:when> - <xsl:when test="$sf06a='656'"> - <xsl:call-template name="createSubFrom656"/> - </xsl:when> - <xsl:when test="$sf06a='662'"> - <xsl:call-template name="createSubGeoFrom662752"/> - </xsl:when> - <xsl:when test="$sf06a='752'"> - <xsl:call-template name="createSubGeoFrom662752"/> - </xsl:when> - - <!-- location 852 856 --> - - <xsl:when test="$sf06a='852'"> - <xsl:call-template name="createLocationFrom852"/> - </xsl:when> - <xsl:when test="$sf06a='856'"> - <xsl:call-template name="createLocationFrom856"/> - </xsl:when> - - <xsl:when test="$sf06a='490'"> - <xsl:call-template name="createRelatedItemFrom490"/> - </xsl:when> - </xsl:choose> - </xsl:template> - - <!-- titleInfo 130 730 245 246 240 740 210 --> - - <!-- 130 tmee 1.101 20140806--> - <xsl:template name="createTitleInfoFrom130"> - - <titleInfo type="uniform"> - <title> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield"> - <xsl:if test="(contains('s',@code))"> - <xsl:value-of select="text()"/> - <xsl:text> </xsl:text> - </xsl:if> - <xsl:if test="(contains('adfklmors',@code) and (not(../marc:subfield[@code='n' or @code='p']) or (following-sibling::marc:subfield[@code='n' or @code='p'])))"> - <xsl:value-of select="text()"/> - <xsl:text> </xsl:text> - </xsl:if> - </xsl:for-each> - </xsl:variable> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </xsl:with-param> - </xsl:call-template> - </title> - <xsl:call-template name="part"/> - </titleInfo> - - </xsl:template> - <xsl:template name="createTitleInfoFrom730"> - <titleInfo type="uniform"> - <title> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield"> - <xsl:if test="(contains('s',@code))"> - <xsl:value-of select="text()"/> - <xsl:text> </xsl:text> - </xsl:if> - <xsl:if test="(contains('adfklmors',@code) and (not(../marc:subfield[@code='n' or @code='p']) or (following-sibling::marc:subfield[@code='n' or @code='p'])))"> - <xsl:value-of select="text()"/> - <xsl:text> </xsl:text> - </xsl:if> - </xsl:for-each> - </xsl:variable> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </xsl:with-param> - </xsl:call-template> - </title> - <xsl:call-template name="part"/> - </titleInfo> - </xsl:template> - - <xsl:template name="createTitleInfoFrom210"> - <titleInfo type="abbreviated"> - <xsl:if test="marc:datafield[@tag='210'][@ind2='2']"> - <xsl:attribute name="authority"> - <xsl:value-of select="marc:subfield[@code='2']"/> - </xsl:attribute> - </xsl:if> - <xsl:call-template name="xxx880"/> - <title> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">a</xsl:with-param> - </xsl:call-template> - </xsl:with-param> - </xsl:call-template> - </title> - <xsl:call-template name="subtitle"/> - </titleInfo> - </xsl:template> - <!-- 1.79 --> - <xsl:template name="createTitleInfoFrom245"> - <titleInfo> - <xsl:call-template name="xxx880"/> - <xsl:variable name="title"> - <xsl:choose> - <xsl:when test="marc:subfield[@code='b']"> - <xsl:call-template name="specialSubfieldSelect"> - <xsl:with-param name="axis">b</xsl:with-param> - <xsl:with-param name="beforeCodes">afgks</xsl:with-param> - </xsl:call-template> - </xsl:when> - <xsl:otherwise> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">abfgks</xsl:with-param> - </xsl:call-template> - </xsl:otherwise> - </xsl:choose> - </xsl:variable> - <xsl:variable name="titleChop"> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:value-of select="$title"/> - </xsl:with-param> - </xsl:call-template> - </xsl:variable> - <xsl:choose> - <xsl:when test="@ind2>0"> - <xsl:if test="@tag!='880'"> - <!-- 1.112 --> - <nonSort xml:space="preserve"><xsl:value-of select="substring($titleChop,1,@ind2)"/> </nonSort> - </xsl:if> - <title> - <xsl:value-of select="substring($titleChop,@ind2+1)"/> - </title> - </xsl:when> - <xsl:otherwise> - <title> - <xsl:value-of select="$titleChop"/> - </title> - </xsl:otherwise> - </xsl:choose> - <xsl:if test="marc:subfield[@code='b']"> - <subTitle> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:call-template name="specialSubfieldSelect"> - <xsl:with-param name="axis">b</xsl:with-param> - <xsl:with-param name="anyCodes">b</xsl:with-param> - <xsl:with-param name="afterCodes">afgks</xsl:with-param> - </xsl:call-template> - </xsl:with-param> - </xsl:call-template> - </subTitle> - </xsl:if> - <xsl:call-template name="part"/> - </titleInfo> - </xsl:template> - - <xsl:template name="createTitleInfoFrom246"> - <titleInfo type="alternative"> - <xsl:call-template name="xxx880"/> - <xsl:for-each select="marc:subfield[@code='i']"> - <xsl:attribute name="displayLabel"> - <xsl:value-of select="text()"/> - </xsl:attribute> - </xsl:for-each> - <title> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:call-template name="subfieldSelect"> - <!-- 1/04 removed $h, $b --> - <xsl:with-param name="codes">af</xsl:with-param> - </xsl:call-template> - </xsl:with-param> - </xsl:call-template> - </title> - <xsl:call-template name="subtitle"/> - <xsl:call-template name="part"/> - </titleInfo> - </xsl:template> - - <!-- 240 nameTitleGroup--> - <!-- 1.102 --> - - <xsl:template name="createTitleInfoFrom240"> - <titleInfo type="uniform"> - <xsl:if test="//marc:datafield[@tag='100']|//marc:datafield[@tag='110']|//marc:datafield[@tag='111']"> - <xsl:attribute name="nameTitleGroup"> - <xsl:text>1</xsl:text> - </xsl:attribute> - </xsl:if> - <xsl:call-template name="xxx880"/> - <title> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield"> - <xsl:if test="(contains('adfklmors',@code) and (not(../marc:subfield[@code='n' or @code='p']) or (following-sibling::marc:subfield[@code='n' or @code='p'])))"> - <xsl:value-of select="text()"/> - <xsl:text> </xsl:text> - </xsl:if> - </xsl:for-each> - </xsl:variable> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </xsl:with-param> - </xsl:call-template> - </title> - <xsl:call-template name="part"/> - </titleInfo> - </xsl:template> - - <xsl:template name="createTitleInfoFrom740"> - <titleInfo type="alternative"> - <xsl:call-template name="xxx880"/> - <title> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">ah</xsl:with-param> - </xsl:call-template> - </xsl:with-param> - </xsl:call-template> - </title> - <xsl:call-template name="part"/> - </titleInfo> - </xsl:template> - - <!-- name 100 110 111 1.93 --> - - <xsl:template name="createNameFrom100"> - <xsl:if test="@ind1='0' or @ind1='1'"> - <name type="personal"> - <xsl:attribute name="usage"> - <xsl:text>primary</xsl:text> - </xsl:attribute> - <xsl:call-template name="xxx880"/> - <xsl:if test="//marc:datafield[@tag='240']"> - <xsl:attribute name="nameTitleGroup"> - <xsl:text>1</xsl:text> - </xsl:attribute> - </xsl:if> - <xsl:call-template name="nameABCDQ"/> - <xsl:call-template name="affiliation"/> - <xsl:call-template name="role"/> - <!-- 1.116 --> - <xsl:call-template name="nameIdentifier"/> - </name> - </xsl:if> - <!-- 1.99 240 fix 20140804 --> - <xsl:if test="@ind1='3'"> - <name type="family"> - <xsl:attribute name="usage"> - <xsl:text>primary</xsl:text> - </xsl:attribute> - <xsl:call-template name="xxx880"/> - - <xsl:if test="ancestor::marcrecord//marc:datafield[@tag='240']"> - <xsl:attribute name="nameTitleGroup"> - <xsl:text>1</xsl:text> - </xsl:attribute> - </xsl:if> - <xsl:call-template name="nameABCDQ"/> - <xsl:call-template name="affiliation"/> - <xsl:call-template name="role"/> - <!-- 1.116 --> - <xsl:call-template name="nameIdentifier"/> - </name> - </xsl:if> - </xsl:template> - - <xsl:template name="createNameFrom110"> - <name type="corporate"> - <xsl:call-template name="xxx880"/> - <xsl:if test="//marc:datafield[@tag='240']"> - <xsl:attribute name="nameTitleGroup"> - <xsl:text>1</xsl:text> - </xsl:attribute> - </xsl:if> - <xsl:call-template name="nameABCDN"/> - <xsl:call-template name="role"/> - <!-- 1.116 --> - <xsl:call-template name="nameIdentifier"/> - </name> - </xsl:template> - - - <!-- 111 1.104 20141104 --> - - <xsl:template name="createNameFrom111"> - <name type="conference"> - <xsl:call-template name="xxx880"/> - <xsl:if test="//marc:datafield[@tag='240']"> - <xsl:attribute name="nameTitleGroup"> - <xsl:text>1</xsl:text> - </xsl:attribute> - </xsl:if> - <xsl:call-template name="nameACDENQ"/> - <xsl:call-template name="role"/> - <!-- 1.116 --> - <xsl:call-template name="nameIdentifier"/> - </name> - </xsl:template> - - - - <!-- name 700 710 711 720 --> - - <xsl:template name="createNameFrom700"> - <xsl:if test="@ind1='0' or @ind1='1'"> - <name type="personal"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="nameABCDQ"/> - <xsl:call-template name="affiliation"/> - <xsl:call-template name="role"/> - <!-- 1.116 --> - <xsl:call-template name="nameIdentifier"/> - </name> - </xsl:if> - <xsl:if test="@ind1='3'"> - <name type="family"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="nameABCDQ"/> - <xsl:call-template name="affiliation"/> - <xsl:call-template name="role"/> - <!-- 1.116 --> - <xsl:call-template name="nameIdentifier"/> - </name> - </xsl:if> - </xsl:template> - - <xsl:template name="createNameFrom710"> - <!-- 1.117 --> - <name type="corporate"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="nameABCDN"/> - <xsl:call-template name="role"/> - <!-- 1.116 --> - <xsl:call-template name="nameIdentifier"/> - </name> - </xsl:template> - -<!-- 111 1.104 20141104 --> - <xsl:template name="createNameFrom711"> - <name type="conference"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="nameACDENQ"/> - <xsl:call-template name="role"/> - <!-- 1.116 --> - <xsl:call-template name="nameIdentifier"/> - </name> - </xsl:template> - - - <xsl:template name="createNameFrom720"> - <!-- 1.91 FLVC correction: the original if test will fail because of xpath: the current node (from the for-each above) is already the 720 datafield --> - <!-- <xsl:if test="marc:datafield[@tag='720'][not(marc:subfield[@code='t'])]"> --> - <xsl:if test="not(marc:subfield[@code='t'])"> - <name> - <xsl:if test="@ind1=1"> - <xsl:attribute name="type"> - <xsl:text>personal</xsl:text> - </xsl:attribute> - </xsl:if> - <namePart> - <xsl:value-of select="marc:subfield[@code='a']"/> - </namePart> - <xsl:call-template name="role"/> - </name> - </xsl:if> - </xsl:template> - - - - <!-- replced by above 1.91 - <xsl:template name="createNameFrom720"> - <xsl:if test="marc:datafield[@tag='720'][not(marc:subfield[@code='t'])]"> - <name> - <xsl:if test="@ind1=1"> - <xsl:attribute name="type"> - <xsl:text>personal</xsl:text> - </xsl:attribute> - </xsl:if> - <namePart> - <xsl:value-of select="marc:subfield[@code='a']"/> - </namePart> - <xsl:call-template name="role"/> - </name> - </xsl:if> - </xsl:template> - --> - - - <!-- genre 047 336 655 --> - - <xsl:template name="createGenreFrom047"> - <genre authority="marcgt"> - <!-- 1.111 --> - <xsl:choose> - <xsl:when test="@ind2 = ' '"> - <xsl:attribute name="authority"><xsl:text>marcmuscomp</xsl:text></xsl:attribute> - </xsl:when> - <xsl:when test="@ind2 = '7'"> - <xsl:if test="marc:subfield[@code='2']"> - <xsl:attribute name="authority"> - <xsl:value-of select="marc:subfield[@code='2']"/> - </xsl:attribute> - </xsl:if> - </xsl:when> - </xsl:choose> - <xsl:attribute name="type"> - <xsl:text>musical composition</xsl:text> - </xsl:attribute> - <!-- Template checks for altRepGroup - 880 $6 --> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">abcdef</xsl:with-param> - <xsl:with-param name="delimeter">-</xsl:with-param> - </xsl:call-template> - </genre> - </xsl:template> - - <xsl:template name="createGenreFrom336"> - <genre> - <!-- 1.110 --> - <xsl:if test="marc:subfield[@code='2']"> - <xsl:attribute name="authority"> - <xsl:value-of select="marc:subfield[@code='2']"/> - </xsl:attribute> - </xsl:if> - <!-- Template checks for altRepGroup - 880 $6 --> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">a</xsl:with-param> - <xsl:with-param name="delimeter">-</xsl:with-param> - </xsl:call-template> - </genre> - - </xsl:template> - - <xsl:template name="createGenreFrom655"> - <genre authority="marcgt"> - <!-- 1.109 --> - <xsl:choose> - <xsl:when test="marc:subfield[@code='2']"> - <xsl:attribute name="authority"> - <xsl:value-of select="marc:subfield[@code='2']"/> - </xsl:attribute> - </xsl:when> - <xsl:when test="@ind2 != ' '"> - <xsl:attribute name="authority"> - <xsl:value-of select="@ind2"/> - </xsl:attribute> - </xsl:when> - </xsl:choose> - <!-- Template checks for altRepGroup - 880 $6 --> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">abvxyz</xsl:with-param> - <xsl:with-param name="delimeter">-</xsl:with-param> - </xsl:call-template> - </genre> - </xsl:template> - - <!-- tOC 505 --> - - <xsl:template name="createTOCFrom505"> - <tableOfContents> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="uri"/> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">agrt</xsl:with-param> - </xsl:call-template> - </tableOfContents> - </xsl:template> - - <!-- abstract 520 --> - - <xsl:template name="createAbstractFrom520"> - <abstract> - <xsl:attribute name="type"> - <xsl:choose> - <xsl:when test="@ind1=' '">Summary</xsl:when> - <xsl:when test="@ind1='0'">Subject</xsl:when> - <xsl:when test="@ind1='1'">Review</xsl:when> - <xsl:when test="@ind1='2'">Scope and content</xsl:when> - <xsl:when test="@ind1='3'">Abstract</xsl:when> - <xsl:when test="@ind1='4'">Content advice</xsl:when> - </xsl:choose> - </xsl:attribute> - - <xsl:call-template name="xxx880"/> - <xsl:call-template name="uri"/> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">ab</xsl:with-param> - </xsl:call-template> - - </abstract> - </xsl:template> - - <!-- targetAudience 521 --> - - <xsl:template name="createTargetAudienceFrom521"> - <targetAudience> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">ab</xsl:with-param> - </xsl:call-template> - </targetAudience> - </xsl:template> - - <!-- note 245c thru 585 --> - - - <!-- 1.100 245c 20140804 --> - <xsl:template name="createNoteFrom245c"> - <xsl:if test="marc:subfield[@code='c']"> - <note type="statement of responsibility"> - <xsl:attribute name="altRepGroup"> - <xsl:text>00</xsl:text> - </xsl:attribute> - <xsl:call-template name="scriptCode"/> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">c</xsl:with-param> - </xsl:call-template> - </note> - </xsl:if> - - </xsl:template> - - <xsl:template name="createNoteFrom362"> - <note type="date/sequential designation"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="uri"/> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield[@code!='6' and @code!='8']"> - <xsl:value-of select="."/> - <xsl:text> </xsl:text> - </xsl:for-each> - </xsl:variable> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </note> - </xsl:template> - - <xsl:template name="createNoteFrom500"> - <note> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="uri"/> - <xsl:value-of select="marc:subfield[@code='a']"/> - </note> - </xsl:template> - - <xsl:template name="createNoteFrom502"> - <note type="thesis"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="uri"/> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield[@code!='6' and @code!='8']"> - <xsl:value-of select="."/> - <xsl:text> </xsl:text> - </xsl:for-each> - </xsl:variable> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </note> - </xsl:template> - - <xsl:template name="createNoteFrom504"> - <note type="bibliography"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="uri"/> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield[@code!='6' and @code!='8']"> - <xsl:value-of select="."/> - <xsl:text> </xsl:text> - </xsl:for-each> - </xsl:variable> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </note> - </xsl:template> - - <xsl:template name="createNoteFrom508"> - <note type="creation/production credits"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="uri"/> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield[@code!='u' and @code!='3' and @code!='6' and @code!='8']"> - <xsl:value-of select="."/> - <xsl:text> </xsl:text> - </xsl:for-each> - </xsl:variable> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </note> - </xsl:template> - - <xsl:template name="createNoteFrom511"> - <note type="performers"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="uri"/> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield[@code!='6' and @code!='8']"> - <xsl:value-of select="."/> - <xsl:text> </xsl:text> - </xsl:for-each> - </xsl:variable> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </note> - </xsl:template> - - <xsl:template name="createNoteFrom515"> - <note type="numbering"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="uri"/> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield[@code!='6' and @code!='8']"> - <xsl:value-of select="."/> - <xsl:text> </xsl:text> - </xsl:for-each> - </xsl:variable> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </note> - </xsl:template> - - <xsl:template name="createNoteFrom518"> - <note type="venue"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="uri"/> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield[@code!='3' and @code!='6' and @code!='8']"> - <xsl:value-of select="."/> - <xsl:text> </xsl:text> - </xsl:for-each> - </xsl:variable> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </note> - </xsl:template> - - <xsl:template name="createNoteFrom524"> - <note type="preferred citation"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="uri"/> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield[@code!='6' and @code!='8']"> - <xsl:value-of select="."/> - <xsl:text> </xsl:text> - </xsl:for-each> - </xsl:variable> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </note> - </xsl:template> - - <xsl:template name="createNoteFrom530"> - <note type="additional physical form"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="uri"/> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield[@code!='u' and @code!='3' and @code!='6' and @code!='8']"> - <xsl:value-of select="."/> - <xsl:text> </xsl:text> - </xsl:for-each> - </xsl:variable> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </note> - </xsl:template> - - <xsl:template name="createNoteFrom533"> - <note type="reproduction"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="uri"/> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield[@code!='6' and @code!='8']"> - <xsl:value-of select="."/> - <xsl:text> </xsl:text> - </xsl:for-each> - </xsl:variable> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </note> - </xsl:template> - - <!-- tmee - <xsl:template name="createNoteFrom534"> - <note type="original version"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="uri"/> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield[@code!='6' and @code!='8']"> - <xsl:value-of select="."/> - <xsl:text> </xsl:text> - </xsl:for-each> - </xsl:variable> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </note> - </xsl:template> ---> - - <xsl:template name="createNoteFrom535"> - <note type="original location"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="uri"/> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield[@code!='6' and @code!='8']"> - <xsl:value-of select="."/> - <xsl:text> </xsl:text> - </xsl:for-each> - </xsl:variable> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </note> - </xsl:template> - - <xsl:template name="createNoteFrom536"> - <note type="funding"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="uri"/> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield[@code!='6' and @code!='8']"> - <xsl:value-of select="."/> - <xsl:text> </xsl:text> - </xsl:for-each> - </xsl:variable> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </note> - </xsl:template> - - <xsl:template name="createNoteFrom538"> - <note type="system details"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="uri"/> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield[@code!='6' and @code!='8']"> - <xsl:value-of select="."/> - <xsl:text> </xsl:text> - </xsl:for-each> - </xsl:variable> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </note> - </xsl:template> - - <xsl:template name="createNoteFrom541"> - <note type="acquisition"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="uri"/> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield[@code!='6' and @code!='8']"> - <xsl:value-of select="."/> - <xsl:text> </xsl:text> - </xsl:for-each> - </xsl:variable> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </note> - </xsl:template> - - <xsl:template name="createNoteFrom545"> - <note type="biographical/historical"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="uri"/> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield[@code!='6' and @code!='8']"> - <xsl:value-of select="."/> - <xsl:text> </xsl:text> - </xsl:for-each> - </xsl:variable> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </note> - </xsl:template> - - <xsl:template name="createNoteFrom546"> - <note type="language"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="uri"/> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield[@code!='6' and @code!='8']"> - <xsl:value-of select="."/> - <xsl:text> </xsl:text> - </xsl:for-each> - </xsl:variable> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </note> - </xsl:template> - - <xsl:template name="createNoteFrom561"> - <note type="ownership"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="uri"/> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield[@code!='6' and @code!='8']"> - <xsl:value-of select="."/> - <xsl:text> </xsl:text> - </xsl:for-each> - </xsl:variable> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </note> - </xsl:template> - - <xsl:template name="createNoteFrom562"> - <note type="version identification"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="uri"/> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield[@code!='6' and @code!='8']"> - <xsl:value-of select="."/> - <xsl:text> </xsl:text> - </xsl:for-each> - </xsl:variable> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </note> - </xsl:template> - - <xsl:template name="createNoteFrom581"> - <note type="publications"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="uri"/> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield[@code!='6' and @code!='8']"> - <xsl:value-of select="."/> - <xsl:text> </xsl:text> - </xsl:for-each> - </xsl:variable> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </note> - </xsl:template> - - <xsl:template name="createNoteFrom583"> - <note type="action"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="uri"/> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield[@code!='6' and @code!='8']"> - <xsl:value-of select="."/> - <xsl:text> </xsl:text> - </xsl:for-each> - </xsl:variable> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </note> - </xsl:template> - - <xsl:template name="createNoteFrom585"> - <note type="exhibitions"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="uri"/> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield[@code!='6' and @code!='8']"> - <xsl:value-of select="."/> - <xsl:text> </xsl:text> - </xsl:for-each> - </xsl:variable> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </note> - </xsl:template> - - <xsl:template name="createNoteFrom5XX"> - <note> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="uri"/> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield[@code!='6' and @code!='8']"> - <xsl:value-of select="."/> - <xsl:text> </xsl:text> - </xsl:for-each> - </xsl:variable> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </note> - </xsl:template> - - <!-- subject Geo 034 043 045 255 656 662 752 --> - - <xsl:template name="createSubGeoFrom034"> - <xsl:if test="marc:datafield[@tag=034][marc:subfield[@code='d' or @code='e' or @code='f' or @code='g']]"> - <subject> - <xsl:call-template name="xxx880"/> - <cartographics> - <coordinates> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">defg</xsl:with-param> - </xsl:call-template> - </coordinates> - </cartographics> - </subject> - </xsl:if> - </xsl:template> - - <xsl:template name="createSubGeoFrom043"> - <subject> - <xsl:call-template name="xxx880"/> - <xsl:for-each select="marc:subfield[@code='a' or @code='b' or @code='c']"> - <geographicCode> - <xsl:attribute name="authority"> - <xsl:if test="@code='a'"> - <xsl:text>marcgac</xsl:text> - </xsl:if> - <xsl:if test="@code='b'"> - <xsl:value-of select="following-sibling::marc:subfield[@code=2]"/> - </xsl:if> - <xsl:if test="@code='c'"> - <xsl:text>iso3166</xsl:text> - </xsl:if> - </xsl:attribute> - <xsl:value-of select="self::marc:subfield"/> - </geographicCode> - </xsl:for-each> - </subject> - </xsl:template> - - <xsl:template name="createSubGeoFrom255"> - <subject> - <xsl:call-template name="xxx880"/> - <cartographics> - <xsl:for-each select="marc:subfield[@code='a' or @code='b' or @code='c']"> - <xsl:if test="@code='a'"> - <scale> - <xsl:value-of select="."/> - </scale> - </xsl:if> - <xsl:if test="@code='b'"> - <projection> - <xsl:value-of select="."/> - </projection> - </xsl:if> - <xsl:if test="@code='c'"> - <coordinates> - <xsl:value-of select="."/> - </coordinates> - </xsl:if> - </xsl:for-each> - </cartographics> - </subject> - </xsl:template> - - <xsl:template name="createSubNameFrom600"> - <subject> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="subjectAuthority"/> - <name type="personal"> - <namePart> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">aq</xsl:with-param> - </xsl:call-template> - </xsl:with-param> - </xsl:call-template> - </namePart> - <xsl:call-template name="termsOfAddress"/> - <xsl:call-template name="nameDate"/> - <xsl:call-template name="affiliation"/> - <xsl:call-template name="role"/> - </name> - <xsl:if test="marc:subfield[@code='t']"> - <titleInfo> - <title> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">t</xsl:with-param> - </xsl:call-template> - </xsl:with-param> - </xsl:call-template> - </title> - <xsl:call-template name="part"/> - </titleInfo> - </xsl:if> - <xsl:call-template name="subjectAnyOrder"/> - </subject> - </xsl:template> - - <xsl:template name="createSubNameFrom610"> - <subject> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="subjectAuthority"/> - <name type="corporate"> - <xsl:for-each select="marc:subfield[@code='a']"> - <namePart> - <xsl:value-of select="."/> - </namePart> - </xsl:for-each> - <xsl:for-each select="marc:subfield[@code='b']"> - <namePart> - <xsl:value-of select="."/> - </namePart> - </xsl:for-each> - <xsl:if test="marc:subfield[@code='c' or @code='d' or @code='n' or @code='p']"> - <namePart> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">cdnp</xsl:with-param> - </xsl:call-template> - </namePart> - </xsl:if> - <xsl:call-template name="role"/> - </name> - <xsl:if test="marc:subfield[@code='t']"> - <titleInfo> - <title> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">t</xsl:with-param> - </xsl:call-template> - </xsl:with-param> - </xsl:call-template> - </title> - <xsl:call-template name="part"/> - </titleInfo> - </xsl:if> - <xsl:call-template name="subjectAnyOrder"/> - </subject> - </xsl:template> - - <xsl:template name="createSubNameFrom611"> - <subject> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="subjectAuthority"/> - <name type="conference"> - <namePart> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">abcdeqnp</xsl:with-param> - </xsl:call-template> - </namePart> - <xsl:for-each select="marc:subfield[@code='4']"> - <role> - <roleTerm authority="marcrelator" type="code"> - <xsl:value-of select="."/> - </roleTerm> - </role> - </xsl:for-each> - </name> - <xsl:if test="marc:subfield[@code='t']"> - <titleInfo> - <title> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">tpn</xsl:with-param> - </xsl:call-template> - </xsl:with-param> - </xsl:call-template> - </title> - <xsl:call-template name="part"/> - </titleInfo> - </xsl:if> - <xsl:call-template name="subjectAnyOrder"/> - </subject> - </xsl:template> - - <xsl:template name="createSubTitleFrom630"> - <subject> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="subjectAuthority"/> - <titleInfo> - <title> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">adfhklor</xsl:with-param> - </xsl:call-template> - </xsl:with-param> - </xsl:call-template> - </title> - <xsl:call-template name="part"/> - </titleInfo> - <xsl:call-template name="subjectAnyOrder"/> - </subject> - </xsl:template> - - <xsl:template name="createSubChronFrom648"> - <subject> - <xsl:call-template name="xxx880"/> - <xsl:if test="marc:subfield[@code=2]"> - <xsl:attribute name="authority"> - <xsl:value-of select="marc:subfield[@code=2]"/> - </xsl:attribute> - </xsl:if> - <xsl:call-template name="uri"/> - <xsl:call-template name="subjectAuthority"/> - <temporal> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">abcd</xsl:with-param> - </xsl:call-template> - </xsl:with-param> - </xsl:call-template> - </temporal> - <xsl:call-template name="subjectAnyOrder"/> - </subject> - </xsl:template> - - <xsl:template name="createSubTopFrom650"> - <subject> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="subjectAuthority"/> - <topic> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">abcd</xsl:with-param> - </xsl:call-template> - </xsl:with-param> - </xsl:call-template> - </topic> - <xsl:call-template name="subjectAnyOrder"/> - </subject> - </xsl:template> - - <xsl:template name="createSubGeoFrom651"> - <subject> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="subjectAuthority"/> - <xsl:for-each select="marc:subfield[@code='a']"> - <geographic> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString" select="."/> - </xsl:call-template> - </geographic> - </xsl:for-each> - <xsl:call-template name="subjectAnyOrder"/> - </subject> - </xsl:template> - - <xsl:template name="createSubFrom653"> - - <xsl:if test="@ind2=' '"> - <subject> - <topic> - <xsl:value-of select="."/> - </topic> - </subject> - </xsl:if> - <xsl:if test="@ind2='0'"> - <subject> - <topic> - <xsl:value-of select="."/> - </topic> - </subject> - </xsl:if> -<!-- tmee 1.93 20140130 --> - <xsl:if test="@ind=' ' or @ind1='0' or @ind1='1'"> - <subject> - <name type="personal"> - <namePart> - <xsl:value-of select="."/> - </namePart> - </name> - </subject> - </xsl:if> - <xsl:if test="@ind1='3'"> - <subject> - <name type="family"> - <namePart> - <xsl:value-of select="."/> - </namePart> - </name> - </subject> - </xsl:if> - <xsl:if test="@ind2='2'"> - <subject> - <name type="corporate"> - <namePart> - <xsl:value-of select="."/> - </namePart> - </name> - </subject> - </xsl:if> - <xsl:if test="@ind2='3'"> - <subject> - <name type="conference"> - <namePart> - <xsl:value-of select="."/> - </namePart> - </name> - </subject> - </xsl:if> - <xsl:if test="@ind2=4"> - <subject> - <temporal> - <xsl:value-of select="."/> - </temporal> - </subject> - </xsl:if> - <xsl:if test="@ind2=5"> - <subject> - <geographic> - <xsl:value-of select="."/> - </geographic> - </subject> - </xsl:if> - - <xsl:if test="@ind2=6"> - <subject> - <genre> - <xsl:value-of select="."/> - </genre> - </subject> - </xsl:if> - </xsl:template> - - <xsl:template name="createSubFrom656"> - <subject> - <xsl:call-template name="xxx880"/> - <xsl:if test="marc:subfield[@code=2]"> - <xsl:attribute name="authority"> - <xsl:value-of select="marc:subfield[@code=2]"/> - </xsl:attribute> - </xsl:if> - <occupation> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:value-of select="marc:subfield[@code='a']"/> - </xsl:with-param> - </xsl:call-template> - </occupation> - </subject> - </xsl:template> - - <xsl:template name="createSubGeoFrom662752"> - <subject> - <xsl:call-template name="xxx880"/> - <hierarchicalGeographic> - <!-- 1.113 --> - <xsl:if test="marc:subfield[@code='0']"> - <xsl:attribute name="valueURI"><xsl:value-of select="marc:subfield[@code='0']"/></xsl:attribute> - </xsl:if> - <xsl:for-each select="marc:subfield[@code='a']"> - <country> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString" select="."/> - </xsl:call-template> - </country> - </xsl:for-each> - <xsl:for-each select="marc:subfield[@code='b']"> - <state> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString" select="."/> - </xsl:call-template> - </state> - </xsl:for-each> - <xsl:for-each select="marc:subfield[@code='c']"> - <county> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString" select="."/> - </xsl:call-template> - </county> - </xsl:for-each> - <xsl:for-each select="marc:subfield[@code='d']"> - <city> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString" select="."/> - </xsl:call-template> - </city> - </xsl:for-each> - <xsl:for-each select="marc:subfield[@code='e']"> - <citySection> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString" select="."/> - </xsl:call-template> - </citySection> - </xsl:for-each> - <xsl:for-each select="marc:subfield[@code='g']"> - <area> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString" select="."/> - </xsl:call-template> - </area> - </xsl:for-each> - <xsl:for-each select="marc:subfield[@code='h']"> - <extraterrestrialArea> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString" select="."/> - </xsl:call-template> - </extraterrestrialArea> - </xsl:for-each> - </hierarchicalGeographic> - </subject> - </xsl:template> - - <xsl:template name="createSubTemFrom045"> - <xsl:if test="//marc:datafield[@tag=045 and @ind1='2'][marc:subfield[@code='b' or @code='c']]"> - <subject> - <xsl:call-template name="xxx880"/> - <temporal encoding="iso8601" point="start"> - <xsl:call-template name="dates045b"> - <xsl:with-param name="str" select="marc:subfield[@code='b' or @code='c'][1]"/> - </xsl:call-template> - </temporal> - <temporal encoding="iso8601" point="end"> - <xsl:call-template name="dates045b"> - <xsl:with-param name="str" select="marc:subfield[@code='b' or @code='c'][2]"/> - </xsl:call-template> - </temporal> - </subject> - </xsl:if> - </xsl:template> - - <!-- classification 050 060 080 082 084 086 --> - - <xsl:template name="createClassificationFrom050"> - <xsl:for-each select="marc:subfield[@code='b']"> - <classification authority="lcc"> - <xsl:call-template name="xxx880"/> - <xsl:if test="../marc:subfield[@code='3']"> - <xsl:attribute name="displayLabel"> - <xsl:value-of select="../marc:subfield[@code='3']"/> - </xsl:attribute> - </xsl:if> - <xsl:value-of select="preceding-sibling::marc:subfield[@code='a'][1]"/> - <xsl:text> </xsl:text> - <xsl:value-of select="text()"/> - </classification> - </xsl:for-each> - <xsl:for-each select="marc:subfield[@code='a'][not(following-sibling::marc:subfield[@code='b'])]"> - <classification authority="lcc"> - <xsl:call-template name="xxx880"/> - <xsl:if test="../marc:subfield[@code='3']"> - <xsl:attribute name="displayLabel"> - <xsl:value-of select="../marc:subfield[@code='3']"/> - </xsl:attribute> - </xsl:if> - <xsl:value-of select="text()"/> - </classification> - </xsl:for-each> - </xsl:template> - <xsl:template name="createClassificationFrom060"> - <classification authority="nlm"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">ab</xsl:with-param> - </xsl:call-template> - </classification> - </xsl:template> - <xsl:template name="createClassificationFrom080"> - <classification authority="udc"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">abx</xsl:with-param> - </xsl:call-template> - </classification> - </xsl:template> - <xsl:template name="createClassificationFrom082"> - <classification authority="ddc"> - <xsl:call-template name="xxx880"/> - <xsl:if test="marc:subfield[@code='2']"> - <xsl:attribute name="edition"> - <xsl:value-of select="marc:subfield[@code='2']"/> - </xsl:attribute> - </xsl:if> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">ab</xsl:with-param> - </xsl:call-template> - </classification> - </xsl:template> - <xsl:template name="createClassificationFrom084"> - <classification> - <xsl:attribute name="authority"> - <xsl:value-of select="marc:subfield[@code='2']"/> - </xsl:attribute> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">ab</xsl:with-param> - </xsl:call-template> - </classification> - </xsl:template> - <xsl:template name="createClassificationFrom086"> - <xsl:for-each select="marc:datafield[@tag=086][@ind1=0]"> - <classification authority="sudocs"> - <xsl:call-template name="xxx880"/> - <xsl:value-of select="marc:subfield[@code='a']"/> - </classification> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=086][@ind1=1]"> - <classification authority="candoc"> - <xsl:call-template name="xxx880"/> - <xsl:value-of select="marc:subfield[@code='a']"/> - </classification> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=086][@ind1!=1 and @ind1!=0]"> - <classification> - <xsl:call-template name="xxx880"/> - <xsl:attribute name="authority"> - <xsl:value-of select="marc:subfield[@code='2']"/> - </xsl:attribute> - <xsl:value-of select="marc:subfield[@code='a']"/> - </classification> - </xsl:for-each> - </xsl:template> - - <!-- identifier 020 024 022 028 010 037 UNDO Nov 23 2010 RG SM--> - - <!-- createRelatedItemFrom490 <xsl:for-each select="marc:datafield[@tag=490][@ind1=0]"> --> - - <xsl:template name="createRelatedItemFrom490"> - <relatedItem type="series"> - <xsl:call-template name="xxx880"/> - <titleInfo> - <title> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">av</xsl:with-param> - </xsl:call-template> - </xsl:with-param> - </xsl:call-template> - </title> - <xsl:call-template name="part"/> - </titleInfo> - </relatedItem> - </xsl:template> - - - <!-- location 852 856 --> - - <xsl:template name="createLocationFrom852"> - <location> - <xsl:if test="marc:subfield[@code='a' or @code='b' or @code='e']"> - <physicalLocation> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">abe</xsl:with-param> - </xsl:call-template> - </physicalLocation> - </xsl:if> - <xsl:if test="marc:subfield[@code='u']"> - <physicalLocation> - <xsl:call-template name="uri"/> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">u</xsl:with-param> - </xsl:call-template> - </physicalLocation> - </xsl:if> - <!-- 1.78 --> - <xsl:if test="marc:subfield[@code='h' or @code='i' or @code='j' or @code='k' or @code='l' or @code='m' or @code='t']"> - <shelfLocator> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">hijklmt</xsl:with-param> - </xsl:call-template> - </shelfLocator> - </xsl:if> - <!-- 1.114 --> - <xsl:if test="marc:subfield[@code='p' or @code='t']"> - <holdingSimple> - <copyInformation> - <xsl:for-each select="marc:subfield[@code='p']|marc:subfield[@code='t']"> - <itemIdentifier> - <xsl:if test="@code='t'"> - <xsl:attribute name="type"><xsl:text>copy number</xsl:text></xsl:attribute> - </xsl:if> - <xsl:apply-templates select="."/> - </itemIdentifier> - </xsl:for-each> - </copyInformation> - </holdingSimple> - </xsl:if> - </location> - </xsl:template> - - <xsl:template name="createLocationFrom856"> - <xsl:if test="//marc:datafield[@tag=856][@ind2!=2][marc:subfield[@code='u']]"> - <location> - <url displayLabel="electronic resource"> - <!-- 1.41 tmee AQ1.9 added choice protocol for @usage="primary display" --> - <xsl:variable name="primary"> - <xsl:choose> - <xsl:when test="@ind2=0 and count(preceding-sibling::marc:datafield[@tag=856] [@ind2=0])=0">true</xsl:when> - - <xsl:when test="@ind2=1 and count(ancestor::marc:record//marc:datafield[@tag=856][@ind2=0])=0 and count(preceding-sibling::marc:datafield[@tag=856][@ind2=1])=0">true</xsl:when> - - <xsl:when test="@ind2!=1 and @ind2!=0 and @ind2!=2 and count(ancestor::marc:record//marc:datafield[@tag=856 and @ind2=0])=0 and count(ancestor::marc:record//marc:datafield[@tag=856 and @ind2=1])=0 and count(preceding-sibling::marc:datafield[@tag=856][@ind2])=0">true</xsl:when> - <xsl:otherwise>false</xsl:otherwise> - </xsl:choose> - </xsl:variable> - <xsl:if test="$primary='true'"> - <xsl:attribute name="usage">primary display</xsl:attribute> - </xsl:if> - - <xsl:if test="marc:subfield[@code='y' or @code='3']"> - <xsl:attribute name="displayLabel"> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">y3</xsl:with-param> - </xsl:call-template> - </xsl:attribute> - </xsl:if> - <xsl:if test="marc:subfield[@code='z']"> - <xsl:attribute name="note"> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">z</xsl:with-param> - </xsl:call-template> - </xsl:attribute> - </xsl:if> - <xsl:value-of select="marc:subfield[@code='u']"/> - </url> - </location> - </xsl:if> - </xsl:template> - - <!-- accessCondition 506 540 1.87 20130829--> - - <xsl:template name="createAccessConditionFrom506"> - <accessCondition type="restriction on access"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">abcd35</xsl:with-param> - </xsl:call-template> - </accessCondition> - </xsl:template> - - <xsl:template name="createAccessConditionFrom540"> - <accessCondition type="use and reproduction"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">abcde35</xsl:with-param> - </xsl:call-template> - </accessCondition> - </xsl:template> - - <!-- recordInfo 040 005 001 003 --> - - <!-- 880 global copy template --> - <xsl:template match="* | @*" mode="global_copy"> - <xsl:copy> - <xsl:apply-templates select="* | @* | text()" mode="global_copy"/> - </xsl:copy> - </xsl:template> - -</xsl:stylesheet><!-- Stylus Studio meta-information - (c) 2004-2005. Progress Software Corporation. All rights reserved. -<metaInformation> -<scenarios/><MapperMetaTag><MapperInfo srcSchemaPathIsRelative="yes" srcSchemaInterpretAsXML="no" destSchemaPath="" destSchemaRoot="" destSchemaPathIsRelative="yes" destSchemaInterpretAsXML="no"/><MapperBlockPosition></MapperBlockPosition><TemplateContext></TemplateContext></MapperMetaTag> -</metaInformation> ---> \ No newline at end of file diff --git a/xsl/MARC21slim2MODS3-6.xsl b/xsl/MARC21slim2MODS3-6.xsl deleted file mode 100644 index 72ff47710358e994ad1aa54b73b8e74e957948c6..0000000000000000000000000000000000000000 --- a/xsl/MARC21slim2MODS3-6.xsl +++ /dev/null @@ -1,5714 +0,0 @@ -<xsl:stylesheet xmlns="http://www.loc.gov/mods/v3" xmlns:marc="http://www.loc.gov/MARC21/slim" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" exclude-result-prefixes="xlink marc" version="1.0"> - <xsl:include href="http://www.loc.gov/standards/marcxml/xslt/MARC21slimUtils.xsl"/> - <xsl:output encoding="UTF-8" indent="yes" method="xml"/> - <xsl:strip-space elements="*"/> - - <!-- Maintenance note: For each revision, change the content of <recordInfo><recordOrigin> to reflect the new revision number. - MARC21slim2MODS3-6 - - MODS 3.6 (Revision 1.119) 20180621 - - Revision 1.119 - Fixed 700 ind1=0 to transform - tmee 2018/06/21 - Revision 1.118 - Fixed namePart termsOfAddress subelement order - 2018/01/31 tmee - Revision 1.117 - Fixed name type="corporate" RE: MODS 3.6 - 2017/2/14 ntra - Revision 1.116 - Added nameIdentifier to 700/710/711/100/110/111 $0 RE: MODS 3.6 - 2016/3/15 ws - Revision 1.115 - Added @otherType for 7xx RE: MODS 3.6 - 2016/3/15 ws - Revision 1.114 - Added <itemIdentifier> for 852$p and <itemIdentifier > with type="copy number" for 852$t RE: MODS 3.6 - 2016/3/15 ws - Revision 1.113 - Added @valueURI="contents of $0" for 752/662 RE: MODS 3.6 - 2016/3/15 ws - Revision 1.112 - Added @xml:space="preserve" to title/nonSort on 245 and 242 RE: MODS 3.6 - 2016/3/15 ws - - Revision 1.111 - Added test to prevent empty authority attribute for 047 with no subfield 2. - ws 2016/03/24 - Revision 1.110 - Added test to prevent empty authority attribute for 336 with no subfield 2. - ws 2016/03/24 - Revision 1.109 - Added test to prevent empty authority attribute for 655 and use if ind2 if no subfield 2 is available. - ws 2016/03/24 - Revision 1.108 - Added filter to name templates to exclude names with title subfields. - ws 2016/03/24 - - Revision 1.107 - Added support for 024/@ind1=7 - ws 2016/1/7 - Revision 1.106 - Added a xsl:when to deal with '#' and ' ' in $leader19 and $controlField008-18 - ws 2014/12/19 - Revision 1.105 - Add @unit to extent - ws 2014/11/20 - Revision 1.104 - Fixed 111$n and 711$n to reflect mapping to <namePart> tmee 20141112 - Revision 1.103 - Fixed 008/28 to reflect revised mapping for government publication tmee 20141104 - Revision 1.102 - Fixed 240$s duplication tmee 20140812 - Revision 1.101 - Fixed 130 tmee 20140806 - Revision 1.100 - Fixed 245c tmee 20140804 - Revision 1.99 - Fixed 240 issue tmee 20140804 - Revision 1.98 - Fixed 336 mapping tmee 20140522 - Revision 1.97 - Fixed 264 mapping tmee 20140521 - Revision 1.96 - Fixed 310 and 321 and 008 frequency authority for marcfrequency tmee 2014/04/22 - Revision 1.95 - Modified 035 to include identifier type (WlCaITV) tmee 2014/04/21 - Revision 1.94 - Leader 07 b changed mapping from continuing to serial tmee 2014/02/21 - - MODS 3.5 - Revision 1.93 - Fixed personal name transform for ind1=0 tmee 2014/01/31 - Revision 1.92 - Removed duplicate code for 856 1.51 tmee 2014/01/31 - Revision 1.91 - Fixed createnameFrom720 duplication tmee 2014/01/31 - Revision 1.90 - Fixed 520 displayLabel tmee tmee 2014/01/31 - Revision 1.89 - Fixed 008-06 when value = 's' for cartographics tmee tmee 2014/01/31 - Revision 1.88 - Fixed 510c mapping - tmee 2013/08/29 - Revision 1.87 - Fixed expressions of <accessCondition> type values - tmee 2013/08/29 - Revision 1.86 - Fixed 008 <frequency> subfield to occur w/i <originiInfo> - tmee 2013/08/29 - Revision 1.85 - Fixed 245$c - tmee 2013/03/07 - Revision 1.84 - Fixed 1.35 and 1.36 date mapping for 008 when 008/06=e,p,r,s,t so only 008/07-10 displays, rather than 008/07-14 - tmee 2013/02/01 - Revision 1.83 - Deleted mapping for 534 to note - tmee 2013/01/18 - Revision 1.82 - Added mapping for 264 ind 0,1,2,3 to originInfo - 2013/01/15 tmee - Revision 1.81 - Added mapping for 336$a$2, 337$a$2, 338$a$2 - 2012/12/03 tmee - Revision 1.80 - Added 100/700 mapping for "family" - 2012/09/10 tmee - Revision 1.79 - Added 245 $s mapping - 2012/07/11 tmee - Revision 1.78 - Fixed 852 mapping <shelfLocation> was changed to <shelfLocator> - 2012/05/07 tmee - Revision 1.77 - Fixed 008-06 when value = 's' - 2012/04/19 tmee - Revision 1.76 - Fixed 242 - 2012/02/01 tmee - Revision 1.75 - Fixed 653 - 2012/01/31 tmee - Revision 1.74 - Fixed 510 note - 2011/07/15 tmee - Revision 1.73 - Fixed 506 540 - 2011/07/11 tmee - Revision 1.72 - Fixed frequency error - 2011/07/07 and 2011/07/14 tmee - Revision 1.71 - Fixed subject titles for subfields t - 2011/04/26 tmee - Revision 1.70 - Added mapping for OCLC numbers in 035s to go into <identifier type="oclc"> 2011/02/27 - tmee - Revision 1.69 - Added mapping for untyped identifiers for 024 - 2011/02/27 tmee - Revision 1.68 - Added <subject><titleInfo> mapping for 600/610/611 subfields t,p,n - 2010/12/22 tmee - Revision 1.67 - Added frequency values and authority="marcfrequency" for 008/18 - 2010/12/09 tmee - Revision 1.66 - Fixed 008/06=c,d,i,m,k,u, from dateCreated to dateIssued - 2010/12/06 tmee - Revision 1.65 - Added back marcsmd and marccategory for 007 cr- 2010/12/06 tmee - Revision 1.64 - Fixed identifiers - removed isInvalid template - 2010/12/06 tmee - Revision 1.63 - Fixed descriptiveStandard value from aacr2 to aacr - 2010/12/06 tmee - Revision 1.62 - Fixed date mapping for 008/06=e,p,r,s,t - 2010/12/01 tmee - Revision 1.61 - Added 007 mappings for marccategory - 2010/11/12 tmee - Revision 1.60 - Added altRepGroups and 880 linkages for relevant fields, see mapping - 2010/11/26 tmee - Revision 1.59 - Added scriptTerm type=text to language for 546b and 066c - 2010/09/23 tmee - Revision 1.58 - Expanded script template to include code conversions for extended scripts - 2010/09/22 tmee - Revision 1.57 - Added Ldr/07 and Ldr/19 mappings - 2010/09/17 tmee - Revision 1.56 - Mapped 1xx usage="primary" - 2010/09/17 tmee - Revision 1.55 - Mapped UT 240/1xx nameTitleGroup - 2010/09/17 tmee - MODS 3.4 - Revision 1.54 - Fixed 086 redundancy - 2010/07/27 tmee - Revision 1.53 - Added direct href for MARC21slimUtils - 2010/07/27 tmee - Revision 1.52 - Mapped 046 subfields c,e,k,l - 2010/04/09 tmee - Revision 1.51 - Corrected 856 transform - 2010/01/29 tmee - Revision 1.50 - Added 210 $2 authority attribute in <titleInfo type=”abbreviated”> 2009/11/23 tmee - Revision 1.49 - Aquifer revision 1.14 - Added 240s (version) data to <titleInfo type="uniform"><title> 2009/11/23 tmee - Revision 1.48 - Aquifer revision 1.27 - Added mapping of 242 second indicator (for nonfiling characters) to <titleInfo><nonSort > subelement 2007/08/08 tmee/dlf - Revision 1.47 - Aquifer revision 1.26 - Mapped 300 subfield f (type of unit) - and g (size of unit) 2009 ntra - Revision 1.46 - Aquifer revision 1.25 - Changed mapping of 767 so that <type="otherVersion> 2009/11/20 tmee - Revision 1.45 - Aquifer revision 1.24 - Changed mapping of 765 so that <type="otherVersion> 2009/11/20 tmee - Revision 1.44 - Added <recordInfo><recordOrigin> canned text about the version of this stylesheet 2009 ntra - Revision 1.43 - Mapped 351 subfields a,b,c 2009/11/20 tmee - Revision 1.42 - Changed 856 second indicator=1 to go to <location><url displayLabel=”electronic resource”> instead of to <relatedItem type=”otherVersion”><url> 2009/11/20 tmee - Revision 1.41 - Aquifer revision 1.9 Added variable and choice protocol for adding usage=”primary display” 2009/11/19 tmee - Revision 1.40 - Dropped <note> for 510 and added <relatedItem type="isReferencedBy"> for 510 2009/11/19 tmee - Revision 1.39 - Aquifer revision 1.23 Changed mapping for 762 (Subseries Entry) from <relatedItem type="series"> to <relatedItem type="constituent"> 2009/11/19 tmee - Revision 1.38 - Aquifer revision 1.29 Dropped 007s for electronic versions 2009/11/18 tmee - Revision 1.37 - Fixed date redundancy in output (with questionable dates) 2009/11/16 tmee - Revision 1.36 - If mss material (Ldr/06=d,p,f,t) map 008 dates and 260$c/$g dates to dateCreated 2009/11/24, otherwise map 008 and 260$c/$g to dateIssued 2010/01/08 tmee - Revision 1.35 - Mapped appended detailed dates from 008/07-10 and 008/11-14 to dateIssued or DateCreated w/encoding="marc" 2010/01/12 tmee - Revision 1.34 - Mapped 045b B.C. and C.E. date range info to iso8601-compliant dates in <subject><temporal> 2009/01/08 ntra - Revision 1.33 - Mapped Ldr/06 "o" to <typeOfResource>kit 2009/11/16 tmee - Revision 1.32 - Mapped specific note types from the MODS Note Type list <http://www.loc.gov/standards/mods/mods-notes.html> tmee 2009/11/17 - Revision 1.31 - Mapped 540 to <accessCondition type="use and reproduction"> and 506 to <accessCondition type="restriction on access"> and delete mappings of 540 and 506 to <note> - Revision 1.30 - Mapped 037c to <identifier displayLabel=""> 2009/11/13 tmee - Revision 1.29 - Corrected schemaLocation to 3.3 2009/11/13 tmee - Revision 1.28 - Changed mapping from 752,662 g going to mods:hierarchicalGeographic/area instead of "region" 2009/07/30 ntra - Revision 1.27 - Mapped 648 to <subject> 2009/03/13 tmee - Revision 1.26 - Added subfield $s mapping for 130/240/730 2008/10/16 tmee - Revision 1.25 - Mapped 040e to <descriptiveStandard> and Leader/18 to <descriptive standard>aacr2 2008/09/18 tmee - Revision 1.24 - Mapped 852 subfields $h, $i, $j, $k, $l, $m, $t to <shelfLocation> and 852 subfield $u to <physicalLocation> with @xlink 2008/09/17 tmee - Revision 1.23 - Commented out xlink/uri for subfield 0 for 130/240/730, 100/700, 110/710, 111/711 as these are currently unactionable 2008/09/17 tmee - Revision 1.22 - Mapped 022 subfield $l to type "issn-l" subfield $m to output identifier element with corresponding @type and @invalid eq 'yes'2008/09/17 tmee - Revision 1.21 - Mapped 856 ind2=1 or ind2=2 to <relatedItem><location><url> 2008/07/03 tmee - Revision 1.20 - Added genre w/@auth="contents of 2" and type= "musical composition" 2008/07/01 tmee - Revision 1.19 - Added genre offprint for 008/24+ BK code 2 2008/07/01 tmee - Revision 1.18 - Added xlink/uri for subfield 0 for 130/240/730, 100/700, 110/710, 111/711 2008/06/26 tmee - Revision 1.17 - Added mapping of 662 2008/05/14 tmee - Revision 1.16 - Changed @authority from "marc" to "marcgt" for 007 and 008 codes mapped to a term in <genre> 2007/07/10 tmee - Revision 1.15 - For field 630, moved call to part template outside title element 2007/07/10 tmee - Revision 1.14 - Fixed template isValid and fields 010, 020, 022, 024, 028, and 037 to output additional identifier elements with corresponding @type and @invalid eq 'yes' when subfields z or y (in the case of 022) exist in the MARCXML ::: 2007/01/04 17:35:20 cred - Revision 1.13 - Changed order of output under cartographics to reflect schema 2006/11/28 tmee - Revision 1.12 - Updated to reflect MODS 3.2 Mapping 2006/10/11 tmee - Revision 1.11 - The attribute objectPart moved from <languageTerm> to <language> 2006/04/08 jrad - Revision 1.10 - MODS 3.1 revisions to language and classification elements (plus ability to find marc:collection embedded in wrapper elements such as SRU zs: wrappers) 2006/02/06 ggar - Revision 1.09 - Subfield $y was added to field 242 2004/09/02 10:57 jrad - Revision 1.08 - Subject chopPunctuation expanded and attribute fixes 2004/08/12 jrad - Revision 1.07 - 2004/03/25 08:29 jrad - Revision 1.06 - Various validation fixes 2004/02/20 ntra - Revision 1.05 - MODS2 to MODS3 updates, language unstacking and de-duping, chopPunctuation expanded 2003/10/02 16:18:58 ntra - Revision 1.03 - Additional Changes not related to MODS Version 2.0 by ntra - Revision 1.02 - Added Log Comment 2003/03/24 19:37:42 ckeith - --> - - <xsl:template match="/"> - <xsl:choose> - <xsl:when test="//marc:collection"> - <modsCollection xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.loc.gov/mods/v3 http://www.loc.gov/standards/mods/v3/mods-3-6.xsd"> - <xsl:for-each select="//marc:collection/marc:record"> - <mods version="3.6"> - <xsl:call-template name="marcRecord"/> - </mods> - </xsl:for-each> - </modsCollection> - </xsl:when> - <xsl:otherwise> - <mods xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.6" xsi:schemaLocation="http://www.loc.gov/mods/v3 http://www.loc.gov/standards/mods/v3/mods-3-6.xsd"> - <xsl:for-each select="//marc:record"> - <xsl:call-template name="marcRecord"/> - </xsl:for-each> - </mods> - </xsl:otherwise> - </xsl:choose> - </xsl:template> - <xsl:template name="marcRecord"> - <xsl:variable name="leader" select="marc:leader"/> - <xsl:variable name="leader6" select="substring($leader,7,1)"/> - <xsl:variable name="leader7" select="substring($leader,8,1)"/> - <xsl:variable name="leader19" select="substring($leader,20,1)"/> - <xsl:variable name="controlField008" select="marc:controlfield[@tag='008']"/> - <xsl:variable name="typeOf008"> - <xsl:choose> - <xsl:when test="$leader6='a'"> - <xsl:choose> - <xsl:when test="$leader7='a' or $leader7='c' or $leader7='d' or $leader7='m'">BK</xsl:when> - <xsl:when test="$leader7='b' or $leader7='i' or $leader7='s'">SE</xsl:when> - </xsl:choose> - </xsl:when> - <xsl:when test="$leader6='t'">BK</xsl:when> - <xsl:when test="$leader6='p'">MM</xsl:when> - <xsl:when test="$leader6='m'">CF</xsl:when> - <xsl:when test="$leader6='e' or $leader6='f'">MP</xsl:when> - <xsl:when test="$leader6='g' or $leader6='k' or $leader6='o' or $leader6='r'">VM</xsl:when> - <xsl:when test="$leader6='c' or $leader6='d' or $leader6='i' or $leader6='j'">MU</xsl:when> - </xsl:choose> - </xsl:variable> - - <!-- titleInfo --> - - <xsl:for-each select="marc:datafield[@tag='245']"> - <xsl:call-template name="createTitleInfoFrom245"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag='210']"> - <xsl:call-template name="createTitleInfoFrom210"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag='246']"> - <xsl:call-template name="createTitleInfoFrom246"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag='240']"> - <xsl:call-template name="createTitleInfoFrom240"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag='740']"> - <xsl:call-template name="createTitleInfoFrom740"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag='130']"> - <xsl:call-template name="createTitleInfoFrom130"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag='730']"> - <xsl:call-template name="createTitleInfoFrom730"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag='242']"> - <titleInfo type="translated"> - <!--09/01/04 Added subfield $y--> - <xsl:for-each select="marc:subfield[@code='y']"> - <xsl:attribute name="lang"> - <xsl:value-of select="text()"/> - </xsl:attribute> - </xsl:for-each> - - <!-- AQ1.27 tmee/dlf --> - <xsl:variable name="title"> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:call-template name="subfieldSelect"> - <!-- 1/04 removed $h, b --> - <xsl:with-param name="codes">a</xsl:with-param> - </xsl:call-template> - </xsl:with-param> - </xsl:call-template> - </xsl:variable> - <xsl:variable name="titleChop"> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:value-of select="$title"/> - </xsl:with-param> - </xsl:call-template> - </xsl:variable> - <xsl:choose> - <xsl:when test="@ind2>0"> - <!-- 1.112 --> - <nonSort xml:space="preserve"><xsl:value-of select="substring($titleChop,1,@ind2)"/> </nonSort> - <title> - <xsl:value-of select="substring($titleChop,@ind2+1)"/> - </title> - </xsl:when> - <xsl:otherwise> - <title> - <xsl:value-of select="$titleChop"/> - </title> - </xsl:otherwise> - </xsl:choose> - - <!-- 1/04 fix --> - <xsl:call-template name="subtitle"/> - <xsl:call-template name="part"/> - </titleInfo> - </xsl:for-each> - - <!-- name --> - <!-- 1.108 --> - <xsl:for-each select="marc:datafield[@tag='100'][not(marc:subfield[@code='t'])]"> - <xsl:call-template name="createNameFrom100"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag='110'][not(marc:subfield[@code='t'])]"> - <xsl:call-template name="createNameFrom110"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag='111'][not(marc:subfield[@code='t'])]"> - <xsl:call-template name="createNameFrom111"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag='700'][not(marc:subfield[@code='t'])]"> - <xsl:call-template name="createNameFrom700"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag='710'][not(marc:subfield[@code='t'])]"> - <xsl:call-template name="createNameFrom710"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag='711'][not(marc:subfield[@code='t'])]"> - <xsl:call-template name="createNameFrom711"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag='720'][not(marc:subfield[@code='t'])]"> - <xsl:call-template name="createNameFrom720"/> - </xsl:for-each> - - <!--old 7XXs - <xsl:for-each select="marc:datafield[@tag='700'][not(marc:subfield[@code='t'])]"> - <name type="personal"> - <xsl:call-template name="nameABCDQ"/> - <xsl:call-template name="affiliation"/> - <xsl:call-template name="role"/> - </name> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag='710'][not(marc:subfield[@code='t'])]"> - <name type="corporate"> - <xsl:call-template name="nameABCDN"/> - <xsl:call-template name="role"/> - </name> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag='711'][not(marc:subfield[@code='t'])]"> - <name type="conference"> - <xsl:call-template name="nameACDEQ"/> - <xsl:call-template name="role"/> - </name> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag='720'][not(marc:subfield[@code='t'])]"> - <name> - <xsl:if test="@ind1=1"> - <xsl:attribute name="type"> - <xsl:text>personal</xsl:text> - </xsl:attribute> - </xsl:if> - <namePart> - <xsl:value-of select="marc:subfield[@code='a']"/> - </namePart> - <xsl:call-template name="role"/> - </name> - </xsl:for-each> ---> - - <typeOfResource> - <xsl:if test="$leader7='c'"> - <xsl:attribute name="collection">yes</xsl:attribute> - </xsl:if> - <xsl:if test="$leader6='d' or $leader6='f' or $leader6='p' or $leader6='t'"> - <xsl:attribute name="manuscript">yes</xsl:attribute> - </xsl:if> - <xsl:choose> - <xsl:when test="$leader6='a' or $leader6='t'">text</xsl:when> - <xsl:when test="$leader6='e' or $leader6='f'">cartographic</xsl:when> - <xsl:when test="$leader6='c' or $leader6='d'">notated music</xsl:when> - <xsl:when test="$leader6='i'">sound recording-nonmusical</xsl:when> - <xsl:when test="$leader6='j'">sound recording-musical</xsl:when> - <xsl:when test="$leader6='k'">still image</xsl:when> - <xsl:when test="$leader6='g'">moving image</xsl:when> - <xsl:when test="$leader6='r'">three dimensional object</xsl:when> - <xsl:when test="$leader6='m'">software, multimedia</xsl:when> - <xsl:when test="$leader6='p'">mixed material</xsl:when> - </xsl:choose> - </typeOfResource> - <xsl:if test="substring($controlField008,26,1)='d'"> - <genre authority="marcgt">globe</genre> - </xsl:if> - <xsl:if test="marc:controlfield[@tag='007'][substring(text(),1,1)='a'][substring(text(),2,1)='r']"> - <genre authority="marcgt">remote-sensing image</genre> - </xsl:if> - <xsl:if test="$typeOf008='MP'"> - <xsl:variable name="controlField008-25" select="substring($controlField008,26,1)"/> - <xsl:choose> - <xsl:when test="$controlField008-25='a' or $controlField008-25='b' or $controlField008-25='c' or marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2,1)='j']"> - <genre authority="marcgt">map</genre> - </xsl:when> - <xsl:when test="$controlField008-25='e' or marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2,1)='d']"> - <genre authority="marcgt">atlas</genre> - </xsl:when> - </xsl:choose> - </xsl:if> - <xsl:if test="$typeOf008='SE'"> - <xsl:variable name="controlField008-21" select="substring($controlField008,22,1)"/> - <xsl:choose> - <xsl:when test="$controlField008-21='d'"> - <genre authority="marcgt">database</genre> - </xsl:when> - <xsl:when test="$controlField008-21='l'"> - <genre authority="marcgt">loose-leaf</genre> - </xsl:when> - <xsl:when test="$controlField008-21='m'"> - <genre authority="marcgt">series</genre> - </xsl:when> - <xsl:when test="$controlField008-21='n'"> - <genre authority="marcgt">newspaper</genre> - </xsl:when> - <xsl:when test="$controlField008-21='p'"> - <genre authority="marcgt">periodical</genre> - </xsl:when> - <xsl:when test="$controlField008-21='w'"> - <genre authority="marcgt">web site</genre> - </xsl:when> - </xsl:choose> - </xsl:if> - <xsl:if test="$typeOf008='BK' or $typeOf008='SE'"> - <xsl:variable name="controlField008-24" select="substring($controlField008,25,4)"/> - <xsl:choose> - <xsl:when test="contains($controlField008-24,'a')"> - <genre authority="marcgt">abstract or summary</genre> - </xsl:when> - <xsl:when test="contains($controlField008-24,'b')"> - <genre authority="marcgt">bibliography</genre> - </xsl:when> - <xsl:when test="contains($controlField008-24,'c')"> - <genre authority="marcgt">catalog</genre> - </xsl:when> - <xsl:when test="contains($controlField008-24,'d')"> - <genre authority="marcgt">dictionary</genre> - </xsl:when> - <xsl:when test="contains($controlField008-24,'e')"> - <genre authority="marcgt">encyclopedia</genre> - </xsl:when> - <xsl:when test="contains($controlField008-24,'f')"> - <genre authority="marcgt">handbook</genre> - </xsl:when> - <xsl:when test="contains($controlField008-24,'g')"> - <genre authority="marcgt">legal article</genre> - </xsl:when> - <xsl:when test="contains($controlField008-24,'i')"> - <genre authority="marcgt">index</genre> - </xsl:when> - <xsl:when test="contains($controlField008-24,'k')"> - <genre authority="marcgt">discography</genre> - </xsl:when> - <xsl:when test="contains($controlField008-24,'l')"> - <genre authority="marcgt">legislation</genre> - </xsl:when> - <xsl:when test="contains($controlField008-24,'m')"> - <genre authority="marcgt">theses</genre> - </xsl:when> - <xsl:when test="contains($controlField008-24,'n')"> - <genre authority="marcgt">survey of literature</genre> - </xsl:when> - <xsl:when test="contains($controlField008-24,'o')"> - <genre authority="marcgt">review</genre> - </xsl:when> - <xsl:when test="contains($controlField008-24,'p')"> - <genre authority="marcgt">programmed text</genre> - </xsl:when> - <xsl:when test="contains($controlField008-24,'q')"> - <genre authority="marcgt">filmography</genre> - </xsl:when> - <xsl:when test="contains($controlField008-24,'r')"> - <genre authority="marcgt">directory</genre> - </xsl:when> - <xsl:when test="contains($controlField008-24,'s')"> - <genre authority="marcgt">statistics</genre> - </xsl:when> - <xsl:when test="contains($controlField008-24,'t')"> - <genre authority="marcgt">technical report</genre> - </xsl:when> - <xsl:when test="contains($controlField008-24,'v')"> - <genre authority="marcgt">legal case and case notes</genre> - </xsl:when> - <xsl:when test="contains($controlField008-24,'w')"> - <genre authority="marcgt">law report or digest</genre> - </xsl:when> - <xsl:when test="contains($controlField008-24,'z')"> - <genre authority="marcgt">treaty</genre> - </xsl:when> - </xsl:choose> - <xsl:variable name="controlField008-29" select="substring($controlField008,30,1)"/> - <xsl:choose> - <xsl:when test="$controlField008-29='1'"> - <genre authority="marcgt">conference publication</genre> - </xsl:when> - </xsl:choose> - </xsl:if> - <xsl:if test="$typeOf008='CF'"> - <xsl:variable name="controlField008-26" select="substring($controlField008,27,1)"/> - <xsl:choose> - <xsl:when test="$controlField008-26='a'"> - <genre authority="marcgt">numeric data</genre> - </xsl:when> - <xsl:when test="$controlField008-26='e'"> - <genre authority="marcgt">database</genre> - </xsl:when> - <xsl:when test="$controlField008-26='f'"> - <genre authority="marcgt">font</genre> - </xsl:when> - <xsl:when test="$controlField008-26='g'"> - <genre authority="marcgt">game</genre> - </xsl:when> - </xsl:choose> - </xsl:if> - <xsl:if test="$typeOf008='BK'"> - <xsl:if test="substring($controlField008,25,1)='j'"> - <genre authority="marcgt">patent</genre> - </xsl:if> - <xsl:if test="substring($controlField008,25,1)='2'"> - <genre authority="marcgt">offprint</genre> - </xsl:if> - <xsl:if test="substring($controlField008,31,1)='1'"> - <genre authority="marcgt">festschrift</genre> - </xsl:if> - <xsl:variable name="controlField008-34" select="substring($controlField008,35,1)"/> - <xsl:if test="$controlField008-34='a' or $controlField008-34='b' or $controlField008-34='c' or $controlField008-34='d'"> - <genre authority="marcgt">biography</genre> - </xsl:if> - <xsl:variable name="controlField008-33" select="substring($controlField008,34,1)"/> - <xsl:choose> - <xsl:when test="$controlField008-33='e'"> - <genre authority="marcgt">essay</genre> - </xsl:when> - <xsl:when test="$controlField008-33='d'"> - <genre authority="marcgt">drama</genre> - </xsl:when> - <xsl:when test="$controlField008-33='c'"> - <genre authority="marcgt">comic strip</genre> - </xsl:when> - <xsl:when test="$controlField008-33='l'"> - <genre authority="marcgt">fiction</genre> - </xsl:when> - <xsl:when test="$controlField008-33='h'"> - <genre authority="marcgt">humor, satire</genre> - </xsl:when> - <xsl:when test="$controlField008-33='i'"> - <genre authority="marcgt">letter</genre> - </xsl:when> - <xsl:when test="$controlField008-33='f'"> - <genre authority="marcgt">novel</genre> - </xsl:when> - <xsl:when test="$controlField008-33='j'"> - <genre authority="marcgt">short story</genre> - </xsl:when> - <xsl:when test="$controlField008-33='s'"> - <genre authority="marcgt">speech</genre> - </xsl:when> - </xsl:choose> - </xsl:if> - <xsl:if test="$typeOf008='MU'"> - <xsl:variable name="controlField008-30-31" select="substring($controlField008,31,2)"/> - <xsl:if test="contains($controlField008-30-31,'b')"> - <genre authority="marcgt">biography</genre> - </xsl:if> - <xsl:if test="contains($controlField008-30-31,'c')"> - <genre authority="marcgt">conference publication</genre> - </xsl:if> - <xsl:if test="contains($controlField008-30-31,'d')"> - <genre authority="marcgt">drama</genre> - </xsl:if> - <xsl:if test="contains($controlField008-30-31,'e')"> - <genre authority="marcgt">essay</genre> - </xsl:if> - <xsl:if test="contains($controlField008-30-31,'f')"> - <genre authority="marcgt">fiction</genre> - </xsl:if> - <xsl:if test="contains($controlField008-30-31,'o')"> - <genre authority="marcgt">folktale</genre> - </xsl:if> - <xsl:if test="contains($controlField008-30-31,'h')"> - <genre authority="marcgt">history</genre> - </xsl:if> - <xsl:if test="contains($controlField008-30-31,'k')"> - <genre authority="marcgt">humor, satire</genre> - </xsl:if> - <xsl:if test="contains($controlField008-30-31,'m')"> - <genre authority="marcgt">memoir</genre> - </xsl:if> - <xsl:if test="contains($controlField008-30-31,'p')"> - <genre authority="marcgt">poetry</genre> - </xsl:if> - <xsl:if test="contains($controlField008-30-31,'r')"> - <genre authority="marcgt">rehearsal</genre> - </xsl:if> - <xsl:if test="contains($controlField008-30-31,'g')"> - <genre authority="marcgt">reporting</genre> - </xsl:if> - <xsl:if test="contains($controlField008-30-31,'s')"> - <genre authority="marcgt">sound</genre> - </xsl:if> - <xsl:if test="contains($controlField008-30-31,'l')"> - <genre authority="marcgt">speech</genre> - </xsl:if> - </xsl:if> - <xsl:if test="$typeOf008='VM'"> - <xsl:variable name="controlField008-33" select="substring($controlField008,34,1)"/> - <xsl:choose> - <xsl:when test="$controlField008-33='a'"> - <genre authority="marcgt">art original</genre> - </xsl:when> - <xsl:when test="$controlField008-33='b'"> - <genre authority="marcgt">kit</genre> - </xsl:when> - <xsl:when test="$controlField008-33='c'"> - <genre authority="marcgt">art reproduction</genre> - </xsl:when> - <xsl:when test="$controlField008-33='d'"> - <genre authority="marcgt">diorama</genre> - </xsl:when> - <xsl:when test="$controlField008-33='f'"> - <genre authority="marcgt">filmstrip</genre> - </xsl:when> - <xsl:when test="$controlField008-33='g'"> - <genre authority="marcgt">legal article</genre> - </xsl:when> - <xsl:when test="$controlField008-33='i'"> - <genre authority="marcgt">picture</genre> - </xsl:when> - <xsl:when test="$controlField008-33='k'"> - <genre authority="marcgt">graphic</genre> - </xsl:when> - <xsl:when test="$controlField008-33='l'"> - <genre authority="marcgt">technical drawing</genre> - </xsl:when> - <xsl:when test="$controlField008-33='m'"> - <genre authority="marcgt">motion picture</genre> - </xsl:when> - <xsl:when test="$controlField008-33='n'"> - <genre authority="marcgt">chart</genre> - </xsl:when> - <xsl:when test="$controlField008-33='o'"> - <genre authority="marcgt">flash card</genre> - </xsl:when> - <xsl:when test="$controlField008-33='p'"> - <genre authority="marcgt">microscope slide</genre> - </xsl:when> - <xsl:when test="$controlField008-33='q' or marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2,1)='q']"> - <genre authority="marcgt">model</genre> - </xsl:when> - <xsl:when test="$controlField008-33='r'"> - <genre authority="marcgt">realia</genre> - </xsl:when> - <xsl:when test="$controlField008-33='s'"> - <genre authority="marcgt">slide</genre> - </xsl:when> - <xsl:when test="$controlField008-33='t'"> - <genre authority="marcgt">transparency</genre> - </xsl:when> - <xsl:when test="$controlField008-33='v'"> - <genre authority="marcgt">videorecording</genre> - </xsl:when> - <xsl:when test="$controlField008-33='w'"> - <genre authority="marcgt">toy</genre> - </xsl:when> - </xsl:choose> - </xsl:if> - -<!-- 111$n, 711$n 1.103 --> - - <xsl:if test="$typeOf008='BK'"> - <xsl:variable name="controlField008-28" select="substring($controlField008,29,1)"/> - <xsl:choose> - <xsl:when test="contains($controlField008-28,'a')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'c')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'f')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'m')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'i')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'l')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'m')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'o')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'s')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'u')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'z')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'|')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - </xsl:choose> - </xsl:if> - <xsl:if test="$typeOf008='CF'"> - <xsl:variable name="controlField008-28" select="substring($controlField008,29,1)"/> - <xsl:choose> - <xsl:when test="contains($controlField008-28,'a')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'c')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'f')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'m')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'i')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'l')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'m')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'o')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'s')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'u')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'z')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'|')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - </xsl:choose> - </xsl:if> - <xsl:if test="$typeOf008='CR'"> - <xsl:variable name="controlField008-28" select="substring($controlField008,29,1)"/> - <xsl:choose> - <xsl:when test="contains($controlField008-28,'a')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'c')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'f')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'m')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'i')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'l')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'m')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'o')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'s')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'u')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'z')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'|')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - </xsl:choose> - </xsl:if> - <xsl:if test="$typeOf008='MP'"> - <xsl:variable name="controlField008-28" select="substring($controlField008,29,1)"/> - <xsl:choose> - <xsl:when test="contains($controlField008-28,'a')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'c')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'f')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'m')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'i')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'l')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'m')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'o')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'s')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'u')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'z')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'|')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - </xsl:choose> - </xsl:if> - <xsl:if test="$typeOf008='VM'"> - <xsl:variable name="controlField008-28" select="substring($controlField008,29,1)"/> - <xsl:choose> - <xsl:when test="contains($controlField008-28,'a')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'c')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'f')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'m')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'i')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'l')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'m')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'o')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'s')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'u')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'z')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - <xsl:when test="contains($controlField008-28,'|')"> - <genre authority="marcgt">government publication</genre> - </xsl:when> - </xsl:choose> - </xsl:if> - - - <!-- genre --> - - <xsl:for-each select="marc:datafield[@tag=047]"> - <xsl:call-template name="createGenreFrom047"/> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=336]"> - <xsl:call-template name="createGenreFrom336"/> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=655]"> - <xsl:call-template name="createGenreFrom655"/> - </xsl:for-each> - - <!-- originInfo 250 and 260 --> - - <originInfo> - <xsl:call-template name="scriptCode"/> - <xsl:for-each select="marc:datafield[(@tag=260 or @tag=250) and marc:subfield[@code='a' or code='b' or @code='c' or code='g']]"> - <xsl:call-template name="z2xx880"/> - </xsl:for-each> - - <xsl:variable name="MARCpublicationCode" select="normalize-space(substring($controlField008,16,3))"/> - <xsl:if test="translate($MARCpublicationCode,'|','')"> - <place> - <placeTerm> - <xsl:attribute name="type">code</xsl:attribute> - <xsl:attribute name="authority">marccountry</xsl:attribute> - <xsl:value-of select="$MARCpublicationCode"/> - </placeTerm> - </place> - </xsl:if> - <xsl:for-each select="marc:datafield[@tag=044]/marc:subfield[@code='c']"> - <place> - <placeTerm> - <xsl:attribute name="type">code</xsl:attribute> - <xsl:attribute name="authority">iso3166</xsl:attribute> - <xsl:value-of select="."/> - </placeTerm> - </place> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=260]/marc:subfield[@code='a']"> - <place> - <placeTerm> - <xsl:attribute name="type">text</xsl:attribute> - <xsl:call-template name="chopPunctuationFront"> - <xsl:with-param name="chopString"> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString" select="."/> - </xsl:call-template> - </xsl:with-param> - </xsl:call-template> - </placeTerm> - </place> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=046]/marc:subfield[@code='m']"> - <dateValid point="start"> - <xsl:value-of select="."/> - </dateValid> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=046]/marc:subfield[@code='n']"> - <dateValid point="end"> - <xsl:value-of select="."/> - </dateValid> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=046]/marc:subfield[@code='j']"> - <dateModified> - <xsl:value-of select="."/> - </dateModified> - </xsl:for-each> - - <!-- tmee 1.52 --> - - <xsl:for-each select="marc:datafield[@tag=046]/marc:subfield[@code='c']"> - <dateIssued encoding="marc" point="start"> - <xsl:value-of select="."/> - </dateIssued> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=046]/marc:subfield[@code='e']"> - <dateIssued encoding="marc" point="end"> - <xsl:value-of select="."/> - </dateIssued> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=046]/marc:subfield[@code='k']"> - <dateCreated encoding="marc" point="start"> - <xsl:value-of select="."/> - </dateCreated> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=046]/marc:subfield[@code='l']"> - <dateCreated encoding="marc" point="end"> - <xsl:value-of select="."/> - </dateCreated> - </xsl:for-each> - - <!-- tmee 1.35 1.36 dateIssued/nonMSS vs dateCreated/MSS --> - <xsl:for-each select="marc:datafield[@tag=260]/marc:subfield[@code='b' or @code='c' or @code='g']"> - <xsl:choose> - <xsl:when test="@code='b'"> - <publisher> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString" select="."/> - <xsl:with-param name="punctuation"> - <xsl:text>:,;/ </xsl:text> - </xsl:with-param> - </xsl:call-template> - </publisher> - </xsl:when> - <xsl:when test="(@code='c')"> - <xsl:if test="$leader6='d' or $leader6='f' or $leader6='p' or $leader6='t'"> - <dateCreated> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString" select="."/> - </xsl:call-template> - </dateCreated> - </xsl:if> - - <xsl:if test="not($leader6='d' or $leader6='f' or $leader6='p' or $leader6='t')"> - <dateIssued> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString" select="."/> - </xsl:call-template> - </dateIssued> - </xsl:if> - </xsl:when> - <xsl:when test="@code='g'"> - <xsl:if test="$leader6='d' or $leader6='f' or $leader6='p' or $leader6='t'"> - <dateCreated> - <xsl:value-of select="."/> - </dateCreated> - </xsl:if> - <xsl:if test="not($leader6='d' or $leader6='f' or $leader6='p' or $leader6='t')"> - <dateCreated> - <xsl:value-of select="."/> - </dateCreated> - </xsl:if> - </xsl:when> - </xsl:choose> - </xsl:for-each> - <xsl:variable name="dataField260c"> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString" select="marc:datafield[@tag=260]/marc:subfield[@code='c']"/> - </xsl:call-template> - </xsl:variable> - <xsl:variable name="controlField008-7-10" select="normalize-space(substring($controlField008, 8, 4))"/> - <xsl:variable name="controlField008-11-14" select="normalize-space(substring($controlField008, 12, 4))"/> - <xsl:variable name="controlField008-6" select="normalize-space(substring($controlField008, 7, 1))"/> - - - - <!-- tmee 1.35 and 1.36 and 1.84--> - - <xsl:if test="($controlField008-6='e' or $controlField008-6='p' or $controlField008-6='r' or $controlField008-6='s' or $controlField008-6='t') and ($leader6='d' or $leader6='f' or $leader6='p' or $leader6='t')"> - <xsl:if test="$controlField008-7-10 and ($controlField008-7-10 != $dataField260c)"> - <dateCreated encoding="marc"> - <xsl:value-of select="$controlField008-7-10"/> - </dateCreated> - </xsl:if> - </xsl:if> - - <xsl:if test="($controlField008-6='e' or $controlField008-6='p' or $controlField008-6='r' or $controlField008-6='s' or $controlField008-6='t') and not($leader6='d' or $leader6='f' or $leader6='p' or $leader6='t')"> - <xsl:if test="$controlField008-7-10 and ($controlField008-7-10 != $dataField260c)"> - <dateIssued encoding="marc"> - <xsl:value-of select="$controlField008-7-10"/></dateIssued> - </xsl:if> - </xsl:if> - - <xsl:if test="$controlField008-6='c' or $controlField008-6='d' or $controlField008-6='i' or $controlField008-6='k' or $controlField008-6='m' or $controlField008-6='u'"> - <xsl:if test="$controlField008-7-10"> - <dateIssued encoding="marc" point="start"> - <xsl:value-of select="$controlField008-7-10"/> - </dateIssued> - </xsl:if> - </xsl:if> - - <xsl:if test="$controlField008-6='c' or $controlField008-6='d' or $controlField008-6='i' or $controlField008-6='k' or $controlField008-6='m' or $controlField008-6='u'"> - <xsl:if test="$controlField008-11-14"> - <dateIssued encoding="marc" point="end"> - <xsl:value-of select="$controlField008-11-14"/> - </dateIssued> - </xsl:if> - </xsl:if> - - <xsl:if test="$controlField008-6='q'"> - <xsl:if test="$controlField008-7-10"> - <dateIssued encoding="marc" point="start" qualifier="questionable"> - <xsl:value-of select="$controlField008-7-10"/> - </dateIssued> - </xsl:if> - </xsl:if> - <xsl:if test="$controlField008-6='q'"> - <xsl:if test="$controlField008-11-14"> - <dateIssued encoding="marc" point="end" qualifier="questionable"> - <xsl:value-of select="$controlField008-11-14"/> - </dateIssued> - </xsl:if> - </xsl:if> - - - <!-- tmee 1.77 008-06 dateIssued for value 's' 1.89 removed 20130920 - <xsl:if test="$controlField008-6='s'"> - <xsl:if test="$controlField008-7-10"> - <dateIssued encoding="marc"> - <xsl:value-of select="$controlField008-7-10"/> - </dateIssued> - </xsl:if> - </xsl:if> - --> - - <xsl:if test="$controlField008-6='t'"> - <xsl:if test="$controlField008-11-14"> - <copyrightDate encoding="marc"> - <xsl:value-of select="$controlField008-11-14"/> - </copyrightDate> - </xsl:if> - </xsl:if> - <xsl:for-each select="marc:datafield[@tag=033][@ind1=0 or @ind1=1]/marc:subfield[@code='a']"> - <dateCaptured encoding="iso8601"> - <xsl:value-of select="."/> - </dateCaptured> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=033][@ind1=2]/marc:subfield[@code='a'][1]"> - <dateCaptured encoding="iso8601" point="start"> - <xsl:value-of select="."/> - </dateCaptured> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=033][@ind1=2]/marc:subfield[@code='a'][2]"> - <dateCaptured encoding="iso8601" point="end"> - <xsl:value-of select="."/> - </dateCaptured> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=250]/marc:subfield[@code='a']"> - <edition> - <xsl:value-of select="."/> - </edition> - </xsl:for-each> - <xsl:for-each select="marc:leader"> - <issuance> - <xsl:choose> - <xsl:when test="$leader7='a' or $leader7='c' or $leader7='d' or $leader7='m'">monographic</xsl:when> - <xsl:when test="$leader7='m' and ($leader19='a' or $leader19='b' or $leader19='c')">multipart monograph</xsl:when> - <!-- 1.106 20141218 --> - <xsl:when test="$leader7='m' and ($leader19=' ')">single unit</xsl:when> - <xsl:when test="$leader7='m' and ($leader19='#')">single unit</xsl:when> - <xsl:when test="$leader7='i'">integrating resource</xsl:when> - <xsl:when test="$leader7='b' or $leader7='s'">serial</xsl:when> - </xsl:choose> - </issuance> - </xsl:for-each> - - <!-- 1.96 20140422 --> - <xsl:for-each select="marc:datafield[@tag=310]|marc:datafield[@tag=321]"> - <frequency> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">ab</xsl:with-param> - </xsl:call-template> - </frequency> - </xsl:for-each> - - <!-- 1.67 1.72 updated fixed location issue 201308 1.86 --> - - <xsl:if test="$typeOf008='SE'"> - <xsl:for-each select="marc:controlfield[@tag=008]"> - <xsl:variable name="controlField008-18" select="substring($controlField008,19,1)"/> - <xsl:variable name="frequency"> - <frequency> - <xsl:choose> - <xsl:when test="$controlField008-18='a'">Annual</xsl:when> - <xsl:when test="$controlField008-18='b'">Bimonthly</xsl:when> - <xsl:when test="$controlField008-18='c'">Semiweekly</xsl:when> - <xsl:when test="$controlField008-18='d'">Daily</xsl:when> - <xsl:when test="$controlField008-18='e'">Biweekly</xsl:when> - <xsl:when test="$controlField008-18='f'">Semiannual</xsl:when> - <xsl:when test="$controlField008-18='g'">Biennial</xsl:when> - <xsl:when test="$controlField008-18='h'">Triennial</xsl:when> - <xsl:when test="$controlField008-18='i'">Three times a week</xsl:when> - <xsl:when test="$controlField008-18='j'">Three times a month</xsl:when> - <xsl:when test="$controlField008-18='k'">Continuously updated</xsl:when> - <xsl:when test="$controlField008-18='m'">Monthly</xsl:when> - <xsl:when test="$controlField008-18='q'">Quarterly</xsl:when> - <xsl:when test="$controlField008-18='s'">Semimonthly</xsl:when> - <xsl:when test="$controlField008-18='t'">Three times a year</xsl:when> - <xsl:when test="$controlField008-18='u'">Unknown</xsl:when> - <xsl:when test="$controlField008-18='w'">Weekly</xsl:when> - <!-- 1.106 20141218 --> - <xsl:when test="$controlField008-18=' '">Completely irregular</xsl:when> - <xsl:when test="$controlField008-18='#'">Completely irregular</xsl:when> - <xsl:otherwise/> - </xsl:choose> - </frequency> - </xsl:variable> - <xsl:if test="$frequency!=''"> - <frequency authority="marcfrequency"> - <xsl:value-of select="$frequency"/> - </frequency> - </xsl:if> - </xsl:for-each> - </xsl:if> - </originInfo> - - - <!-- originInfo - 264 --> - - <xsl:for-each select="marc:datafield[@tag=264][@ind2=0]"> - <originInfo eventType="production"> - <!-- Template checks for altRepGroup - 880 $6 --> - <xsl:call-template name="xxx880"/> - <place> - <placeTerm type="text"> - <xsl:value-of select="marc:subfield[@code='a']"/> - </placeTerm> - </place> - <publisher> - <xsl:value-of select="marc:subfield[@code='b']"/> - </publisher> - <dateOther type="production"> - <xsl:value-of select="marc:subfield[@code='c']"/> - </dateOther> - </originInfo> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=264][@ind2=1]"> - <originInfo eventType="publication"> - <!-- Template checks for altRepGroup - 880 $6 1.88 20130829 added chopPunc--> - <xsl:call-template name="xxx880"/> - <place> - <placeTerm type="text"> - <xsl:value-of select="marc:subfield[@code='a']"/> - </placeTerm> - </place> - <publisher> - <xsl:value-of select="marc:subfield[@code='b']"/> - </publisher> - <dateIssued> - <xsl:value-of select="marc:subfield[@code='c']"/> - </dateIssued> - </originInfo> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=264][@ind2=2]"> - <originInfo eventType="distribution"> - <!-- Template checks for altRepGroup - 880 $6 --> - <xsl:call-template name="xxx880"/> - <place> - <placeTerm type="text"> - <xsl:value-of select="marc:subfield[@code='a']"/> - </placeTerm> - </place> - <publisher> - <xsl:value-of select="marc:subfield[@code='b']"/> - </publisher> - <dateOther type="distribution"> - <xsl:value-of select="marc:subfield[@code='c']"/> - </dateOther> - </originInfo> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=264][@ind2=3]"> - <originInfo eventType="manufacture"> - <!-- Template checks for altRepGroup - 880 $6 --> - <xsl:call-template name="xxx880"/> - <place> - <placeTerm type="text"> - <xsl:value-of select="marc:subfield[@code='a']"/> - </placeTerm> - </place> - <publisher> - <xsl:value-of select="marc:subfield[@code='b']"/> - </publisher> - <dateOther type="manufacture"> - <xsl:value-of select="marc:subfield[@code='c']"/> - </dateOther> - </originInfo> - </xsl:for-each> - - - <xsl:for-each select="marc:datafield[@tag=880]"> - <xsl:variable name="related_datafield" select="substring-before(marc:subfield[@code='6'],'-')"/> - <xsl:variable name="occurence_number" select="substring( substring-after(marc:subfield[@code='6'],'-') , 1 , 2 )"/> - <xsl:variable name="hit" select="../marc:datafield[@tag=$related_datafield and contains(marc:subfield[@code='6'] , concat('880-' , $occurence_number))]/@tag"/> - - <xsl:choose> - <xsl:when test="$hit='260'"> - <originInfo> - <xsl:call-template name="scriptCode"/> - <xsl:for-each select="../marc:datafield[@tag=260 and marc:subfield[@code='a' or code='b' or @code='c' or code='g']]"> - <xsl:call-template name="z2xx880"/> - </xsl:for-each> - <xsl:if test="marc:subfield[@code='a']"> - <place> - <placeTerm type="text"> - <xsl:value-of select="marc:subfield[@code='a']"/> - </placeTerm> - </place> - </xsl:if> - <xsl:if test="marc:subfield[@code='b']"> - <publisher> - <xsl:value-of select="marc:subfield[@code='b']"/> - </publisher> - </xsl:if> - <xsl:if test="marc:subfield[@code='c']"> - <dateIssued> - <xsl:value-of select="marc:subfield[@code='c']"/> - </dateIssued> - </xsl:if> - <xsl:if test="marc:subfield[@code='g']"> - <dateCreated> - <xsl:value-of select="marc:subfield[@code='g']"/> - </dateCreated> - </xsl:if> - <xsl:for-each select="../marc:datafield[@tag=880]/marc:subfield[@code=6][contains(text(),'250')]"> - <edition> - <xsl:value-of select="following-sibling::marc:subfield"/> - </edition> - </xsl:for-each> - </originInfo> - </xsl:when> - <xsl:when test="$hit='300'"> - <physicalDescription> - <xsl:for-each select="../marc:datafield[@tag=300]"> - <xsl:call-template name="z3xx880"/> - </xsl:for-each> - <extent> - <xsl:for-each select="marc:subfield"> - <xsl:if test="@code='a' or @code='3' or @code='b' or @code='c'"> - <xsl:value-of select="."/> - <xsl:text> </xsl:text> - </xsl:if> - </xsl:for-each> - </extent> - <!-- form 337 338 --> - <form> - <xsl:attribute name="authority"> - <xsl:value-of select="marc:subfield[@code='2']"/> - </xsl:attribute> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">a</xsl:with-param> - </xsl:call-template> - </form> - </physicalDescription> - </xsl:when> - </xsl:choose> - </xsl:for-each> - - <!-- language 041 --> - <xsl:variable name="controlField008-35-37" select="normalize-space(translate(substring($controlField008,36,3),'|#',''))"/> - <xsl:if test="$controlField008-35-37"> - <language> - <languageTerm authority="iso639-2b" type="code"> - <xsl:value-of select="substring($controlField008,36,3)"/> - </languageTerm> - </language> - </xsl:if> - <xsl:for-each select="marc:datafield[@tag=041]"> - <xsl:for-each select="marc:subfield[@code='a' or @code='b' or @code='d' or @code='e' or @code='f' or @code='g' or @code='h']"> - <xsl:variable name="langCodes" select="."/> - <xsl:choose> - <xsl:when test="../marc:subfield[@code='2']='rfc3066'"> - <!-- not stacked but could be repeated --> - <xsl:call-template name="rfcLanguages"> - <xsl:with-param name="nodeNum"> - <xsl:value-of select="1"/> - </xsl:with-param> - <xsl:with-param name="usedLanguages"> - <xsl:text/> - </xsl:with-param> - <xsl:with-param name="controlField008-35-37"> - <xsl:value-of select="$controlField008-35-37"/> - </xsl:with-param> - </xsl:call-template> - </xsl:when> - <xsl:otherwise> - <!-- iso --> - <xsl:variable name="allLanguages"> - <xsl:copy-of select="$langCodes"/> - </xsl:variable> - <xsl:variable name="currentLanguage"> - <xsl:value-of select="substring($allLanguages,1,3)"/> - </xsl:variable> - <xsl:call-template name="isoLanguage"> - <xsl:with-param name="currentLanguage"> - <xsl:value-of select="substring($allLanguages,1,3)"/> - </xsl:with-param> - <xsl:with-param name="remainingLanguages"> - <xsl:value-of select="substring($allLanguages,4,string-length($allLanguages)-3)"/> - </xsl:with-param> - <xsl:with-param name="usedLanguages"> - <xsl:if test="$controlField008-35-37"> - <xsl:value-of select="$controlField008-35-37"/> - </xsl:if> - </xsl:with-param> - </xsl:call-template> - </xsl:otherwise> - </xsl:choose> - </xsl:for-each> - </xsl:for-each> - - <!-- physicalDescription --> - - <xsl:variable name="physicalDescription"> - <!--3.2 change tmee 007/11 --> - <xsl:if test="$typeOf008='CF' and marc:controlfield[@tag=007][substring(.,12,1)='a']"> - <digitalOrigin>reformatted digital</digitalOrigin> - </xsl:if> - <xsl:if test="$typeOf008='CF' and marc:controlfield[@tag=007][substring(.,12,1)='b']"> - <digitalOrigin>digitized microfilm</digitalOrigin> - </xsl:if> - <xsl:if test="$typeOf008='CF' and marc:controlfield[@tag=007][substring(.,12,1)='d']"> - <digitalOrigin>digitized other analog</digitalOrigin> - </xsl:if> - <xsl:variable name="controlField008-23" select="substring($controlField008,24,1)"/> - <xsl:variable name="controlField008-29" select="substring($controlField008,30,1)"/> - <xsl:variable name="check008-23"> - <xsl:if test="$typeOf008='BK' or $typeOf008='MU' or $typeOf008='SE' or $typeOf008='MM'"> - <xsl:value-of select="true()"/> - </xsl:if> - </xsl:variable> - <xsl:variable name="check008-29"> - <xsl:if test="$typeOf008='MP' or $typeOf008='VM'"> - <xsl:value-of select="true()"/> - </xsl:if> - </xsl:variable> - <xsl:choose> - <xsl:when test="($check008-23 and $controlField008-23='f') or ($check008-29 and $controlField008-29='f')"> - <form authority="marcform">braille</form> - </xsl:when> - <xsl:when test="($controlField008-23=' ' and ($leader6='c' or $leader6='d')) or (($typeOf008='BK' or $typeOf008='SE') and ($controlField008-23=' ' or $controlField008='r'))"> - <form authority="marcform">print</form> - </xsl:when> - <xsl:when test="$leader6 = 'm' or ($check008-23 and $controlField008-23='s') or ($check008-29 and $controlField008-29='s')"> - <form authority="marcform">electronic</form> - </xsl:when> - <!-- 1.33 --> - <xsl:when test="$leader6 = 'o'"> - <form authority="marcform">kit</form> - </xsl:when> - <xsl:when test="($check008-23 and $controlField008-23='b') or ($check008-29 and $controlField008-29='b')"> - <form authority="marcform">microfiche</form> - </xsl:when> - <xsl:when test="($check008-23 and $controlField008-23='a') or ($check008-29 and $controlField008-29='a')"> - <form authority="marcform">microfilm</form> - </xsl:when> - </xsl:choose> - - <!-- 1/04 fix --> - <xsl:if test="marc:datafield[@tag=130]/marc:subfield[@code='h']"> - <form authority="gmd"> - <xsl:call-template name="chopBrackets"> - <xsl:with-param name="chopString"> - <xsl:value-of select="marc:datafield[@tag=130]/marc:subfield[@code='h']"/> - </xsl:with-param> - </xsl:call-template> - </form> - </xsl:if> - <xsl:if test="marc:datafield[@tag=240]/marc:subfield[@code='h']"> - <form authority="gmd"> - <xsl:call-template name="chopBrackets"> - <xsl:with-param name="chopString"> - <xsl:value-of select="marc:datafield[@tag=240]/marc:subfield[@code='h']"/> - </xsl:with-param> - </xsl:call-template> - </form> - </xsl:if> - <xsl:if test="marc:datafield[@tag=242]/marc:subfield[@code='h']"> - <form authority="gmd"> - <xsl:call-template name="chopBrackets"> - <xsl:with-param name="chopString"> - <xsl:value-of select="marc:datafield[@tag=242]/marc:subfield[@code='h']"/> - </xsl:with-param> - </xsl:call-template> - </form> - </xsl:if> - <xsl:if test="marc:datafield[@tag=245]/marc:subfield[@code='h']"> - <form authority="gmd"> - <xsl:call-template name="chopBrackets"> - <xsl:with-param name="chopString"> - <xsl:value-of select="marc:datafield[@tag=245]/marc:subfield[@code='h']"/> - </xsl:with-param> - </xsl:call-template> - </form> - </xsl:if> - <xsl:if test="marc:datafield[@tag=246]/marc:subfield[@code='h']"> - <form authority="gmd"> - <xsl:call-template name="chopBrackets"> - <xsl:with-param name="chopString"> - <xsl:value-of select="marc:datafield[@tag=246]/marc:subfield[@code='h']"/> - </xsl:with-param> - </xsl:call-template> - </form> - </xsl:if> - <xsl:if test="marc:datafield[@tag=730]/marc:subfield[@code='h']"> - <form authority="gmd"> - <xsl:call-template name="chopBrackets"> - <xsl:with-param name="chopString"> - <xsl:value-of select="marc:datafield[@tag=730]/marc:subfield[@code='h']"/> - </xsl:with-param> - </xsl:call-template> - </form> - </xsl:if> - <xsl:for-each select="marc:datafield[@tag=256]/marc:subfield[@code='a']"> - <form> - <xsl:value-of select="."/> - </form> - </xsl:for-each> - <xsl:for-each select="marc:controlfield[@tag=007][substring(text(),1,1)='c']"> - <xsl:choose> - <xsl:when test="substring(text(),14,1)='a'"> - <reformattingQuality>access</reformattingQuality> - </xsl:when> - <xsl:when test="substring(text(),14,1)='p'"> - <reformattingQuality>preservation</reformattingQuality> - </xsl:when> - <xsl:when test="substring(text(),14,1)='r'"> - <reformattingQuality>replacement</reformattingQuality> - </xsl:when> - </xsl:choose> - </xsl:for-each> - <!--3.2 change tmee 007/01 --> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='c'][substring(text(),2,1)='b']"> - <form authority="marccategory">electronic resource</form> - <form authority="marcsmd">chip cartridge</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='c'][substring(text(),2,1)='c']"> - <form authority="marccategory">electronic resource</form> - <form authority="marcsmd">computer optical disc cartridge</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='c'][substring(text(),2,1)='j']"> - <form authority="marccategory">electronic resource</form> - <form authority="marcsmd">magnetic disc</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='c'][substring(text(),2,1)='m']"> - <form authority="marccategory">electronic resource</form> - <form authority="marcsmd">magneto-optical disc</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='c'][substring(text(),2,1)='o']"> - <form authority="marccategory">electronic resource</form> - <form authority="marcsmd">optical disc</form> - </xsl:if> - - <!-- 1.38 AQ 1.29 tmee 1.66 added marccategory and marcsmd as part of 3.4 --> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='c'][substring(text(),2,1)='r']"> - <form authority="marccategory">electronic resource</form> - <form authority="marcsmd">remote</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='c'][substring(text(),2,1)='a']"> - <form authority="marccategory">electronic resource</form> - <form authority="marcsmd">tape cartridge</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='c'][substring(text(),2,1)='f']"> - <form authority="marccategory">electronic resource</form> - <form authority="marcsmd">tape cassette</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='c'][substring(text(),2,1)='h']"> - <form authority="marccategory">electronic resource</form> - <form authority="marcsmd">tape reel</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='d'][substring(text(),2,1)='a']"> - <form authority="marccategory">globe</form> - <form authority="marcsmd">celestial globe</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='d'][substring(text(),2,1)='e']"> - <form authority="marccategory">globe</form> - <form authority="marcsmd">earth moon globe</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='d'][substring(text(),2,1)='b']"> - <form authority="marccategory">globe</form> - <form authority="marcsmd">planetary or lunar globe</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='d'][substring(text(),2,1)='c']"> - <form authority="marccategory">globe</form> - <form authority="marcsmd">terrestrial globe</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='o'][substring(text(),2,1)='o']"> - <form authority="marccategory">kit</form> - <form authority="marcsmd">kit</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2,1)='d']"> - <form authority="marccategory">map</form> - <form authority="marcsmd">atlas</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2,1)='g']"> - <form authority="marccategory">map</form> - <form authority="marcsmd">diagram</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2,1)='j']"> - <form authority="marccategory">map</form> - <form authority="marcsmd">map</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2,1)='q']"> - <form authority="marccategory">map</form> - <form authority="marcsmd">model</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2,1)='k']"> - <form authority="marccategory">map</form> - <form authority="marcsmd">profile</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2,1)='r']"> - <form authority="marcsmd">remote-sensing image</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2,1)='s']"> - <form authority="marccategory">map</form> - <form authority="marcsmd">section</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='a'][substring(text(),2,1)='y']"> - <form authority="marccategory">map</form> - <form authority="marcsmd">view</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='h'][substring(text(),2,1)='a']"> - <form authority="marccategory">microform</form> - <form authority="marcsmd">aperture card</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='h'][substring(text(),2,1)='e']"> - <form authority="marccategory">microform</form> - <form authority="marcsmd">microfiche</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='h'][substring(text(),2,1)='f']"> - <form authority="marccategory">microform</form> - <form authority="marcsmd">microfiche cassette</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='h'][substring(text(),2,1)='b']"> - <form authority="marccategory">microform</form> - <form authority="marcsmd">microfilm cartridge</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='h'][substring(text(),2,1)='c']"> - <form authority="marccategory">microform</form> - <form authority="marcsmd">microfilm cassette</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='h'][substring(text(),2,1)='d']"> - <form authority="marccategory">microform</form> - <form authority="marcsmd">microfilm reel</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='h'][substring(text(),2,1)='g']"> - <form authority="marccategory">microform</form> - <form authority="marcsmd">microopaque</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='m'][substring(text(),2,1)='c']"> - <form authority="marccategory">motion picture</form> - <form authority="marcsmd">film cartridge</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='m'][substring(text(),2,1)='f']"> - <form authority="marccategory">motion picture</form> - <form authority="marcsmd">film cassette</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='m'][substring(text(),2,1)='r']"> - <form authority="marccategory">motion picture</form> - <form authority="marcsmd">film reel</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='k'][substring(text(),2,1)='n']"> - <form authority="marccategory">nonprojected graphic</form> - <form authority="marcsmd">chart</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='k'][substring(text(),2,1)='c']"> - <form authority="marccategory">nonprojected graphic</form> - <form authority="marcsmd">collage</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='k'][substring(text(),2,1)='d']"> - <form authority="marccategory">nonprojected graphic</form> - <form authority="marcsmd">drawing</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='k'][substring(text(),2,1)='o']"> - <form authority="marccategory">nonprojected graphic</form> - <form authority="marcsmd">flash card</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='k'][substring(text(),2,1)='e']"> - <form authority="marccategory">nonprojected graphic</form> - <form authority="marcsmd">painting</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='k'][substring(text(),2,1)='f']"> - <form authority="marccategory">nonprojected graphic</form> - <form authority="marcsmd">photomechanical print</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='k'][substring(text(),2,1)='g']"> - <form authority="marccategory">nonprojected graphic</form> - <form authority="marcsmd">photonegative</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='k'][substring(text(),2,1)='h']"> - <form authority="marccategory">nonprojected graphic</form> - <form authority="marcsmd">photoprint</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='k'][substring(text(),2,1)='i']"> - <form authority="marccategory">nonprojected graphic</form> - <form authority="marcsmd">picture</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='k'][substring(text(),2,1)='j']"> - <form authority="marccategory">nonprojected graphic</form> - <form authority="marcsmd">print</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='k'][substring(text(),2,1)='l']"> - <form authority="marccategory">nonprojected graphic</form> - <form authority="marcsmd">technical drawing</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='q'][substring(text(),2,1)='q']"> - <form authority="marccategory">notated music</form> - <form authority="marcsmd">notated music</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='g'][substring(text(),2,1)='d']"> - <form authority="marccategory">projected graphic</form> - <form authority="marcsmd">filmslip</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='g'][substring(text(),2,1)='c']"> - <form authority="marccategory">projected graphic</form> - <form authority="marcsmd">filmstrip cartridge</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='g'][substring(text(),2,1)='o']"> - <form authority="marccategory">projected graphic</form> - <form authority="marcsmd">filmstrip roll</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='g'][substring(text(),2,1)='f']"> - <form authority="marccategory">projected graphic</form> - <form authority="marcsmd">other filmstrip type</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='g'][substring(text(),2,1)='s']"> - <form authority="marccategory">projected graphic</form> - <form authority="marcsmd">slide</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='g'][substring(text(),2,1)='t']"> - <form authority="marccategory">projected graphic</form> - <form authority="marcsmd">transparency</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='r'][substring(text(),2,1)='r']"> - <form authority="marccategory">remote-sensing image</form> - <form authority="marcsmd">remote-sensing image</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='s'][substring(text(),2,1)='e']"> - <form authority="marccategory">sound recording</form> - <form authority="marcsmd">cylinder</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='s'][substring(text(),2,1)='q']"> - <form authority="marccategory">sound recording</form> - <form authority="marcsmd">roll</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='s'][substring(text(),2,1)='g']"> - <form authority="marccategory">sound recording</form> - <form authority="marcsmd">sound cartridge</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='s'][substring(text(),2,1)='s']"> - <form authority="marccategory">sound recording</form> - <form authority="marcsmd">sound cassette</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='s'][substring(text(),2,1)='d']"> - <form authority="marccategory">sound recording</form> - <form authority="marcsmd">sound disc</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='s'][substring(text(),2,1)='t']"> - <form authority="marccategory">sound recording</form> - <form authority="marcsmd">sound-tape reel</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='s'][substring(text(),2,1)='i']"> - <form authority="marccategory">sound recording</form> - <form authority="marcsmd">sound-track film</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='s'][substring(text(),2,1)='w']"> - <form authority="marccategory">sound recording</form> - <form authority="marcsmd">wire recording</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='f'][substring(text(),2,1)='c']"> - <form authority="marccategory">tactile material</form> - <form authority="marcsmd">braille</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='f'][substring(text(),2,1)='b']"> - <form authority="marccategory">tactile material</form> - <form authority="marcsmd">combination</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='f'][substring(text(),2,1)='a']"> - <form authority="marccategory">tactile material</form> - <form authority="marcsmd">moon</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='f'][substring(text(),2,1)='d']"> - <form authority="marccategory">tactile material</form> - <form authority="marcsmd">tactile, with no writing system</form> - </xsl:if> - - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='t'][substring(text(),2,1)='c']"> - <form authority="marccategory">text</form> - <form authority="marcsmd">braille</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='t'][substring(text(),2,1)='b']"> - <form authority="marccategory">text</form> - <form authority="marcsmd">large print</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='t'][substring(text(),2,1)='a']"> - <form authority="marccategory">text</form> - <form authority="marcsmd">regular print</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='t'][substring(text(),2,1)='d']"> - <form authority="marccategory">text</form> - <form authority="marcsmd">text in looseleaf binder</form> - </xsl:if> - - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='v'][substring(text(),2,1)='c']"> - <form authority="marccategory">videorecording</form> - <form authority="marcsmd">videocartridge</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='v'][substring(text(),2,1)='f']"> - <form authority="marccategory">videorecording</form> - <form authority="marcsmd">videocassette</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='v'][substring(text(),2,1)='d']"> - <form authority="marccategory">videorecording</form> - <form authority="marcsmd">videodisc</form> - </xsl:if> - <xsl:if test="marc:controlfield[@tag=007][substring(text(),1,1)='v'][substring(text(),2,1)='r']"> - <form authority="marccategory">videorecording</form> - <form authority="marcsmd">videoreel</form> - </xsl:if> - - <xsl:for-each select="marc:datafield[@tag=856]/marc:subfield[@code='q'][string-length(.)>1]"> - <internetMediaType> - <xsl:value-of select="."/> - </internetMediaType> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=300]"> - <extent> - <xsl:if test="marc:subfield[@code='f']"> - <xsl:attribute name="unit"> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">f</xsl:with-param> - </xsl:call-template> - </xsl:attribute> - </xsl:if> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">abce3g</xsl:with-param> - </xsl:call-template> - </extent> - </xsl:for-each> - - - <xsl:for-each select="marc:datafield[@tag=337]"> - <form type="media"> - <xsl:attribute name="authority"> - <xsl:value-of select="marc:subfield[@code=2]"/> - </xsl:attribute> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">a</xsl:with-param> - </xsl:call-template> - </form> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=338]"> - <form type="carrier"> - <xsl:attribute name="authority"> - <xsl:value-of select="marc:subfield[@code=2]"/> - </xsl:attribute> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">a</xsl:with-param> - </xsl:call-template> - </form> - </xsl:for-each> - - - <!-- 1.43 tmee 351 $3$a$b$c--> - <xsl:for-each select="marc:datafield[@tag=351]"> - <note type="arrangement"> - <xsl:for-each select="marc:subfield[@code='3']"> - <xsl:value-of select="."/> - <xsl:text>: </xsl:text> - </xsl:for-each> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">abc</xsl:with-param> - </xsl:call-template> - </note> - </xsl:for-each> - - </xsl:variable> - - - <xsl:if test="string-length(normalize-space($physicalDescription))"> - <physicalDescription> - <xsl:for-each select="marc:datafield[@tag=300]"> - <!-- Template checks for altRepGroup - 880 $6 --> - <xsl:call-template name="z3xx880"/> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=337]"> - <!-- Template checks for altRepGroup - 880 $6 --> - <xsl:call-template name="xxx880"/> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=338]"> - <!-- Template checks for altRepGroup - 880 $6 --> - <xsl:call-template name="xxx880"/> - </xsl:for-each> - - <xsl:copy-of select="$physicalDescription"/> - </physicalDescription> - </xsl:if> - - - <xsl:for-each select="marc:datafield[@tag=520]"> - <xsl:call-template name="createAbstractFrom520"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=505]"> - <xsl:call-template name="createTOCFrom505"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=521]"> - <xsl:call-template name="createTargetAudienceFrom521"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=506]"> - <xsl:call-template name="createAccessConditionFrom506"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=540]"> - <xsl:call-template name="createAccessConditionFrom540"/> - </xsl:for-each> - - - <xsl:if test="$typeOf008='BK' or $typeOf008='CF' or $typeOf008='MU' or $typeOf008='VM'"> - <xsl:variable name="controlField008-22" select="substring($controlField008,23,1)"/> - <xsl:choose> - <!-- 01/04 fix --> - <xsl:when test="$controlField008-22='d'"> - <targetAudience authority="marctarget">adolescent</targetAudience> - </xsl:when> - <xsl:when test="$controlField008-22='e'"> - <targetAudience authority="marctarget">adult</targetAudience> - </xsl:when> - <xsl:when test="$controlField008-22='g'"> - <targetAudience authority="marctarget">general</targetAudience> - </xsl:when> - <xsl:when test="$controlField008-22='b' or $controlField008-22='c' or $controlField008-22='j'"> - <targetAudience authority="marctarget">juvenile</targetAudience> - </xsl:when> - <xsl:when test="$controlField008-22='a'"> - <targetAudience authority="marctarget">preschool</targetAudience> - </xsl:when> - <xsl:when test="$controlField008-22='f'"> - <targetAudience authority="marctarget">specialized</targetAudience> - </xsl:when> - </xsl:choose> - </xsl:if> - - <!-- 1.32 tmee Drop note mapping for 510 and map only to <relatedItem> - <xsl:for-each select="marc:datafield[@tag=510]"> - <note type="citation/reference"> - <xsl:call-template name="uri"/> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield[@code!='6' or @code!='8']"> - <xsl:value-of select="."/> - <xsl:text> </xsl:text> - </xsl:for-each> - </xsl:variable> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </note> - </xsl:for-each> - --> - - <!-- 245c 362az 502-585 5XX--> - - <xsl:for-each select="marc:datafield[@tag=245]"> - <xsl:call-template name="createNoteFrom245c"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=362]"> - <xsl:call-template name="createNoteFrom362"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=500]"> - <xsl:call-template name="createNoteFrom500"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=502]"> - <xsl:call-template name="createNoteFrom502"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=504]"> - <xsl:call-template name="createNoteFrom504"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=508]"> - <xsl:call-template name="createNoteFrom508"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=511]"> - <xsl:call-template name="createNoteFrom511"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=515]"> - <xsl:call-template name="createNoteFrom515"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=518]"> - <xsl:call-template name="createNoteFrom518"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=524]"> - <xsl:call-template name="createNoteFrom524"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=530]"> - <xsl:call-template name="createNoteFrom530"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=533]"> - <xsl:call-template name="createNoteFrom533"/> - </xsl:for-each> - <!-- - <xsl:for-each select="marc:datafield[@tag=534]"> - <xsl:call-template name="createNoteFrom534"/> - </xsl:for-each> ---> - - <xsl:for-each select="marc:datafield[@tag=535]"> - <xsl:call-template name="createNoteFrom535"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=536]"> - <xsl:call-template name="createNoteFrom536"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=538]"> - <xsl:call-template name="createNoteFrom538"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=541]"> - <xsl:call-template name="createNoteFrom541"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=545]"> - <xsl:call-template name="createNoteFrom545"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=546]"> - <xsl:call-template name="createNoteFrom546"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=561]"> - <xsl:call-template name="createNoteFrom561"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=562]"> - <xsl:call-template name="createNoteFrom562"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=581]"> - <xsl:call-template name="createNoteFrom581"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=583]"> - <xsl:call-template name="createNoteFrom583"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=585]"> - <xsl:call-template name="createNoteFrom585"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=501 or @tag=507 or @tag=513 or @tag=514 or @tag=516 or @tag=522 or @tag=525 or @tag=526 or @tag=544 or @tag=547 or @tag=550 or @tag=552 or @tag=555 or @tag=556 or @tag=565 or @tag=567 or @tag=580 or @tag=584 or @tag=586]"> - <xsl:call-template name="createNoteFrom5XX"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=034]"> - <xsl:call-template name="createSubGeoFrom034"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=043]"> - <xsl:call-template name="createSubGeoFrom043"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=045]"> - <xsl:call-template name="createSubTemFrom045"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=255]"> - <xsl:call-template name="createSubGeoFrom255"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=600]"> - <xsl:call-template name="createSubNameFrom600"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=610]"> - <xsl:call-template name="createSubNameFrom610"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=611]"> - <xsl:call-template name="createSubNameFrom611"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=630]"> - <xsl:call-template name="createSubTitleFrom630"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=648]"> - <xsl:call-template name="createSubChronFrom648"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=650]"> - <xsl:call-template name="createSubTopFrom650"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=651]"> - <xsl:call-template name="createSubGeoFrom651"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=653]"> - <xsl:call-template name="createSubFrom653"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=656]"> - <xsl:call-template name="createSubFrom656"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=662]"> - <xsl:call-template name="createSubGeoFrom662752"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=752]"> - <xsl:call-template name="createSubGeoFrom662752"/> - </xsl:for-each> - - <!-- createClassificationFrom 0XX--> - <xsl:for-each select="marc:datafield[@tag='050']"> - <xsl:call-template name="createClassificationFrom050"/> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag='060']"> - <xsl:call-template name="createClassificationFrom060"/> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag='080']"> - <xsl:call-template name="createClassificationFrom080"/> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag='082']"> - <xsl:call-template name="createClassificationFrom082"/> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag='084']"> - <xsl:call-template name="createClassificationFrom084"/> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag='086']"> - <xsl:call-template name="createClassificationFrom086"/> - </xsl:for-each> - - <!-- location --> - - <xsl:for-each select="marc:datafield[@tag=852]"> - <xsl:call-template name="createLocationFrom852"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=856]"> - <xsl:call-template name="createLocationFrom856"/> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=490][@ind1=0]"> - <xsl:call-template name="createRelatedItemFrom490"/> - </xsl:for-each> - - - <xsl:for-each select="marc:datafield[@tag=440]"> - <relatedItem type="series"> - <titleInfo> - <title> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">av</xsl:with-param> - </xsl:call-template> - </xsl:with-param> - </xsl:call-template> - </title> - <xsl:call-template name="part"/> - </titleInfo> - </relatedItem> - </xsl:for-each> - - <!-- tmee 1.40 1.74 1.88 fixed 510c mapping 20130829--> - - <xsl:for-each select="marc:datafield[@tag=510]"> - <relatedItem type="isReferencedBy"> - <xsl:for-each select="marc:subfield[@code='a']"> - <titleInfo> - <title> - <xsl:value-of select="."/> - </title> - </titleInfo> - </xsl:for-each> - <xsl:for-each select="marc:subfield[@code='b']"> - <originInfo> - <dateOther type="coverage"> - <xsl:value-of select="."/> - </dateOther> - </originInfo> - </xsl:for-each> - - <part> - <detail type="part"> - <number> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">c</xsl:with-param> - </xsl:call-template> - </xsl:with-param> - </xsl:call-template> - </number> - </detail> - </part> - </relatedItem> - </xsl:for-each> - - - <xsl:for-each select="marc:datafield[@tag=534]"> - <relatedItem type="original"> - <xsl:call-template name="relatedTitle"/> - <xsl:call-template name="relatedName"/> - <xsl:if test="marc:subfield[@code='b' or @code='c']"> - <originInfo> - <xsl:for-each select="marc:subfield[@code='c']"> - <publisher> - <xsl:value-of select="."/> - </publisher> - </xsl:for-each> - <xsl:for-each select="marc:subfield[@code='b']"> - <edition> - <xsl:value-of select="."/> - </edition> - </xsl:for-each> - </originInfo> - </xsl:if> - <xsl:call-template name="relatedIdentifierISSN"/> - <xsl:for-each select="marc:subfield[@code='z']"> - <identifier type="isbn"> - <xsl:value-of select="."/> - </identifier> - </xsl:for-each> - <xsl:call-template name="relatedNote"/> - </relatedItem> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=700][marc:subfield[@code='t']]"> - <relatedItem> - <!-- 1.115 --> - <xsl:if test="marc:subfield[@code='i']"> - <xsl:attribute name="otherType"><xsl:value-of select="marc:subfield[@code='i']"/></xsl:attribute> - </xsl:if> - <xsl:call-template name="constituentOrRelatedType"/> - <titleInfo> - <title> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:call-template name="specialSubfieldSelect"> - <xsl:with-param name="anyCodes">tfklmorsv</xsl:with-param> - <xsl:with-param name="axis">t</xsl:with-param> - <xsl:with-param name="afterCodes">g</xsl:with-param> - </xsl:call-template> - </xsl:with-param> - </xsl:call-template> - </title> - <xsl:call-template name="part"/> - </titleInfo> - <name type="personal"> - <namePart> - <xsl:call-template name="specialSubfieldSelect"> - <xsl:with-param name="anyCodes">aq</xsl:with-param> - <xsl:with-param name="axis">t</xsl:with-param> - <xsl:with-param name="beforeCodes">g</xsl:with-param> - </xsl:call-template> - </namePart> - <xsl:call-template name="termsOfAddress"/> - <xsl:call-template name="nameDate"/> - <xsl:call-template name="role"/> - </name> - <xsl:call-template name="relatedForm"/> - <xsl:call-template name="relatedIdentifierISSN"/> - </relatedItem> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=710][marc:subfield[@code='t']]"> - <relatedItem> - <!-- 1.115 --> - <xsl:if test="marc:subfield[@code='i']"> - <xsl:attribute name="otherType"><xsl:value-of select="marc:subfield[@code='i']"/></xsl:attribute> - </xsl:if> - <xsl:call-template name="constituentOrRelatedType"/> - <titleInfo> - <title> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:call-template name="specialSubfieldSelect"> - <xsl:with-param name="anyCodes">tfklmorsv</xsl:with-param> - <xsl:with-param name="axis">t</xsl:with-param> - <xsl:with-param name="afterCodes">dg</xsl:with-param> - </xsl:call-template> - </xsl:with-param> - </xsl:call-template> - </title> - <xsl:call-template name="relatedPartNumName"/> - </titleInfo> - <name type="corporate"> - <xsl:for-each select="marc:subfield[@code='a']"> - <namePart> - <xsl:value-of select="."/> - </namePart> - </xsl:for-each> - <xsl:for-each select="marc:subfield[@code='b']"> - <namePart> - <xsl:value-of select="."/> - </namePart> - </xsl:for-each> - <xsl:variable name="tempNamePart"> - <xsl:call-template name="specialSubfieldSelect"> - <xsl:with-param name="anyCodes">c</xsl:with-param> - <xsl:with-param name="axis">t</xsl:with-param> - <xsl:with-param name="beforeCodes">dgn</xsl:with-param> - </xsl:call-template> - </xsl:variable> - <xsl:if test="normalize-space($tempNamePart)"> - <namePart> - <xsl:value-of select="$tempNamePart"/> - </namePart> - </xsl:if> - <xsl:call-template name="role"/> - </name> - <xsl:call-template name="relatedForm"/> - <xsl:call-template name="relatedIdentifierISSN"/> - </relatedItem> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=711][marc:subfield[@code='t']]"> - <relatedItem> - <!-- 1.115 --> - <xsl:if test="marc:subfield[@code='i']"> - <xsl:attribute name="otherType"><xsl:value-of select="marc:subfield[@code='i']"/></xsl:attribute> - </xsl:if> - <xsl:call-template name="constituentOrRelatedType"/> - <titleInfo> - <title> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:call-template name="specialSubfieldSelect"> - <xsl:with-param name="anyCodes">tfklsv</xsl:with-param> - <xsl:with-param name="axis">t</xsl:with-param> - <xsl:with-param name="afterCodes">g</xsl:with-param> - </xsl:call-template> - </xsl:with-param> - </xsl:call-template> - </title> - <xsl:call-template name="relatedPartNumName"/> - </titleInfo> - <name type="conference"> - <namePart> - <xsl:call-template name="specialSubfieldSelect"> - <xsl:with-param name="anyCodes">aqdc</xsl:with-param> - <xsl:with-param name="axis">t</xsl:with-param> - <xsl:with-param name="beforeCodes">gn</xsl:with-param> - </xsl:call-template> - </namePart> - </name> - <xsl:call-template name="relatedForm"/> - <xsl:call-template name="relatedIdentifierISSN"/> - </relatedItem> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=730][@ind2=2]"> - <relatedItem> - <!-- 1.115 --> - <xsl:if test="marc:subfield[@code='i']"> - <xsl:attribute name="otherType"><xsl:value-of select="marc:subfield[@code='i']"/></xsl:attribute> - </xsl:if> - <xsl:call-template name="constituentOrRelatedType"/> - <titleInfo> - <title> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">adfgklmorsv</xsl:with-param> - </xsl:call-template> - </xsl:with-param> - </xsl:call-template> - </title> - <xsl:call-template name="part"/> - </titleInfo> - <xsl:call-template name="relatedForm"/> - <xsl:call-template name="relatedIdentifierISSN"/> - </relatedItem> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=740][@ind2=2]"> - <relatedItem> - <!-- 1.115 --> - <xsl:if test="marc:subfield[@code='i']"> - <xsl:attribute name="otherType"><xsl:value-of select="marc:subfield[@code='i']"/></xsl:attribute> - </xsl:if> - <xsl:call-template name="constituentOrRelatedType"/> - <titleInfo> - <title> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:value-of select="marc:subfield[@code='a']"/> - </xsl:with-param> - </xsl:call-template> - </title> - <xsl:call-template name="part"/> - </titleInfo> - <xsl:call-template name="relatedForm"/> - </relatedItem> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=760]"> - <relatedItem type="series"> - <!-- 1.115 --> - <xsl:if test="marc:subfield[@code='i']"> - <xsl:attribute name="otherType"><xsl:value-of select="marc:subfield[@code='i']"/></xsl:attribute> - </xsl:if> - <xsl:call-template name="relatedItem76X-78X"/> - </relatedItem> - </xsl:for-each> - - <!--AQ1.23 tmee/dlf --> - <xsl:for-each select="marc:datafield[@tag=762]"> - <relatedItem type="constituent"> - <!-- 1.115 --> - <xsl:if test="marc:subfield[@code='i']"> - <xsl:attribute name="otherType"><xsl:value-of select="marc:subfield[@code='i']"/></xsl:attribute> - </xsl:if> - <xsl:call-template name="relatedItem76X-78X"/> - </relatedItem> - </xsl:for-each> - - <!-- AQ1.5, AQ1.7 deleted tags 777 and 787 from the following select for relatedItem mapping --> - <!-- 1.45 and 1.46 - AQ1.24 and 1.25 tmee--> - <xsl:for-each select="marc:datafield[@tag=765]|marc:datafield[@tag=767]|marc:datafield[@tag=775]"> - <relatedItem type="otherVersion"> - <!-- 1.115 --> - <xsl:if test="marc:subfield[@code='i']"> - <xsl:attribute name="otherType"><xsl:value-of select="marc:subfield[@code='i']"/></xsl:attribute> - </xsl:if> - <xsl:call-template name="relatedItem76X-78X"/> - </relatedItem> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=770]|marc:datafield[@tag=774]"> - <relatedItem type="constituent"> - <!-- 1.115 --> - <xsl:if test="marc:subfield[@code='i']"> - <xsl:attribute name="otherType"><xsl:value-of select="marc:subfield[@code='i']"/></xsl:attribute> - </xsl:if> - <xsl:call-template name="relatedItem76X-78X"/> - </relatedItem> - </xsl:for-each> - - - <xsl:for-each select="marc:datafield[@tag=772]|marc:datafield[@tag=773]"> - <relatedItem type="host"> - <!-- 1.115 --> - <xsl:if test="marc:subfield[@code='i']"> - <xsl:attribute name="otherType"><xsl:value-of select="marc:subfield[@code='i']"/></xsl:attribute> - </xsl:if> - <xsl:call-template name="relatedItem76X-78X"/> - </relatedItem> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=776]"> - <relatedItem type="otherFormat"> - <!-- 1.115 --> - <xsl:if test="marc:subfield[@code='i']"> - <xsl:attribute name="otherType"><xsl:value-of select="marc:subfield[@code='i']"/></xsl:attribute> - </xsl:if> - <xsl:call-template name="relatedItem76X-78X"/> - </relatedItem> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=780]"> - <relatedItem type="preceding"> - <!-- 1.115 --> - <xsl:if test="marc:subfield[@code='i']"> - <xsl:attribute name="otherType"><xsl:value-of select="marc:subfield[@code='i']"/></xsl:attribute> - </xsl:if> - <xsl:call-template name="relatedItem76X-78X"/> - </relatedItem> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=785]"> - <relatedItem type="succeeding"> - <!-- 1.115 --> - <xsl:if test="marc:subfield[@code='i']"> - <xsl:attribute name="otherType"><xsl:value-of select="marc:subfield[@code='i']"/></xsl:attribute> - </xsl:if> - <xsl:call-template name="relatedItem76X-78X"/> - </relatedItem> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=786]"> - <relatedItem type="original"> - <!-- 1.115 --> - <xsl:if test="marc:subfield[@code='i']"> - <xsl:attribute name="otherType"><xsl:value-of select="marc:subfield[@code='i']"/></xsl:attribute> - </xsl:if> - <xsl:call-template name="relatedItem76X-78X"/> - </relatedItem> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=800]"> - <relatedItem type="series"> - <titleInfo> - <title> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:call-template name="specialSubfieldSelect"> - <xsl:with-param name="anyCodes">tfklmorsv</xsl:with-param> - <xsl:with-param name="axis">t</xsl:with-param> - <xsl:with-param name="afterCodes">g</xsl:with-param> - </xsl:call-template> - </xsl:with-param> - </xsl:call-template> - </title> - <xsl:call-template name="part"/> - </titleInfo> - <name type="personal"> - <namePart> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:call-template name="specialSubfieldSelect"> - <xsl:with-param name="anyCodes">aq</xsl:with-param> - <xsl:with-param name="axis">t</xsl:with-param> - <xsl:with-param name="beforeCodes">g</xsl:with-param> - </xsl:call-template> - </xsl:with-param> - </xsl:call-template> - </namePart> - <xsl:call-template name="termsOfAddress"/> - <xsl:call-template name="nameDate"/> - <xsl:call-template name="role"/> - </name> - <xsl:call-template name="relatedForm"/> - </relatedItem> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=810]"> - <relatedItem type="series"> - <titleInfo> - <title> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:call-template name="specialSubfieldSelect"> - <xsl:with-param name="anyCodes">tfklmorsv</xsl:with-param> - <xsl:with-param name="axis">t</xsl:with-param> - <xsl:with-param name="afterCodes">dg</xsl:with-param> - </xsl:call-template> - </xsl:with-param> - </xsl:call-template> - </title> - <xsl:call-template name="relatedPartNumName"/> - </titleInfo> - <name type="corporate"> - <xsl:for-each select="marc:subfield[@code='a']"> - <namePart> - <xsl:value-of select="."/> - </namePart> - </xsl:for-each> - <xsl:for-each select="marc:subfield[@code='b']"> - <namePart> - <xsl:value-of select="."/> - </namePart> - </xsl:for-each> - <namePart> - <xsl:call-template name="specialSubfieldSelect"> - <xsl:with-param name="anyCodes">c</xsl:with-param> - <xsl:with-param name="axis">t</xsl:with-param> - <xsl:with-param name="beforeCodes">dgn</xsl:with-param> - </xsl:call-template> - </namePart> - <xsl:call-template name="role"/> - </name> - <xsl:call-template name="relatedForm"/> - </relatedItem> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=811]"> - <relatedItem type="series"> - <titleInfo> - <title> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:call-template name="specialSubfieldSelect"> - <xsl:with-param name="anyCodes">tfklsv</xsl:with-param> - <xsl:with-param name="axis">t</xsl:with-param> - <xsl:with-param name="afterCodes">g</xsl:with-param> - </xsl:call-template> - </xsl:with-param> - </xsl:call-template> - </title> - <xsl:call-template name="relatedPartNumName"/> - </titleInfo> - <name type="conference"> - <namePart> - <xsl:call-template name="specialSubfieldSelect"> - <xsl:with-param name="anyCodes">aqdc</xsl:with-param> - <xsl:with-param name="axis">t</xsl:with-param> - <xsl:with-param name="beforeCodes">gn</xsl:with-param> - </xsl:call-template> - </namePart> - <xsl:call-template name="role"/> - </name> - <xsl:call-template name="relatedForm"/> - </relatedItem> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag='830']"> - <relatedItem type="series"> - <titleInfo> - <title> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">adfgklmorsv</xsl:with-param> - </xsl:call-template> - </xsl:with-param> - </xsl:call-template> - </title> - <xsl:call-template name="part"/> - </titleInfo> - <xsl:call-template name="relatedForm"/> - </relatedItem> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag='856'][@ind2='2']/marc:subfield[@code='q']"> - <relatedItem> - <internetMediaType> - <xsl:value-of select="."/> - </internetMediaType> - </relatedItem> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag='880']"> - <xsl:apply-templates select="self::*" mode="trans880"/> - </xsl:for-each> - - - <!-- 856, 020, 024, 022, 028, 010, 035, 037 --> - - <xsl:for-each select="marc:datafield[@tag='020']"> - <xsl:if test="marc:subfield[@code='a']"> - <identifier type="isbn"> - <xsl:value-of select="marc:subfield[@code='a']"/> - </identifier> - </xsl:if> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag='020']"> - <xsl:if test="marc:subfield[@code='z']"> - <identifier type="isbn" invalid="yes"> - <xsl:value-of select="marc:subfield[@code='z']"/> - </identifier> - </xsl:if> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag='024'][@ind1='0']"> - <xsl:if test="marc:subfield[@code='a']"> - <identifier type="isrc"> - <xsl:value-of select="marc:subfield[@code='a']"/> - </identifier> - </xsl:if> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag='024'][@ind1='2']"> - <xsl:if test="marc:subfield[@code='a']"> - <identifier type="ismn"> - <xsl:value-of select="marc:subfield[@code='a']"/> - </identifier> - </xsl:if> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag='024'][@ind1='4']"> - <identifier type="sici"> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">ab</xsl:with-param> - </xsl:call-template> - </identifier> - </xsl:for-each> - - <!-- 1.107 WS --> - <xsl:for-each select="marc:datafield[@tag='024'][@ind1='7']"> - <identifier> - <xsl:if test="marc:subfield[@code='2']"> - <xsl:attribute name="type"> - <xsl:value-of select="marc:subfield[@code='2']"/> - </xsl:attribute> - </xsl:if> - <xsl:value-of select="marc:subfield[@code='a']"/> - </identifier> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag='024'][@ind1='8']"> - <identifier> - <xsl:value-of select="marc:subfield[@code='a']"/> - </identifier> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag='022'][marc:subfield[@code='a']]"> - <xsl:if test="marc:subfield[@code='a']"> - <identifier type="issn"> - <xsl:value-of select="marc:subfield[@code='a']"/> - </identifier> - </xsl:if> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag='022'][marc:subfield[@code='z']]"> - <xsl:if test="marc:subfield[@code='z']"> - <identifier type="issn" invalid="yes"> - <xsl:value-of select="marc:subfield[@code='z']"/> - </identifier> - </xsl:if> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag='022'][marc:subfield[@code='y']]"> - <xsl:if test="marc:subfield[@code='y']"> - <identifier type="issn" invalid="yes"> - <xsl:value-of select="marc:subfield[@code='y']"/> - </identifier> - </xsl:if> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag='022'][marc:subfield[@code='l']]"> - <xsl:if test="marc:subfield[@code='l']"> - <identifier type="issn-l"> - <xsl:value-of select="marc:subfield[@code='l']"/> - </identifier> - </xsl:if> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag='022'][marc:subfield[@code='m']]"> - <xsl:if test="marc:subfield[@code='m']"> - <identifier type="issn-l" invalid="yes"> - <xsl:value-of select="marc:subfield[@code='m']"/> - </identifier> - </xsl:if> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag='010'][marc:subfield[@code='a']]"> - <identifier type="lccn"> - <xsl:value-of select="normalize-space(marc:subfield[@code='a'])"/> - </identifier> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag='010'][marc:subfield[@code='z']]"> - <identifier type="lccn" invalid="yes"> - <xsl:value-of select="normalize-space(marc:subfield[@code='z'])"/> - </identifier> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag='028']"> - <identifier> - <xsl:attribute name="type"> - <xsl:choose> - <xsl:when test="@ind1='0'">issue number</xsl:when> - <xsl:when test="@ind1='1'">matrix number</xsl:when> - <xsl:when test="@ind1='2'">music plate</xsl:when> - <xsl:when test="@ind1='3'">music publisher</xsl:when> - <xsl:when test="@ind1='4'">videorecording identifier</xsl:when> - </xsl:choose> - </xsl:attribute> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes"> - <xsl:choose> - <xsl:when test="@ind1='0'">ba</xsl:when> - <xsl:otherwise>ab</xsl:otherwise> - </xsl:choose> - </xsl:with-param> - </xsl:call-template> - </identifier> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag='035'][marc:subfield[@code='a'][contains(text(), '(OCoLC)')]]"> - <identifier type="oclc"> - <xsl:value-of select="normalize-space(substring-after(marc:subfield[@code='a'], '(OCoLC)'))"/> - </identifier> - </xsl:for-each> - - - <!-- 3.5 1.95 20140421 --> - <xsl:for-each select="marc:datafield[@tag='035'][marc:subfield[@code='a'][contains(text(), '(WlCaITV)')]]"> - <identifier type="WlCaITV"> - <xsl:value-of select="normalize-space(substring-after(marc:subfield[@code='a'], '(WlCaITV)'))"/> - </identifier> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag='037']"> - <identifier type="stock number"> - <xsl:if test="marc:subfield[@code='c']"> - <xsl:attribute name="displayLabel"> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">c</xsl:with-param> - </xsl:call-template> - </xsl:attribute> - </xsl:if> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">ab</xsl:with-param> - </xsl:call-template> - </identifier> - </xsl:for-each> - - - <!-- 1.51 tmee 20100129--> - <xsl:for-each select="marc:datafield[@tag='856'][marc:subfield[@code='u']]"> - <xsl:if test="starts-with(marc:subfield[@code='u'],'urn:hdl') or starts-with(marc:subfield[@code='u'],'hdl') or starts-with(marc:subfield[@code='u'],'http://hdl.loc.gov') "> - <identifier> - <xsl:attribute name="type"> - <xsl:if test="starts-with(marc:subfield[@code='u'],'urn:doi') or starts-with(marc:subfield[@code='u'],'doi')">doi</xsl:if> - <xsl:if test="starts-with(marc:subfield[@code='u'],'urn:hdl') or starts-with(marc:subfield[@code='u'],'hdl') or starts-with(marc:subfield[@code='u'],'http://hdl.loc.gov')">hdl</xsl:if> - </xsl:attribute> - <xsl:value-of select="concat('hdl:',substring-after(marc:subfield[@code='u'],'http://hdl.loc.gov/'))"/> - </identifier> - </xsl:if> - <xsl:if test="starts-with(marc:subfield[@code='u'],'urn:hdl') or starts-with(marc:subfield[@code='u'],'hdl')"> - <identifier type="hdl"> - <xsl:if test="marc:subfield[@code='y' or @code='3' or @code='z']"> - <xsl:attribute name="displayLabel"> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">y3z</xsl:with-param> - </xsl:call-template> - </xsl:attribute> - </xsl:if> - <xsl:value-of select="concat('hdl:',substring-after(marc:subfield[@code='u'],'http://hdl.loc.gov/'))"/> - </identifier> - </xsl:if> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=024][@ind1=1]"> - <identifier type="upc"> - <xsl:value-of select="marc:subfield[@code='a']"/> - </identifier> - </xsl:for-each> - - - <!-- 1.51 tmee 20100129 removed duplicate code 20131217 - <xsl:for-each select="marc:datafield[@tag='856'][marc:subfield[@code='u']]"> - <xsl:if - test="starts-with(marc:subfield[@code='u'],'urn:hdl') or starts-with(marc:subfield[@code='u'],'hdl') or starts-with(marc:subfield[@code='u'],'http://hdl.loc.gov') "> - <identifier> - <xsl:attribute name="type"> - <xsl:if - test="starts-with(marc:subfield[@code='u'],'urn:doi') or starts-with(marc:subfield[@code='u'],'doi')" - >doi</xsl:if> - <xsl:if - test="starts-with(marc:subfield[@code='u'],'urn:hdl') or starts-with(marc:subfield[@code='u'],'hdl') or starts-with(marc:subfield[@code='u'],'http://hdl.loc.gov')" - >hdl</xsl:if> - </xsl:attribute> - <xsl:value-of - select="concat('hdl:',substring-after(marc:subfield[@code='u'],'http://hdl.loc.gov/'))" - /> - </identifier> - </xsl:if> - - <xsl:if - test="starts-with(marc:subfield[@code='u'],'urn:hdl') or starts-with(marc:subfield[@code='u'],'hdl')"> - <identifier type="hdl"> - <xsl:if test="marc:subfield[@code='y' or @code='3' or @code='z']"> - <xsl:attribute name="displayLabel"> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">y3z</xsl:with-param> - </xsl:call-template> - </xsl:attribute> - </xsl:if> - <xsl:value-of - select="concat('hdl:',substring-after(marc:subfield[@code='u'],'http://hdl.loc.gov/'))" - /> - </identifier> - </xsl:if> - </xsl:for-each> - --> - - - <xsl:for-each select="marc:datafield[@tag=856][@ind2=2][marc:subfield[@code='u']]"> - <relatedItem> - <location> - <url> - <xsl:if test="marc:subfield[@code='y' or @code='3']"> - <xsl:attribute name="displayLabel"> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">y3</xsl:with-param> - </xsl:call-template> - </xsl:attribute> - </xsl:if> - <xsl:if test="marc:subfield[@code='z']"> - <xsl:attribute name="note"> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">z</xsl:with-param> - </xsl:call-template> - </xsl:attribute> - </xsl:if> - <xsl:value-of select="marc:subfield[@code='u']"/> - </url> - </location> - </relatedItem> - </xsl:for-each> - - <recordInfo> - <xsl:for-each select="marc:leader[substring($leader,19,1)='a']"> - <descriptionStandard>aacr</descriptionStandard> - </xsl:for-each> - - <xsl:for-each select="marc:datafield[@tag=040]"> - <xsl:if test="marc:subfield[@code='e']"> - <descriptionStandard> - <xsl:value-of select="marc:subfield[@code='e']"/> - </descriptionStandard> - </xsl:if> - <recordContentSource authority="marcorg"> - <xsl:value-of select="marc:subfield[@code='a']"/> - </recordContentSource> - </xsl:for-each> - <xsl:for-each select="marc:controlfield[@tag=008]"> - <recordCreationDate encoding="marc"> - <xsl:value-of select="substring(.,1,6)"/> - </recordCreationDate> - </xsl:for-each> - - <xsl:for-each select="marc:controlfield[@tag=005]"> - <recordChangeDate encoding="iso8601"> - <xsl:value-of select="."/> - </recordChangeDate> - </xsl:for-each> - <xsl:for-each select="marc:controlfield[@tag=001]"> - <recordIdentifier> - <xsl:if test="../marc:controlfield[@tag=003]"> - <xsl:attribute name="source"> - <xsl:value-of select="../marc:controlfield[@tag=003]"/> - </xsl:attribute> - </xsl:if> - <xsl:value-of select="."/> - </recordIdentifier> - </xsl:for-each> - - <recordOrigin>Converted from MARCXML to MODS version 3.6 using MARC21slim2MODS3-6.xsl - (Revision 1.119 2018/06/21)</recordOrigin> - - <xsl:for-each select="marc:datafield[@tag=040]/marc:subfield[@code='b']"> - <languageOfCataloging> - <languageTerm authority="iso639-2b" type="code"> - <xsl:value-of select="."/> - </languageTerm> - </languageOfCataloging> - </xsl:for-each> - </recordInfo> - </xsl:template> - - <xsl:template name="displayForm"> - <xsl:for-each select="marc:subfield[@code='c']"> - <displayForm> - <xsl:value-of select="."/> - </displayForm> - </xsl:for-each> - </xsl:template> - <xsl:template name="affiliation"> - <xsl:for-each select="marc:subfield[@code='u']"> - <affiliation> - <xsl:value-of select="."/> - </affiliation> - </xsl:for-each> - </xsl:template> - <xsl:template name="uri"> - <xsl:for-each select="marc:subfield[@code='u']|marc:subfield[@code='0']"> - <xsl:attribute name="xlink:href"> - <xsl:value-of select="."/> - </xsl:attribute> - </xsl:for-each> - </xsl:template> - <xsl:template name="role"> - <xsl:for-each select="marc:subfield[@code='e']"> - <role> - <roleTerm type="text"> - <xsl:value-of select="."/> - </roleTerm> - </role> - </xsl:for-each> - <xsl:for-each select="marc:subfield[@code='4']"> - <role> - <roleTerm authority="marcrelator" type="code"> - <xsl:value-of select="."/> - </roleTerm> - </role> - </xsl:for-each> - </xsl:template> - <xsl:template name="part"> - <xsl:variable name="partNumber"> - <xsl:call-template name="specialSubfieldSelect"> - <xsl:with-param name="axis">n</xsl:with-param> - <xsl:with-param name="anyCodes">n</xsl:with-param> - <xsl:with-param name="afterCodes">fgkdlmor</xsl:with-param> - </xsl:call-template> - </xsl:variable> - <xsl:variable name="partName"> - <xsl:call-template name="specialSubfieldSelect"> - <xsl:with-param name="axis">p</xsl:with-param> - <xsl:with-param name="anyCodes">p</xsl:with-param> - <xsl:with-param name="afterCodes">fgkdlmor</xsl:with-param> - </xsl:call-template> - </xsl:variable> - <xsl:if test="string-length(normalize-space($partNumber))"> - <partNumber> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString" select="$partNumber"/> - </xsl:call-template> - </partNumber> - </xsl:if> - <xsl:if test="string-length(normalize-space($partName))"> - <partName> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString" select="$partName"/> - </xsl:call-template> - </partName> - </xsl:if> - </xsl:template> - <xsl:template name="relatedPart"> - <xsl:if test="@tag=773"> - <xsl:for-each select="marc:subfield[@code='g']"> - <part> - <text> - <xsl:value-of select="."/> - </text> - </part> - </xsl:for-each> - <xsl:for-each select="marc:subfield[@code='q']"> - <part> - <xsl:call-template name="parsePart"/> - </part> - </xsl:for-each> - </xsl:if> - </xsl:template> - <xsl:template name="relatedPartNumName"> - <xsl:variable name="partNumber"> - <xsl:call-template name="specialSubfieldSelect"> - <xsl:with-param name="axis">g</xsl:with-param> - <xsl:with-param name="anyCodes">g</xsl:with-param> - <xsl:with-param name="afterCodes">pst</xsl:with-param> - </xsl:call-template> - </xsl:variable> - <xsl:variable name="partName"> - <xsl:call-template name="specialSubfieldSelect"> - <xsl:with-param name="axis">p</xsl:with-param> - <xsl:with-param name="anyCodes">p</xsl:with-param> - <xsl:with-param name="afterCodes">fgkdlmor</xsl:with-param> - </xsl:call-template> - </xsl:variable> - <xsl:if test="string-length(normalize-space($partNumber))"> - <partNumber> - <xsl:value-of select="$partNumber"/> - </partNumber> - </xsl:if> - <xsl:if test="string-length(normalize-space($partName))"> - <partName> - <xsl:value-of select="$partName"/> - </partName> - </xsl:if> - </xsl:template> - <xsl:template name="relatedName"> - <xsl:for-each select="marc:subfield[@code='a']"> - <name> - <namePart> - <xsl:value-of select="."/> - </namePart> - </name> - </xsl:for-each> - </xsl:template> - <xsl:template name="relatedForm"> - <xsl:for-each select="marc:subfield[@code='h']"> - <physicalDescription> - <form> - <xsl:value-of select="."/> - </form> - </physicalDescription> - </xsl:for-each> - </xsl:template> - <xsl:template name="relatedExtent"> - <xsl:for-each select="marc:subfield[@code='h']"> - <physicalDescription> - <extent> - <xsl:value-of select="."/> - </extent> - </physicalDescription> - </xsl:for-each> - </xsl:template> - <xsl:template name="relatedNote"> - <xsl:for-each select="marc:subfield[@code='n']"> - <note> - <xsl:value-of select="."/> - </note> - </xsl:for-each> - </xsl:template> - <xsl:template name="relatedSubject"> - <xsl:for-each select="marc:subfield[@code='j']"> - <subject> - <temporal encoding="iso8601"> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString" select="."/> - </xsl:call-template> - </temporal> - </subject> - </xsl:for-each> - </xsl:template> - <xsl:template name="relatedIdentifierISSN"> - <xsl:for-each select="marc:subfield[@code='x']"> - <identifier type="issn"> - <xsl:value-of select="."/> - </identifier> - </xsl:for-each> - </xsl:template> - <xsl:template name="relatedIdentifierLocal"> - <xsl:for-each select="marc:subfield[@code='w']"> - <identifier type="local"> - <xsl:value-of select="."/> - </identifier> - </xsl:for-each> - </xsl:template> - <xsl:template name="relatedIdentifier"> - <xsl:for-each select="marc:subfield[@code='o']"> - <identifier> - <xsl:value-of select="."/> - </identifier> - </xsl:for-each> - </xsl:template> - - <!--tmee 1.40 510 isReferencedBy --> - <xsl:template name="relatedItem510"> - <xsl:call-template name="displayLabel"/> - <xsl:call-template name="relatedTitle76X-78X"/> - <xsl:call-template name="relatedName"/> - <xsl:call-template name="relatedOriginInfo510"/> - <xsl:call-template name="relatedLanguage"/> - <xsl:call-template name="relatedExtent"/> - <xsl:call-template name="relatedNote"/> - <xsl:call-template name="relatedSubject"/> - <xsl:call-template name="relatedIdentifier"/> - <xsl:call-template name="relatedIdentifierISSN"/> - <xsl:call-template name="relatedIdentifierLocal"/> - <xsl:call-template name="relatedPart"/> - </xsl:template> - <xsl:template name="relatedItem76X-78X"> - <xsl:call-template name="displayLabel"/> - <xsl:call-template name="relatedTitle76X-78X"/> - <xsl:call-template name="relatedName"/> - <xsl:call-template name="relatedOriginInfo"/> - <xsl:call-template name="relatedLanguage"/> - <xsl:call-template name="relatedExtent"/> - <xsl:call-template name="relatedNote"/> - <xsl:call-template name="relatedSubject"/> - <xsl:call-template name="relatedIdentifier"/> - <xsl:call-template name="relatedIdentifierISSN"/> - <xsl:call-template name="relatedIdentifierLocal"/> - <xsl:call-template name="relatedPart"/> - </xsl:template> - <xsl:template name="subjectGeographicZ"> - <geographic> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString" select="."/> - </xsl:call-template> - </geographic> - </xsl:template> - <xsl:template name="subjectTemporalY"> - <temporal> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString" select="."/> - </xsl:call-template> - </temporal> - </xsl:template> - <xsl:template name="subjectTopic"> - <topic> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString" select="."/> - </xsl:call-template> - </topic> - </xsl:template> - <!-- 3.2 change tmee 6xx $v genre --> - <xsl:template name="subjectGenre"> - <genre> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString" select="."/> - </xsl:call-template> - </genre> - </xsl:template> - - <xsl:template name="nameABCDN"> - <xsl:for-each select="marc:subfield[@code='a']"> - <namePart> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString" select="."/> - </xsl:call-template> - </namePart> - </xsl:for-each> - <xsl:for-each select="marc:subfield[@code='b']"> - <namePart> - <xsl:value-of select="."/> - </namePart> - </xsl:for-each> - <xsl:if test="marc:subfield[@code='c'] or marc:subfield[@code='d'] or marc:subfield[@code='n']"> - <namePart> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">cdn</xsl:with-param> - </xsl:call-template> - </namePart> - </xsl:if> - </xsl:template> - <xsl:template name="nameABCDQ"> - <namePart> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">aq</xsl:with-param> - </xsl:call-template> - </xsl:with-param> - <xsl:with-param name="punctuation"> - <xsl:text>:,;/ </xsl:text> - </xsl:with-param> - </xsl:call-template> - </namePart> - <xsl:call-template name="termsOfAddress"/> - <xsl:call-template name="nameDate"/> - </xsl:template> - <xsl:template name="nameACDEQ"> - <namePart> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">acdeq</xsl:with-param> - </xsl:call-template> - </namePart> - </xsl:template> - - <!--1.104 20141104--> - <xsl:template name="nameACDENQ"> - <namePart> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">acdenq</xsl:with-param> - </xsl:call-template> - </namePart> - </xsl:template> - - <!-- 1.116 --> - <xsl:template name="nameIdentifier"> - <xsl:if test="marc:subfield[@code='0']"> - <nameIdentifier> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">0</xsl:with-param> - </xsl:call-template> - </nameIdentifier> - </xsl:if> - </xsl:template> - - - <xsl:template name="constituentOrRelatedType"> - <xsl:if test="@ind2=2"> - <xsl:attribute name="type">constituent</xsl:attribute> - </xsl:if> - </xsl:template> - <xsl:template name="relatedTitle"> - <xsl:for-each select="marc:subfield[@code='t']"> - <titleInfo> - <title> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:value-of select="."/> - </xsl:with-param> - </xsl:call-template> - </title> - </titleInfo> - </xsl:for-each> - </xsl:template> - <xsl:template name="relatedTitle76X-78X"> - <xsl:for-each select="marc:subfield[@code='t']"> - <titleInfo> - <title> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:value-of select="."/> - </xsl:with-param> - </xsl:call-template> - </title> - <xsl:if test="marc:datafield[@tag!=773]and marc:subfield[@code='g']"> - <xsl:call-template name="relatedPartNumName"/> - </xsl:if> - </titleInfo> - </xsl:for-each> - <xsl:for-each select="marc:subfield[@code='p']"> - <titleInfo type="abbreviated"> - <title> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:value-of select="."/> - </xsl:with-param> - </xsl:call-template> - </title> - <xsl:if test="marc:datafield[@tag!=773]and marc:subfield[@code='g']"> - <xsl:call-template name="relatedPartNumName"/> - </xsl:if> - </titleInfo> - </xsl:for-each> - <xsl:for-each select="marc:subfield[@code='s']"> - <titleInfo type="uniform"> - <title> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:value-of select="."/> - </xsl:with-param> - </xsl:call-template> - </title> - <xsl:if test="marc:datafield[@tag!=773]and marc:subfield[@code='g']"> - <xsl:call-template name="relatedPartNumName"/> - </xsl:if> - </titleInfo> - </xsl:for-each> - </xsl:template> - <xsl:template name="relatedOriginInfo"> - <xsl:if test="marc:subfield[@code='b' or @code='d'] or marc:subfield[@code='f']"> - <originInfo> - <xsl:if test="@tag=775"> - <xsl:for-each select="marc:subfield[@code='f']"> - <place> - <placeTerm> - <xsl:attribute name="type">code</xsl:attribute> - <xsl:attribute name="authority">marcgac</xsl:attribute> - <xsl:value-of select="."/> - </placeTerm> - </place> - </xsl:for-each> - </xsl:if> - <xsl:for-each select="marc:subfield[@code='d']"> - <publisher> - <xsl:value-of select="."/> - </publisher> - </xsl:for-each> - <xsl:for-each select="marc:subfield[@code='b']"> - <edition> - <xsl:value-of select="."/> - </edition> - </xsl:for-each> - </originInfo> - </xsl:if> - </xsl:template> - - <!-- tmee 1.40 --> - - <xsl:template name="relatedOriginInfo510"> - <xsl:for-each select="marc:subfield[@code='b']"> - <originInfo> - <dateOther type="coverage"> - <xsl:value-of select="."/> - </dateOther> - </originInfo> - </xsl:for-each> - </xsl:template> - <xsl:template name="relatedLanguage"> - <xsl:for-each select="marc:subfield[@code='e']"> - <xsl:call-template name="getLanguage"> - <xsl:with-param name="langString"> - <xsl:value-of select="."/> - </xsl:with-param> - </xsl:call-template> - </xsl:for-each> - </xsl:template> - <xsl:template name="nameDate"> - <xsl:for-each select="marc:subfield[@code='d']"> - <namePart type="date"> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString" select="."/> - </xsl:call-template> - </namePart> - </xsl:for-each> - </xsl:template> - <xsl:template name="subjectAuthority"> - <xsl:if test="@ind2!=4"> - <xsl:if test="@ind2!=' '"> - <xsl:if test="@ind2!=8"> - <xsl:if test="@ind2!=9"> - <xsl:attribute name="authority"> - <xsl:choose> - <xsl:when test="@ind2=0">lcsh</xsl:when> - <xsl:when test="@ind2=1">lcshac</xsl:when> - <xsl:when test="@ind2=2">mesh</xsl:when> - <!-- 1/04 fix --> - <xsl:when test="@ind2=3">nal</xsl:when> - <xsl:when test="@ind2=5">csh</xsl:when> - <xsl:when test="@ind2=6">rvm</xsl:when> - <xsl:when test="@ind2=7"> - <xsl:value-of select="marc:subfield[@code='2']"/> - </xsl:when> - </xsl:choose> - </xsl:attribute> - </xsl:if> - </xsl:if> - </xsl:if> - </xsl:if> - </xsl:template> - <!-- 1.75 - fix --> - <xsl:template name="subject653Type"> - <xsl:if test="@ind2!=' '"> - <xsl:if test="@ind2!='0'"> - <xsl:if test="@ind2!='4'"> - <xsl:if test="@ind2!='5'"> - <xsl:if test="@ind2!='6'"> - <xsl:if test="@ind2!='7'"> - <xsl:if test="@ind2!='8'"> - <xsl:if test="@ind2!='9'"> - <xsl:attribute name="type"> - <xsl:choose> - <xsl:when test="@ind2=1">personal</xsl:when> - <xsl:when test="@ind2=2">corporate</xsl:when> - <xsl:when test="@ind2=3">conference</xsl:when> - </xsl:choose> - </xsl:attribute> - </xsl:if> - </xsl:if> - </xsl:if> - </xsl:if> - </xsl:if> - </xsl:if> - </xsl:if> - </xsl:if> - - - </xsl:template> - <xsl:template name="subjectAnyOrder"> - <xsl:for-each select="marc:subfield[@code='v' or @code='x' or @code='y' or @code='z']"> - <xsl:choose> - <xsl:when test="@code='v'"> - <xsl:call-template name="subjectGenre"/> - </xsl:when> - <xsl:when test="@code='x'"> - <xsl:call-template name="subjectTopic"/> - </xsl:when> - <xsl:when test="@code='y'"> - <xsl:call-template name="subjectTemporalY"/> - </xsl:when> - <xsl:when test="@code='z'"> - <xsl:call-template name="subjectGeographicZ"/> - </xsl:when> - </xsl:choose> - </xsl:for-each> - </xsl:template> - <xsl:template name="specialSubfieldSelect"> - <xsl:param name="anyCodes"/> - <xsl:param name="axis"/> - <xsl:param name="beforeCodes"/> - <xsl:param name="afterCodes"/> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield"> - <xsl:if test="contains($anyCodes, @code) or (contains($beforeCodes,@code) and following-sibling::marc:subfield[@code=$axis]) or (contains($afterCodes,@code) and preceding-sibling::marc:subfield[@code=$axis])"> - <xsl:value-of select="text()"/> - <xsl:text> </xsl:text> - </xsl:if> - </xsl:for-each> - </xsl:variable> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </xsl:template> - - - <xsl:template match="marc:datafield[@tag=656]"> - <subject> - <xsl:call-template name="xxx880"/> - <xsl:if test="marc:subfield[@code=2]"> - <xsl:attribute name="authority"> - <xsl:value-of select="marc:subfield[@code=2]"/> - </xsl:attribute> - </xsl:if> - <occupation> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:value-of select="marc:subfield[@code='a']"/> - </xsl:with-param> - </xsl:call-template> - </occupation> - </subject> - </xsl:template> - <xsl:template name="termsOfAddress"> - <xsl:if test="marc:subfield[@code='b' or @code='c']"> - <namePart type="termsOfAddress"> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">bc</xsl:with-param> - </xsl:call-template> - </xsl:with-param> - </xsl:call-template> - </namePart> - </xsl:if> - </xsl:template> - <xsl:template name="displayLabel"> - <xsl:if test="marc:subfield[@code='i']"> - <xsl:attribute name="displayLabel"> - <xsl:value-of select="marc:subfield[@code='i']"/> - </xsl:attribute> - </xsl:if> - <xsl:if test="marc:subfield[@code='3']"> - <xsl:attribute name="displayLabel"> - <xsl:value-of select="marc:subfield[@code='3']"/> - </xsl:attribute> - </xsl:if> - </xsl:template> - - <!-- isInvalid - <xsl:template name="isInvalid"> - <xsl:param name="type"/> - <xsl:if - test="marc:subfield[@code='z'] or marc:subfield[@code='y'] or marc:subfield[@code='m']"> - <identifier> - <xsl:attribute name="type"> - <xsl:value-of select="$type"/> - </xsl:attribute> - <xsl:attribute name="invalid"> - <xsl:text>yes</xsl:text> - </xsl:attribute> - <xsl:if test="marc:subfield[@code='z']"> - <xsl:value-of select="marc:subfield[@code='z']"/> - </xsl:if> - <xsl:if test="marc:subfield[@code='y']"> - <xsl:value-of select="marc:subfield[@code='y']"/> - </xsl:if> - <xsl:if test="marc:subfield[@code='m']"> - <xsl:value-of select="marc:subfield[@code='m']"/> - </xsl:if> - </identifier> - </xsl:if> - </xsl:template> - --> - <xsl:template name="subtitle"> - <xsl:if test="marc:subfield[@code='b']"> - <subTitle> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:value-of select="marc:subfield[@code='b']"/> - <!--<xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">b</xsl:with-param> - </xsl:call-template>--> - </xsl:with-param> - </xsl:call-template> - </subTitle> - </xsl:if> - </xsl:template> - <xsl:template name="script"> - <xsl:param name="scriptCode"/> - <xsl:attribute name="script"> - <xsl:choose> - <!-- ISO 15924 and CJK is a local code 20101123--> - <xsl:when test="$scriptCode='(3'">Arab</xsl:when> - <xsl:when test="$scriptCode='(4'">Arab</xsl:when> - <xsl:when test="$scriptCode='(B'">Latn</xsl:when> - <xsl:when test="$scriptCode='!E'">Latn</xsl:when> - <xsl:when test="$scriptCode='$1'">CJK</xsl:when> - <xsl:when test="$scriptCode='(N'">Cyrl</xsl:when> - <xsl:when test="$scriptCode='(Q'">Cyrl</xsl:when> - <xsl:when test="$scriptCode='(2'">Hebr</xsl:when> - <xsl:when test="$scriptCode='(S'">Grek</xsl:when> - </xsl:choose> - </xsl:attribute> - </xsl:template> - <xsl:template name="parsePart"> - <!-- assumes 773$q= 1:2:3<4 - with up to 3 levels and one optional start page - --> - <xsl:variable name="level1"> - <xsl:choose> - <xsl:when test="contains(text(),':')"> - <!-- 1:2 --> - <xsl:value-of select="substring-before(text(),':')"/> - </xsl:when> - <xsl:when test="not(contains(text(),':'))"> - <!-- 1 or 1<3 --> - <xsl:if test="contains(text(),'<')"> - <!-- 1<3 --> - <xsl:value-of select="substring-before(text(),'<')"/> - </xsl:if> - <xsl:if test="not(contains(text(),'<'))"> - <!-- 1 --> - <xsl:value-of select="text()"/> - </xsl:if> - </xsl:when> - </xsl:choose> - </xsl:variable> - <xsl:variable name="sici2"> - <xsl:choose> - <xsl:when test="starts-with(substring-after(text(),$level1),':')"> - <xsl:value-of select="substring(substring-after(text(),$level1),2)"/> - </xsl:when> - <xsl:otherwise> - <xsl:value-of select="substring-after(text(),$level1)"/> - </xsl:otherwise> - </xsl:choose> - </xsl:variable> - <xsl:variable name="level2"> - <xsl:choose> - <xsl:when test="contains($sici2,':')"> - <!-- 2:3<4 --> - <xsl:value-of select="substring-before($sici2,':')"/> - </xsl:when> - <xsl:when test="contains($sici2,'<')"> - <!-- 1: 2<4 --> - <xsl:value-of select="substring-before($sici2,'<')"/> - </xsl:when> - <xsl:otherwise> - <xsl:value-of select="$sici2"/> - <!-- 1:2 --> - </xsl:otherwise> - </xsl:choose> - </xsl:variable> - <xsl:variable name="sici3"> - <xsl:choose> - <xsl:when test="starts-with(substring-after($sici2,$level2),':')"> - <xsl:value-of select="substring(substring-after($sici2,$level2),2)"/> - </xsl:when> - <xsl:otherwise> - <xsl:value-of select="substring-after($sici2,$level2)"/> - </xsl:otherwise> - </xsl:choose> - </xsl:variable> - <xsl:variable name="level3"> - <xsl:choose> - <xsl:when test="contains($sici3,'<')"> - <!-- 2<4 --> - <xsl:value-of select="substring-before($sici3,'<')"/> - </xsl:when> - <xsl:otherwise> - <xsl:value-of select="$sici3"/> - <!-- 3 --> - </xsl:otherwise> - </xsl:choose> - </xsl:variable> - <xsl:variable name="page"> - <xsl:if test="contains(text(),'<')"> - <xsl:value-of select="substring-after(text(),'<')"/> - </xsl:if> - </xsl:variable> - <xsl:if test="$level1"> - <detail level="1"> - <number> - <xsl:value-of select="$level1"/> - </number> - </detail> - </xsl:if> - <xsl:if test="$level2"> - <detail level="2"> - <number> - <xsl:value-of select="$level2"/> - </number> - </detail> - </xsl:if> - <xsl:if test="$level3"> - <detail level="3"> - <number> - <xsl:value-of select="$level3"/> - </number> - </detail> - </xsl:if> - <xsl:if test="$page"> - <extent unit="page"> - <start> - <xsl:value-of select="$page"/> - </start> - </extent> - </xsl:if> - </xsl:template> - <xsl:template name="getLanguage"> - <xsl:param name="langString"/> - <xsl:param name="controlField008-35-37"/> - <xsl:variable name="length" select="string-length($langString)"/> - <xsl:choose> - <xsl:when test="$length=0"/> - <xsl:when test="$controlField008-35-37=substring($langString,1,3)"> - <xsl:call-template name="getLanguage"> - <xsl:with-param name="langString" select="substring($langString,4,$length)"/> - <xsl:with-param name="controlField008-35-37" select="$controlField008-35-37"/> - </xsl:call-template> - </xsl:when> - <xsl:otherwise> - <language> - <languageTerm authority="iso639-2b" type="code"> - <xsl:value-of select="substring($langString,1,3)"/> - </languageTerm> - </language> - <xsl:call-template name="getLanguage"> - <xsl:with-param name="langString" select="substring($langString,4,$length)"/> - <xsl:with-param name="controlField008-35-37" select="$controlField008-35-37"/> - </xsl:call-template> - </xsl:otherwise> - </xsl:choose> - </xsl:template> - <xsl:template name="isoLanguage"> - <xsl:param name="currentLanguage"/> - <xsl:param name="usedLanguages"/> - <xsl:param name="remainingLanguages"/> - <xsl:choose> - <xsl:when test="string-length($currentLanguage)=0"/> - <xsl:when test="not(contains($usedLanguages, $currentLanguage))"> - <language> - <xsl:if test="@code!='a'"> - <xsl:attribute name="objectPart"> - <xsl:choose> - <xsl:when test="@code='b'">summary or subtitle</xsl:when> - <xsl:when test="@code='d'">sung or spoken text</xsl:when> - <xsl:when test="@code='e'">libretto</xsl:when> - <xsl:when test="@code='f'">table of contents</xsl:when> - <xsl:when test="@code='g'">accompanying material</xsl:when> - <xsl:when test="@code='h'">translation</xsl:when> - </xsl:choose> - </xsl:attribute> - </xsl:if> - <languageTerm authority="iso639-2b" type="code"> - <xsl:value-of select="$currentLanguage"/> - </languageTerm> - </language> - <xsl:call-template name="isoLanguage"> - <xsl:with-param name="currentLanguage"> - <xsl:value-of select="substring($remainingLanguages,1,3)"/> - </xsl:with-param> - <xsl:with-param name="usedLanguages"> - <xsl:value-of select="concat($usedLanguages,$currentLanguage)"/> - </xsl:with-param> - <xsl:with-param name="remainingLanguages"> - <xsl:value-of select="substring($remainingLanguages,4,string-length($remainingLanguages))"/> - </xsl:with-param> - </xsl:call-template> - </xsl:when> - <xsl:otherwise> - <xsl:call-template name="isoLanguage"> - <xsl:with-param name="currentLanguage"> - <xsl:value-of select="substring($remainingLanguages,1,3)"/> - </xsl:with-param> - <xsl:with-param name="usedLanguages"> - <xsl:value-of select="concat($usedLanguages,$currentLanguage)"/> - </xsl:with-param> - <xsl:with-param name="remainingLanguages"> - <xsl:value-of select="substring($remainingLanguages,4,string-length($remainingLanguages))"/> - </xsl:with-param> - </xsl:call-template> - </xsl:otherwise> - </xsl:choose> - </xsl:template> - <xsl:template name="chopBrackets"> - <xsl:param name="chopString"/> - <xsl:variable name="string"> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString" select="$chopString"/> - </xsl:call-template> - </xsl:variable> - <xsl:if test="substring($string, 1,1)='['"> - <xsl:value-of select="substring($string,2, string-length($string)-2)"/> - </xsl:if> - <xsl:if test="substring($string, 1,1)!='['"> - <xsl:value-of select="$string"/> - </xsl:if> - </xsl:template> - <xsl:template name="rfcLanguages"> - <xsl:param name="nodeNum"/> - <xsl:param name="usedLanguages"/> - <xsl:param name="controlField008-35-37"/> - <xsl:variable name="currentLanguage" select="."/> - <xsl:choose> - <xsl:when test="not($currentLanguage)"/> - <xsl:when test="$currentLanguage!=$controlField008-35-37 and $currentLanguage!='rfc3066'"> - <xsl:if test="not(contains($usedLanguages,$currentLanguage))"> - <language> - <xsl:if test="@code!='a'"> - <xsl:attribute name="objectPart"> - <xsl:choose> - <xsl:when test="@code='b'">summary or subtitle</xsl:when> - <xsl:when test="@code='d'">sung or spoken text</xsl:when> - <xsl:when test="@code='e'">libretto</xsl:when> - <xsl:when test="@code='f'">table of contents</xsl:when> - <xsl:when test="@code='g'">accompanying material</xsl:when> - <xsl:when test="@code='h'">translation</xsl:when> - </xsl:choose> - </xsl:attribute> - </xsl:if> - <languageTerm authority="rfc3066" type="code"> - <xsl:value-of select="$currentLanguage"/> - </languageTerm> - </language> - </xsl:if> - </xsl:when> - <xsl:otherwise> </xsl:otherwise> - </xsl:choose> - </xsl:template> - - <!-- tmee added 20100106 for 045$b BC and CE date range info --> - <xsl:template name="dates045b"> - <xsl:param name="str"/> - <xsl:variable name="first-char" select="substring($str,1,1)"/> - <xsl:choose> - <xsl:when test="$first-char ='c'"> - <xsl:value-of select="concat ('-', substring($str, 2))"/> - </xsl:when> - <xsl:when test="$first-char ='d'"> - <xsl:value-of select="substring($str, 2)"/> - </xsl:when> - <xsl:otherwise> - <xsl:value-of select="$str"/> - </xsl:otherwise> - </xsl:choose> - </xsl:template> - - <xsl:template name="scriptCode"> - <xsl:variable name="sf06" select="normalize-space(child::marc:subfield[@code='6'])"/> - <xsl:variable name="sf06a" select="substring($sf06, 1, 3)"/> - <xsl:variable name="sf06b" select="substring($sf06, 5, 2)"/> - <xsl:variable name="sf06c" select="substring($sf06, 7)"/> - <xsl:variable name="scriptCode" select="substring($sf06, 8, 2)"/> - <xsl:if test="//marc:datafield/marc:subfield[@code='6']"> - <xsl:attribute name="script"> - <xsl:choose> - <xsl:when test="$scriptCode=''">Latn</xsl:when> - <xsl:when test="$scriptCode='(3'">Arab</xsl:when> - <xsl:when test="$scriptCode='(4'">Arab</xsl:when> - <xsl:when test="$scriptCode='(B'">Latn</xsl:when> - <xsl:when test="$scriptCode='!E'">Latn</xsl:when> - <xsl:when test="$scriptCode='$1'">CJK</xsl:when> - <xsl:when test="$scriptCode='(N'">Cyrl</xsl:when> - <xsl:when test="$scriptCode='(Q'">Cyrl</xsl:when> - <xsl:when test="$scriptCode='(2'">Hebr</xsl:when> - <xsl:when test="$scriptCode='(S'">Grek</xsl:when> - </xsl:choose> - </xsl:attribute> - </xsl:if> - </xsl:template> - - <!-- tmee 20100927 for 880s & corresponding fields 20101123 scriptCode --> - - <xsl:template name="xxx880"> - <xsl:if test="child::marc:subfield[@code='6']"> - <xsl:variable name="sf06" select="normalize-space(child::marc:subfield[@code='6'])"/> - <xsl:variable name="sf06a" select="substring($sf06, 1, 3)"/> - <xsl:variable name="sf06b" select="substring($sf06, 5, 2)"/> - <xsl:variable name="sf06c" select="substring($sf06, 7)"/> - <xsl:variable name="scriptCode" select="substring($sf06, 8, 2)"/> - <xsl:if test="//marc:datafield/marc:subfield[@code='6']"> - <xsl:attribute name="altRepGroup"> - <xsl:value-of select="$sf06b"/> - </xsl:attribute> - <xsl:attribute name="script"> - <xsl:choose> - <xsl:when test="$scriptCode=''">Latn</xsl:when> - <xsl:when test="$scriptCode='(3'">Arab</xsl:when> - <xsl:when test="$scriptCode='(4'">Arab</xsl:when> - <xsl:when test="$scriptCode='(B'">Latn</xsl:when> - <xsl:when test="$scriptCode='!E'">Latn</xsl:when> - <xsl:when test="$scriptCode='$1'">CJK</xsl:when> - <xsl:when test="$scriptCode='(N'">Cyrl</xsl:when> - <xsl:when test="$scriptCode='(Q'">Cyrl</xsl:when> - <xsl:when test="$scriptCode='(2'">Hebr</xsl:when> - <xsl:when test="$scriptCode='(S'">Grek</xsl:when> - </xsl:choose> - </xsl:attribute> - </xsl:if> - </xsl:if> - </xsl:template> - - <xsl:template name="yyy880"> - <xsl:if test="preceding-sibling::marc:subfield[@code='6']"> - <xsl:variable name="sf06" select="normalize-space(preceding-sibling::marc:subfield[@code='6'])"/> - <xsl:variable name="sf06a" select="substring($sf06, 1, 3)"/> - <xsl:variable name="sf06b" select="substring($sf06, 5, 2)"/> - <xsl:variable name="sf06c" select="substring($sf06, 7)"/> - <xsl:if test="//marc:datafield/marc:subfield[@code='6']"> - <xsl:attribute name="altRepGroup"> - <xsl:value-of select="$sf06b"/> - </xsl:attribute> - </xsl:if> - </xsl:if> - </xsl:template> - - <xsl:template name="z2xx880"> - <!-- Evaluating the 260 field --> - <xsl:variable name="x260"> - <xsl:choose> - <xsl:when test="@tag='260' and marc:subfield[@code='6']"> - <xsl:variable name="sf06260" select="normalize-space(child::marc:subfield[@code='6'])"/> - <xsl:variable name="sf06260a" select="substring($sf06260, 1, 3)"/> - <xsl:variable name="sf06260b" select="substring($sf06260, 5, 2)"/> - <xsl:variable name="sf06260c" select="substring($sf06260, 7)"/> - <xsl:value-of select="$sf06260b"/> - </xsl:when> - <xsl:when test="@tag='250' and ../marc:datafield[@tag='260']/marc:subfield[@code='6']"> - <xsl:variable name="sf06260" select="normalize-space(../marc:datafield[@tag='260']/marc:subfield[@code='6'])"/> - <xsl:variable name="sf06260a" select="substring($sf06260, 1, 3)"/> - <xsl:variable name="sf06260b" select="substring($sf06260, 5, 2)"/> - <xsl:variable name="sf06260c" select="substring($sf06260, 7)"/> - <xsl:value-of select="$sf06260b"/> - </xsl:when> - </xsl:choose> - </xsl:variable> - - <xsl:variable name="x250"> - <xsl:choose> - <xsl:when test="@tag='250' and marc:subfield[@code='6']"> - <xsl:variable name="sf06250" select="normalize-space(../marc:datafield[@tag='250']/marc:subfield[@code='6'])"/> - <xsl:variable name="sf06250a" select="substring($sf06250, 1, 3)"/> - <xsl:variable name="sf06250b" select="substring($sf06250, 5, 2)"/> - <xsl:variable name="sf06250c" select="substring($sf06250, 7)"/> - <xsl:value-of select="$sf06250b"/> - </xsl:when> - <xsl:when test="@tag='260' and ../marc:datafield[@tag='250']/marc:subfield[@code='6']"> - <xsl:variable name="sf06250" select="normalize-space(../marc:datafield[@tag='250']/marc:subfield[@code='6'])"/> - <xsl:variable name="sf06250a" select="substring($sf06250, 1, 3)"/> - <xsl:variable name="sf06250b" select="substring($sf06250, 5, 2)"/> - <xsl:variable name="sf06250c" select="substring($sf06250, 7)"/> - <xsl:value-of select="$sf06250b"/> - </xsl:when> - </xsl:choose> - </xsl:variable> - - <xsl:choose> - <xsl:when test="$x250!='' and $x260!=''"> - <xsl:attribute name="altRepGroup"> - <xsl:value-of select="concat($x250, $x260)"/> - </xsl:attribute> - </xsl:when> - <xsl:when test="$x250!=''"> - <xsl:attribute name="altRepGroup"> - <xsl:value-of select="$x250"/> - </xsl:attribute> - </xsl:when> - <xsl:when test="$x260!=''"> - <xsl:attribute name="altRepGroup"> - <xsl:value-of select="$x260"/> - </xsl:attribute> - </xsl:when> - </xsl:choose> - <xsl:if test="//marc:datafield/marc:subfield[@code='6']"> </xsl:if> - </xsl:template> - - <xsl:template name="z3xx880"> - <!-- Evaluating the 300 field --> - <xsl:variable name="x300"> - <xsl:choose> - <xsl:when test="@tag='300' and marc:subfield[@code='6']"> - <xsl:variable name="sf06300" select="normalize-space(child::marc:subfield[@code='6'])"/> - <xsl:variable name="sf06300a" select="substring($sf06300, 1, 3)"/> - <xsl:variable name="sf06300b" select="substring($sf06300, 5, 2)"/> - <xsl:variable name="sf06300c" select="substring($sf06300, 7)"/> - <xsl:value-of select="$sf06300b"/> - </xsl:when> - <xsl:when test="@tag='351' and ../marc:datafield[@tag='300']/marc:subfield[@code='6']"> - <xsl:variable name="sf06300" select="normalize-space(../marc:datafield[@tag='300']/marc:subfield[@code='6'])"/> - <xsl:variable name="sf06300a" select="substring($sf06300, 1, 3)"/> - <xsl:variable name="sf06300b" select="substring($sf06300, 5, 2)"/> - <xsl:variable name="sf06300c" select="substring($sf06300, 7)"/> - <xsl:value-of select="$sf06300b"/> - </xsl:when> - </xsl:choose> - </xsl:variable> - - <xsl:variable name="x351"> - <xsl:choose> - <xsl:when test="@tag='351' and marc:subfield[@code='6']"> - <xsl:variable name="sf06351" select="normalize-space(../marc:datafield[@tag='351']/marc:subfield[@code='6'])"/> - <xsl:variable name="sf06351a" select="substring($sf06351, 1, 3)"/> - <xsl:variable name="sf06351b" select="substring($sf06351, 5, 2)"/> - <xsl:variable name="sf06351c" select="substring($sf06351, 7)"/> - <xsl:value-of select="$sf06351b"/> - </xsl:when> - <xsl:when test="@tag='300' and ../marc:datafield[@tag='351']/marc:subfield[@code='6']"> - <xsl:variable name="sf06351" select="normalize-space(../marc:datafield[@tag='351']/marc:subfield[@code='6'])"/> - <xsl:variable name="sf06351a" select="substring($sf06351, 1, 3)"/> - <xsl:variable name="sf06351b" select="substring($sf06351, 5, 2)"/> - <xsl:variable name="sf06351c" select="substring($sf06351, 7)"/> - <xsl:value-of select="$sf06351b"/> - </xsl:when> - </xsl:choose> - </xsl:variable> - - <xsl:variable name="x337"> - <xsl:if test="@tag='337' and marc:subfield[@code='6']"> - <xsl:variable name="sf06337" select="normalize-space(child::marc:subfield[@code='6'])"/> - <xsl:variable name="sf06337a" select="substring($sf06337, 1, 3)"/> - <xsl:variable name="sf06337b" select="substring($sf06337, 5, 2)"/> - <xsl:variable name="sf06337c" select="substring($sf06337, 7)"/> - <xsl:value-of select="$sf06337b"/> - </xsl:if> - </xsl:variable> - <xsl:variable name="x338"> - <xsl:if test="@tag='338' and marc:subfield[@code='6']"> - <xsl:variable name="sf06338" select="normalize-space(child::marc:subfield[@code='6'])"/> - <xsl:variable name="sf06338a" select="substring($sf06338, 1, 3)"/> - <xsl:variable name="sf06338b" select="substring($sf06338, 5, 2)"/> - <xsl:variable name="sf06338c" select="substring($sf06338, 7)"/> - <xsl:value-of select="$sf06338b"/> - </xsl:if> - </xsl:variable> - - <xsl:choose> - <xsl:when test="$x351!='' and $x300!=''"> - <xsl:attribute name="altRepGroup"> - <xsl:value-of select="concat($x351, $x300, $x337, $x338)"/> - </xsl:attribute> - </xsl:when> - <xsl:when test="$x351!=''"> - <xsl:attribute name="altRepGroup"> - <xsl:value-of select="$x351"/> - </xsl:attribute> - </xsl:when> - <xsl:when test="$x300!=''"> - <xsl:attribute name="altRepGroup"> - <xsl:value-of select="$x300"/> - </xsl:attribute> - </xsl:when> - <xsl:when test="$x337!=''"> - <xsl:attribute name="altRepGroup"> - <xsl:value-of select="$x351"/> - </xsl:attribute> - </xsl:when> - <xsl:when test="$x338!=''"> - <xsl:attribute name="altRepGroup"> - <xsl:value-of select="$x300"/> - </xsl:attribute> - </xsl:when> - </xsl:choose> - <xsl:if test="//marc:datafield/marc:subfield[@code='6']"> </xsl:if> - </xsl:template> - - - - <xsl:template name="true880"> - <xsl:variable name="sf06" select="normalize-space(marc:subfield[@code='6'])"/> - <xsl:variable name="sf06a" select="substring($sf06, 1, 3)"/> - <xsl:variable name="sf06b" select="substring($sf06, 5, 2)"/> - <xsl:variable name="sf06c" select="substring($sf06, 7)"/> - <xsl:if test="//marc:datafield/marc:subfield[@code='6']"> - <xsl:attribute name="altRepGroup"> - <xsl:value-of select="$sf06b"/> - </xsl:attribute> - </xsl:if> - </xsl:template> - - <xsl:template match="marc:datafield" mode="trans880"> - <xsl:variable name="dataField880" select="//marc:datafield"/> - <xsl:variable name="sf06" select="normalize-space(marc:subfield[@code='6'])"/> - <xsl:variable name="sf06a" select="substring($sf06, 1, 3)"/> - <xsl:variable name="sf06b" select="substring($sf06, 4)"/> - <xsl:choose> - - <!--tranforms 880 equiv--> - - <xsl:when test="$sf06a='047'"> - <xsl:call-template name="createGenreFrom047"/> - </xsl:when> - <xsl:when test="$sf06a='336'"> - <xsl:call-template name="createGenreFrom336"/> - </xsl:when> - <xsl:when test="$sf06a='655'"> - <xsl:call-template name="createGenreFrom655"/> - </xsl:when> - - <xsl:when test="$sf06a='050'"> - <xsl:call-template name="createClassificationFrom050"/> - </xsl:when> - <xsl:when test="$sf06a='060'"> - <xsl:call-template name="createClassificationFrom060"/> - </xsl:when> - <xsl:when test="$sf06a='080'"> - <xsl:call-template name="createClassificationFrom080"/> - </xsl:when> - <xsl:when test="$sf06a='082'"> - <xsl:call-template name="createClassificationFrom082"/> - </xsl:when> - <xsl:when test="$sf06a='084'"> - <xsl:call-template name="createClassificationFrom080"/> - </xsl:when> - <xsl:when test="$sf06a='086'"> - <xsl:call-template name="createClassificationFrom082"/> - </xsl:when> - <xsl:when test="$sf06a='100'"> - <xsl:call-template name="createNameFrom100"/> - </xsl:when> - <xsl:when test="$sf06a='110'"> - <xsl:call-template name="createNameFrom110"/> - </xsl:when> - <xsl:when test="$sf06a='111'"> - <xsl:call-template name="createNameFrom110"/> - </xsl:when> - <xsl:when test="$sf06a='700'"> - <xsl:call-template name="createNameFrom700"/> - </xsl:when> - <xsl:when test="$sf06a='710'"> - <xsl:call-template name="createNameFrom710"/> - </xsl:when> - <xsl:when test="$sf06a='711'"> - <xsl:call-template name="createNameFrom710"/> - </xsl:when> - <xsl:when test="$sf06a='210'"> - <xsl:call-template name="createTitleInfoFrom210"/> - </xsl:when> - <xsl:when test="$sf06a='245'"> - <xsl:call-template name="createTitleInfoFrom245"/> - <xsl:call-template name="createNoteFrom245c"/> - </xsl:when> - <xsl:when test="$sf06a='246'"> - <xsl:call-template name="createTitleInfoFrom246"/> - </xsl:when> - <xsl:when test="$sf06a='240'"> - <xsl:call-template name="createTitleInfoFrom240"/> - </xsl:when> - <xsl:when test="$sf06a='740'"> - <xsl:call-template name="createTitleInfoFrom740"/> - </xsl:when> - - <xsl:when test="$sf06a='130'"> - <xsl:call-template name="createTitleInfoFrom130"/> - </xsl:when> - <xsl:when test="$sf06a='730'"> - <xsl:call-template name="createTitleInfoFrom730"/> - </xsl:when> - - <xsl:when test="$sf06a='505'"> - <xsl:call-template name="createTOCFrom505"/> - </xsl:when> - <xsl:when test="$sf06a='520'"> - <xsl:call-template name="createAbstractFrom520"/> - </xsl:when> - <xsl:when test="$sf06a='521'"> - <xsl:call-template name="createTargetAudienceFrom521"/> - </xsl:when> - <xsl:when test="$sf06a='506'"> - <xsl:call-template name="createAccessConditionFrom506"/> - </xsl:when> - <xsl:when test="$sf06a='540'"> - <xsl:call-template name="createAccessConditionFrom540"/> - </xsl:when> - - <!-- note 245 362 etc --> - - <xsl:when test="$sf06a='245'"> - <xsl:call-template name="createNoteFrom245c"/> - </xsl:when> - <xsl:when test="$sf06a='362'"> - <xsl:call-template name="createNoteFrom362"/> - </xsl:when> - <xsl:when test="$sf06a='502'"> - <xsl:call-template name="createNoteFrom502"/> - </xsl:when> - <xsl:when test="$sf06a='504'"> - <xsl:call-template name="createNoteFrom504"/> - </xsl:when> - <xsl:when test="$sf06a='508'"> - <xsl:call-template name="createNoteFrom508"/> - </xsl:when> - <xsl:when test="$sf06a='511'"> - <xsl:call-template name="createNoteFrom511"/> - </xsl:when> - <xsl:when test="$sf06a='515'"> - <xsl:call-template name="createNoteFrom515"/> - </xsl:when> - <xsl:when test="$sf06a='518'"> - <xsl:call-template name="createNoteFrom518"/> - </xsl:when> - <xsl:when test="$sf06a='524'"> - <xsl:call-template name="createNoteFrom524"/> - </xsl:when> - <xsl:when test="$sf06a='530'"> - <xsl:call-template name="createNoteFrom530"/> - </xsl:when> - <xsl:when test="$sf06a='533'"> - <xsl:call-template name="createNoteFrom533"/> - </xsl:when> - <!-- - <xsl:when test="$sf06a='534'"> - <xsl:call-template name="createNoteFrom534"/> - </xsl:when> ---> - <xsl:when test="$sf06a='535'"> - <xsl:call-template name="createNoteFrom535"/> - </xsl:when> - <xsl:when test="$sf06a='536'"> - <xsl:call-template name="createNoteFrom536"/> - </xsl:when> - <xsl:when test="$sf06a='538'"> - <xsl:call-template name="createNoteFrom538"/> - </xsl:when> - <xsl:when test="$sf06a='541'"> - <xsl:call-template name="createNoteFrom541"/> - </xsl:when> - <xsl:when test="$sf06a='545'"> - <xsl:call-template name="createNoteFrom545"/> - </xsl:when> - <xsl:when test="$sf06a='546'"> - <xsl:call-template name="createNoteFrom546"/> - </xsl:when> - <xsl:when test="$sf06a='561'"> - <xsl:call-template name="createNoteFrom561"/> - </xsl:when> - <xsl:when test="$sf06a='562'"> - <xsl:call-template name="createNoteFrom562"/> - </xsl:when> - <xsl:when test="$sf06a='581'"> - <xsl:call-template name="createNoteFrom581"/> - </xsl:when> - <xsl:when test="$sf06a='583'"> - <xsl:call-template name="createNoteFrom583"/> - </xsl:when> - <xsl:when test="$sf06a='585'"> - <xsl:call-template name="createNoteFrom585"/> - </xsl:when> - - <!-- note 5XX --> - - <xsl:when test="$sf06a='501'"> - <xsl:call-template name="createNoteFrom5XX"/> - </xsl:when> - <xsl:when test="$sf06a='507'"> - <xsl:call-template name="createNoteFrom5XX"/> - </xsl:when> - <xsl:when test="$sf06a='513'"> - <xsl:call-template name="createNoteFrom5XX"/> - </xsl:when> - <xsl:when test="$sf06a='514'"> - <xsl:call-template name="createNoteFrom5XX"/> - </xsl:when> - <xsl:when test="$sf06a='516'"> - <xsl:call-template name="createNoteFrom5XX"/> - </xsl:when> - <xsl:when test="$sf06a='522'"> - <xsl:call-template name="createNoteFrom5XX"/> - </xsl:when> - <xsl:when test="$sf06a='525'"> - <xsl:call-template name="createNoteFrom5XX"/> - </xsl:when> - <xsl:when test="$sf06a='526'"> - <xsl:call-template name="createNoteFrom5XX"/> - </xsl:when> - <xsl:when test="$sf06a='544'"> - <xsl:call-template name="createNoteFrom5XX"/> - </xsl:when> - <xsl:when test="$sf06a='552'"> - <xsl:call-template name="createNoteFrom5XX"/> - </xsl:when> - <xsl:when test="$sf06a='555'"> - <xsl:call-template name="createNoteFrom5XX"/> - </xsl:when> - <xsl:when test="$sf06a='556'"> - <xsl:call-template name="createNoteFrom5XX"/> - </xsl:when> - <xsl:when test="$sf06a='565'"> - <xsl:call-template name="createNoteFrom5XX"/> - </xsl:when> - <xsl:when test="$sf06a='567'"> - <xsl:call-template name="createNoteFrom5XX"/> - </xsl:when> - <xsl:when test="$sf06a='580'"> - <xsl:call-template name="createNoteFrom5XX"/> - </xsl:when> - <xsl:when test="$sf06a='584'"> - <xsl:call-template name="createNoteFrom5XX"/> - </xsl:when> - <xsl:when test="$sf06a='586'"> - <xsl:call-template name="createNoteFrom5XX"/> - </xsl:when> - - <!-- subject 034 043 045 255 656 662 752 --> - - <xsl:when test="$sf06a='034'"> - <xsl:call-template name="createSubGeoFrom034"/> - </xsl:when> - <xsl:when test="$sf06a='043'"> - <xsl:call-template name="createSubGeoFrom043"/> - </xsl:when> - <xsl:when test="$sf06a='045'"> - <xsl:call-template name="createSubTemFrom045"/> - </xsl:when> - <xsl:when test="$sf06a='255'"> - <xsl:call-template name="createSubGeoFrom255"/> - </xsl:when> - - <xsl:when test="$sf06a='600'"> - <xsl:call-template name="createSubNameFrom600"/> - </xsl:when> - <xsl:when test="$sf06a='610'"> - <xsl:call-template name="createSubNameFrom610"/> - </xsl:when> - <xsl:when test="$sf06a='611'"> - <xsl:call-template name="createSubNameFrom611"/> - </xsl:when> - - <xsl:when test="$sf06a='630'"> - <xsl:call-template name="createSubTitleFrom630"/> - </xsl:when> - - <xsl:when test="$sf06a='648'"> - <xsl:call-template name="createSubChronFrom648"/> - </xsl:when> - <xsl:when test="$sf06a='650'"> - <xsl:call-template name="createSubTopFrom650"/> - </xsl:when> - <xsl:when test="$sf06a='651'"> - <xsl:call-template name="createSubGeoFrom651"/> - </xsl:when> - - - <xsl:when test="$sf06a='653'"> - <xsl:call-template name="createSubFrom653"/> - </xsl:when> - <xsl:when test="$sf06a='656'"> - <xsl:call-template name="createSubFrom656"/> - </xsl:when> - <xsl:when test="$sf06a='662'"> - <xsl:call-template name="createSubGeoFrom662752"/> - </xsl:when> - <xsl:when test="$sf06a='752'"> - <xsl:call-template name="createSubGeoFrom662752"/> - </xsl:when> - - <!-- location 852 856 --> - - <xsl:when test="$sf06a='852'"> - <xsl:call-template name="createLocationFrom852"/> - </xsl:when> - <xsl:when test="$sf06a='856'"> - <xsl:call-template name="createLocationFrom856"/> - </xsl:when> - - <xsl:when test="$sf06a='490'"> - <xsl:call-template name="createRelatedItemFrom490"/> - </xsl:when> - </xsl:choose> - </xsl:template> - - <!-- titleInfo 130 730 245 246 240 740 210 --> - - <!-- 130 tmee 1.101 20140806--> - <xsl:template name="createTitleInfoFrom130"> - - <titleInfo type="uniform"> - <title> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield"> - <xsl:if test="(contains('s',@code))"> - <xsl:value-of select="text()"/> - <xsl:text> </xsl:text> - </xsl:if> - <xsl:if test="(contains('adfklmors',@code) and (not(../marc:subfield[@code='n' or @code='p']) or (following-sibling::marc:subfield[@code='n' or @code='p'])))"> - <xsl:value-of select="text()"/> - <xsl:text> </xsl:text> - </xsl:if> - </xsl:for-each> - </xsl:variable> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </xsl:with-param> - </xsl:call-template> - </title> - <xsl:call-template name="part"/> - </titleInfo> - - </xsl:template> - <xsl:template name="createTitleInfoFrom730"> - <titleInfo type="uniform"> - <title> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield"> - <xsl:if test="(contains('s',@code))"> - <xsl:value-of select="text()"/> - <xsl:text> </xsl:text> - </xsl:if> - <xsl:if test="(contains('adfklmors',@code) and (not(../marc:subfield[@code='n' or @code='p']) or (following-sibling::marc:subfield[@code='n' or @code='p'])))"> - <xsl:value-of select="text()"/> - <xsl:text> </xsl:text> - </xsl:if> - </xsl:for-each> - </xsl:variable> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </xsl:with-param> - </xsl:call-template> - </title> - <xsl:call-template name="part"/> - </titleInfo> - </xsl:template> - - <xsl:template name="createTitleInfoFrom210"> - <titleInfo type="abbreviated"> - <xsl:if test="marc:datafield[@tag='210'][@ind2='2']"> - <xsl:attribute name="authority"> - <xsl:value-of select="marc:subfield[@code='2']"/> - </xsl:attribute> - </xsl:if> - <xsl:call-template name="xxx880"/> - <title> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">a</xsl:with-param> - </xsl:call-template> - </xsl:with-param> - </xsl:call-template> - </title> - <xsl:call-template name="subtitle"/> - </titleInfo> - </xsl:template> - <!-- 1.79 --> - <xsl:template name="createTitleInfoFrom245"> - <titleInfo> - <xsl:call-template name="xxx880"/> - <xsl:variable name="title"> - <xsl:choose> - <xsl:when test="marc:subfield[@code='b']"> - <xsl:call-template name="specialSubfieldSelect"> - <xsl:with-param name="axis">b</xsl:with-param> - <xsl:with-param name="beforeCodes">afgks</xsl:with-param> - </xsl:call-template> - </xsl:when> - <xsl:otherwise> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">abfgks</xsl:with-param> - </xsl:call-template> - </xsl:otherwise> - </xsl:choose> - </xsl:variable> - <xsl:variable name="titleChop"> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:value-of select="$title"/> - </xsl:with-param> - </xsl:call-template> - </xsl:variable> - <xsl:choose> - <xsl:when test="@ind2>0"> - <xsl:if test="@tag!='880'"> - <!-- 1.112 --> - <nonSort xml:space="preserve"><xsl:value-of select="substring($titleChop,1,@ind2)"/> </nonSort> - </xsl:if> - <title> - <xsl:value-of select="substring($titleChop,@ind2+1)"/> - </title> - </xsl:when> - <xsl:otherwise> - <title> - <xsl:value-of select="$titleChop"/> - </title> - </xsl:otherwise> - </xsl:choose> - <xsl:if test="marc:subfield[@code='b']"> - <subTitle> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:call-template name="specialSubfieldSelect"> - <xsl:with-param name="axis">b</xsl:with-param> - <xsl:with-param name="anyCodes">b</xsl:with-param> - <xsl:with-param name="afterCodes">afgks</xsl:with-param> - </xsl:call-template> - </xsl:with-param> - </xsl:call-template> - </subTitle> - </xsl:if> - <xsl:call-template name="part"/> - </titleInfo> - </xsl:template> - - <xsl:template name="createTitleInfoFrom246"> - <titleInfo type="alternative"> - <xsl:call-template name="xxx880"/> - <xsl:for-each select="marc:subfield[@code='i']"> - <xsl:attribute name="displayLabel"> - <xsl:value-of select="text()"/> - </xsl:attribute> - </xsl:for-each> - <title> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:call-template name="subfieldSelect"> - <!-- 1/04 removed $h, $b --> - <xsl:with-param name="codes">af</xsl:with-param> - </xsl:call-template> - </xsl:with-param> - </xsl:call-template> - </title> - <xsl:call-template name="subtitle"/> - <xsl:call-template name="part"/> - </titleInfo> - </xsl:template> - - <!-- 240 nameTitleGroup--> - <!-- 1.102 --> - - <xsl:template name="createTitleInfoFrom240"> - <titleInfo type="uniform"> - <xsl:if test="//marc:datafield[@tag='100']|//marc:datafield[@tag='110']|//marc:datafield[@tag='111']"> - <xsl:attribute name="nameTitleGroup"> - <xsl:text>1</xsl:text> - </xsl:attribute> - </xsl:if> - <xsl:call-template name="xxx880"/> - <title> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield"> - <xsl:if test="(contains('adfklmors',@code) and (not(../marc:subfield[@code='n' or @code='p']) or (following-sibling::marc:subfield[@code='n' or @code='p'])))"> - <xsl:value-of select="text()"/> - <xsl:text> </xsl:text> - </xsl:if> - </xsl:for-each> - </xsl:variable> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </xsl:with-param> - </xsl:call-template> - </title> - <xsl:call-template name="part"/> - </titleInfo> - </xsl:template> - - <xsl:template name="createTitleInfoFrom740"> - <titleInfo type="alternative"> - <xsl:call-template name="xxx880"/> - <title> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">ah</xsl:with-param> - </xsl:call-template> - </xsl:with-param> - </xsl:call-template> - </title> - <xsl:call-template name="part"/> - </titleInfo> - </xsl:template> - - <!-- name 100 110 111 1.93 --> - - <xsl:template name="createNameFrom100"> - <xsl:if test="@ind1='0' or @ind1='1'"> - <name type="personal"> - <xsl:attribute name="usage"> - <xsl:text>primary</xsl:text> - </xsl:attribute> - <xsl:call-template name="xxx880"/> - <xsl:if test="//marc:datafield[@tag='240']"> - <xsl:attribute name="nameTitleGroup"> - <xsl:text>1</xsl:text> - </xsl:attribute> - </xsl:if> - <xsl:call-template name="nameABCDQ"/> - <xsl:call-template name="affiliation"/> - <xsl:call-template name="role"/> - <!-- 1.116 --> - <xsl:call-template name="nameIdentifier"/> - </name> - </xsl:if> - <!-- 1.99 240 fix 20140804 --> - <xsl:if test="@ind1='3'"> - <name type="family"> - <xsl:attribute name="usage"> - <xsl:text>primary</xsl:text> - </xsl:attribute> - <xsl:call-template name="xxx880"/> - - <xsl:if test="ancestor::marcrecord//marc:datafield[@tag='240']"> - <xsl:attribute name="nameTitleGroup"> - <xsl:text>1</xsl:text> - </xsl:attribute> - </xsl:if> - <xsl:call-template name="nameABCDQ"/> - <xsl:call-template name="affiliation"/> - <xsl:call-template name="role"/> - <!-- 1.116 --> - <xsl:call-template name="nameIdentifier"/> - </name> - </xsl:if> - </xsl:template> - - <xsl:template name="createNameFrom110"> - <name type="corporate"> - <xsl:call-template name="xxx880"/> - <xsl:if test="//marc:datafield[@tag='240']"> - <xsl:attribute name="nameTitleGroup"> - <xsl:text>1</xsl:text> - </xsl:attribute> - </xsl:if> - <xsl:call-template name="nameABCDN"/> - <xsl:call-template name="role"/> - <!-- 1.116 --> - <xsl:call-template name="nameIdentifier"/> - </name> - </xsl:template> - - - <!-- 111 1.104 20141104 --> - - <xsl:template name="createNameFrom111"> - <name type="conference"> - <xsl:call-template name="xxx880"/> - <xsl:if test="//marc:datafield[@tag='240']"> - <xsl:attribute name="nameTitleGroup"> - <xsl:text>1</xsl:text> - </xsl:attribute> - </xsl:if> - <xsl:call-template name="nameACDENQ"/> - <xsl:call-template name="role"/> - <!-- 1.116 --> - <xsl:call-template name="nameIdentifier"/> - </name> - </xsl:template> - - - - <!-- name 700 710 711 720 --> - - <xsl:template name="createNameFrom700"> - <xsl:if test="@ind1='0' or @ind1='1'"> - <name type="personal"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="nameABCDQ"/> - <xsl:call-template name="affiliation"/> - <xsl:call-template name="role"/> - <!-- 1.116 --> - <xsl:call-template name="nameIdentifier"/> - </name> - </xsl:if> - <xsl:if test="@ind1='3'"> - <name type="family"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="nameABCDQ"/> - <xsl:call-template name="affiliation"/> - <xsl:call-template name="role"/> - <!-- 1.116 --> - <xsl:call-template name="nameIdentifier"/> - </name> - </xsl:if> - </xsl:template> - - <xsl:template name="createNameFrom710"> - <!-- 1.117 --> - <name type="corporate"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="nameABCDN"/> - <xsl:call-template name="role"/> - <!-- 1.116 --> - <xsl:call-template name="nameIdentifier"/> - </name> - </xsl:template> - -<!-- 111 1.104 20141104 --> - <xsl:template name="createNameFrom711"> - <name type="conference"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="nameACDENQ"/> - <xsl:call-template name="role"/> - <!-- 1.116 --> - <xsl:call-template name="nameIdentifier"/> - </name> - </xsl:template> - - - <xsl:template name="createNameFrom720"> - <!-- 1.91 FLVC correction: the original if test will fail because of xpath: the current node (from the for-each above) is already the 720 datafield --> - <!-- <xsl:if test="marc:datafield[@tag='720'][not(marc:subfield[@code='t'])]"> --> - <xsl:if test="not(marc:subfield[@code='t'])"> - <name> - <xsl:if test="@ind1=1"> - <xsl:attribute name="type"> - <xsl:text>personal</xsl:text> - </xsl:attribute> - </xsl:if> - <namePart> - <xsl:value-of select="marc:subfield[@code='a']"/> - </namePart> - <xsl:call-template name="role"/> - </name> - </xsl:if> - </xsl:template> - - - - <!-- replced by above 1.91 - <xsl:template name="createNameFrom720"> - <xsl:if test="marc:datafield[@tag='720'][not(marc:subfield[@code='t'])]"> - <name> - <xsl:if test="@ind1=1"> - <xsl:attribute name="type"> - <xsl:text>personal</xsl:text> - </xsl:attribute> - </xsl:if> - <namePart> - <xsl:value-of select="marc:subfield[@code='a']"/> - </namePart> - <xsl:call-template name="role"/> - </name> - </xsl:if> - </xsl:template> - --> - - - <!-- genre 047 336 655 --> - - <xsl:template name="createGenreFrom047"> - <genre authority="marcgt"> - <!-- 1.111 --> - <xsl:choose> - <xsl:when test="@ind2 = ' '"> - <xsl:attribute name="authority"><xsl:text>marcmuscomp</xsl:text></xsl:attribute> - </xsl:when> - <xsl:when test="@ind2 = '7'"> - <xsl:if test="marc:subfield[@code='2']"> - <xsl:attribute name="authority"> - <xsl:value-of select="marc:subfield[@code='2']"/> - </xsl:attribute> - </xsl:if> - </xsl:when> - </xsl:choose> - <xsl:attribute name="type"> - <xsl:text>musical composition</xsl:text> - </xsl:attribute> - <!-- Template checks for altRepGroup - 880 $6 --> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">abcdef</xsl:with-param> - <xsl:with-param name="delimeter">-</xsl:with-param> - </xsl:call-template> - </genre> - </xsl:template> - - <xsl:template name="createGenreFrom336"> - <genre> - <!-- 1.110 --> - <xsl:if test="marc:subfield[@code='2']"> - <xsl:attribute name="authority"> - <xsl:value-of select="marc:subfield[@code='2']"/> - </xsl:attribute> - </xsl:if> - <!-- Template checks for altRepGroup - 880 $6 --> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">a</xsl:with-param> - <xsl:with-param name="delimeter">-</xsl:with-param> - </xsl:call-template> - </genre> - - </xsl:template> - - <xsl:template name="createGenreFrom655"> - <genre authority="marcgt"> - <!-- 1.109 --> - <xsl:choose> - <xsl:when test="marc:subfield[@code='2']"> - <xsl:attribute name="authority"> - <xsl:value-of select="marc:subfield[@code='2']"/> - </xsl:attribute> - </xsl:when> - <xsl:when test="@ind2 != ' '"> - <xsl:attribute name="authority"> - <xsl:value-of select="@ind2"/> - </xsl:attribute> - </xsl:when> - </xsl:choose> - <!-- Template checks for altRepGroup - 880 $6 --> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">abvxyz</xsl:with-param> - <xsl:with-param name="delimeter">-</xsl:with-param> - </xsl:call-template> - </genre> - </xsl:template> - - <!-- tOC 505 --> - - <xsl:template name="createTOCFrom505"> - <tableOfContents> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="uri"/> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">agrt</xsl:with-param> - </xsl:call-template> - </tableOfContents> - </xsl:template> - - <!-- abstract 520 --> - - <xsl:template name="createAbstractFrom520"> - <abstract> - <xsl:attribute name="type"> - <xsl:choose> - <xsl:when test="@ind1=' '">Summary</xsl:when> - <xsl:when test="@ind1='0'">Subject</xsl:when> - <xsl:when test="@ind1='1'">Review</xsl:when> - <xsl:when test="@ind1='2'">Scope and content</xsl:when> - <xsl:when test="@ind1='3'">Abstract</xsl:when> - <xsl:when test="@ind1='4'">Content advice</xsl:when> - </xsl:choose> - </xsl:attribute> - - <xsl:call-template name="xxx880"/> - <xsl:call-template name="uri"/> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">ab</xsl:with-param> - </xsl:call-template> - - </abstract> - </xsl:template> - - <!-- targetAudience 521 --> - - <xsl:template name="createTargetAudienceFrom521"> - <targetAudience> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">ab</xsl:with-param> - </xsl:call-template> - </targetAudience> - </xsl:template> - - <!-- note 245c thru 585 --> - - - <!-- 1.100 245c 20140804 --> - <xsl:template name="createNoteFrom245c"> - <xsl:if test="marc:subfield[@code='c']"> - <note type="statement of responsibility"> - <xsl:attribute name="altRepGroup"> - <xsl:text>00</xsl:text> - </xsl:attribute> - <xsl:call-template name="scriptCode"/> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">c</xsl:with-param> - </xsl:call-template> - </note> - </xsl:if> - - </xsl:template> - - <xsl:template name="createNoteFrom362"> - <note type="date/sequential designation"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="uri"/> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield[@code!='6' and @code!='8']"> - <xsl:value-of select="."/> - <xsl:text> </xsl:text> - </xsl:for-each> - </xsl:variable> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </note> - </xsl:template> - - <xsl:template name="createNoteFrom500"> - <note> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="uri"/> - <xsl:value-of select="marc:subfield[@code='a']"/> - </note> - </xsl:template> - - <xsl:template name="createNoteFrom502"> - <note type="thesis"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="uri"/> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield[@code!='6' and @code!='8']"> - <xsl:value-of select="."/> - <xsl:text> </xsl:text> - </xsl:for-each> - </xsl:variable> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </note> - </xsl:template> - - <xsl:template name="createNoteFrom504"> - <note type="bibliography"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="uri"/> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield[@code!='6' and @code!='8']"> - <xsl:value-of select="."/> - <xsl:text> </xsl:text> - </xsl:for-each> - </xsl:variable> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </note> - </xsl:template> - - <xsl:template name="createNoteFrom508"> - <note type="creation/production credits"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="uri"/> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield[@code!='u' and @code!='3' and @code!='6' and @code!='8']"> - <xsl:value-of select="."/> - <xsl:text> </xsl:text> - </xsl:for-each> - </xsl:variable> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </note> - </xsl:template> - - <xsl:template name="createNoteFrom511"> - <note type="performers"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="uri"/> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield[@code!='6' and @code!='8']"> - <xsl:value-of select="."/> - <xsl:text> </xsl:text> - </xsl:for-each> - </xsl:variable> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </note> - </xsl:template> - - <xsl:template name="createNoteFrom515"> - <note type="numbering"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="uri"/> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield[@code!='6' and @code!='8']"> - <xsl:value-of select="."/> - <xsl:text> </xsl:text> - </xsl:for-each> - </xsl:variable> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </note> - </xsl:template> - - <xsl:template name="createNoteFrom518"> - <note type="venue"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="uri"/> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield[@code!='3' and @code!='6' and @code!='8']"> - <xsl:value-of select="."/> - <xsl:text> </xsl:text> - </xsl:for-each> - </xsl:variable> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </note> - </xsl:template> - - <xsl:template name="createNoteFrom524"> - <note type="preferred citation"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="uri"/> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield[@code!='6' and @code!='8']"> - <xsl:value-of select="."/> - <xsl:text> </xsl:text> - </xsl:for-each> - </xsl:variable> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </note> - </xsl:template> - - <xsl:template name="createNoteFrom530"> - <note type="additional physical form"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="uri"/> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield[@code!='u' and @code!='3' and @code!='6' and @code!='8']"> - <xsl:value-of select="."/> - <xsl:text> </xsl:text> - </xsl:for-each> - </xsl:variable> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </note> - </xsl:template> - - <xsl:template name="createNoteFrom533"> - <note type="reproduction"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="uri"/> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield[@code!='6' and @code!='8']"> - <xsl:value-of select="."/> - <xsl:text> </xsl:text> - </xsl:for-each> - </xsl:variable> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </note> - </xsl:template> - - <!-- tmee - <xsl:template name="createNoteFrom534"> - <note type="original version"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="uri"/> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield[@code!='6' and @code!='8']"> - <xsl:value-of select="."/> - <xsl:text> </xsl:text> - </xsl:for-each> - </xsl:variable> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </note> - </xsl:template> ---> - - <xsl:template name="createNoteFrom535"> - <note type="original location"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="uri"/> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield[@code!='6' and @code!='8']"> - <xsl:value-of select="."/> - <xsl:text> </xsl:text> - </xsl:for-each> - </xsl:variable> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </note> - </xsl:template> - - <xsl:template name="createNoteFrom536"> - <note type="funding"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="uri"/> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield[@code!='6' and @code!='8']"> - <xsl:value-of select="."/> - <xsl:text> </xsl:text> - </xsl:for-each> - </xsl:variable> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </note> - </xsl:template> - - <xsl:template name="createNoteFrom538"> - <note type="system details"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="uri"/> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield[@code!='6' and @code!='8']"> - <xsl:value-of select="."/> - <xsl:text> </xsl:text> - </xsl:for-each> - </xsl:variable> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </note> - </xsl:template> - - <xsl:template name="createNoteFrom541"> - <note type="acquisition"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="uri"/> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield[@code!='6' and @code!='8']"> - <xsl:value-of select="."/> - <xsl:text> </xsl:text> - </xsl:for-each> - </xsl:variable> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </note> - </xsl:template> - - <xsl:template name="createNoteFrom545"> - <note type="biographical/historical"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="uri"/> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield[@code!='6' and @code!='8']"> - <xsl:value-of select="."/> - <xsl:text> </xsl:text> - </xsl:for-each> - </xsl:variable> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </note> - </xsl:template> - - <xsl:template name="createNoteFrom546"> - <note type="language"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="uri"/> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield[@code!='6' and @code!='8']"> - <xsl:value-of select="."/> - <xsl:text> </xsl:text> - </xsl:for-each> - </xsl:variable> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </note> - </xsl:template> - - <xsl:template name="createNoteFrom561"> - <note type="ownership"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="uri"/> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield[@code!='6' and @code!='8']"> - <xsl:value-of select="."/> - <xsl:text> </xsl:text> - </xsl:for-each> - </xsl:variable> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </note> - </xsl:template> - - <xsl:template name="createNoteFrom562"> - <note type="version identification"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="uri"/> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield[@code!='6' and @code!='8']"> - <xsl:value-of select="."/> - <xsl:text> </xsl:text> - </xsl:for-each> - </xsl:variable> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </note> - </xsl:template> - - <xsl:template name="createNoteFrom581"> - <note type="publications"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="uri"/> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield[@code!='6' and @code!='8']"> - <xsl:value-of select="."/> - <xsl:text> </xsl:text> - </xsl:for-each> - </xsl:variable> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </note> - </xsl:template> - - <xsl:template name="createNoteFrom583"> - <note type="action"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="uri"/> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield[@code!='6' and @code!='8']"> - <xsl:value-of select="."/> - <xsl:text> </xsl:text> - </xsl:for-each> - </xsl:variable> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </note> - </xsl:template> - - <xsl:template name="createNoteFrom585"> - <note type="exhibitions"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="uri"/> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield[@code!='6' and @code!='8']"> - <xsl:value-of select="."/> - <xsl:text> </xsl:text> - </xsl:for-each> - </xsl:variable> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </note> - </xsl:template> - - <xsl:template name="createNoteFrom5XX"> - <note> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="uri"/> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield[@code!='6' and @code!='8']"> - <xsl:value-of select="."/> - <xsl:text> </xsl:text> - </xsl:for-each> - </xsl:variable> - <xsl:value-of select="substring($str,1,string-length($str)-1)"/> - </note> - </xsl:template> - - <!-- subject Geo 034 043 045 255 656 662 752 --> - - <xsl:template name="createSubGeoFrom034"> - <xsl:if test="marc:datafield[@tag=034][marc:subfield[@code='d' or @code='e' or @code='f' or @code='g']]"> - <subject> - <xsl:call-template name="xxx880"/> - <cartographics> - <coordinates> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">defg</xsl:with-param> - </xsl:call-template> - </coordinates> - </cartographics> - </subject> - </xsl:if> - </xsl:template> - - <xsl:template name="createSubGeoFrom043"> - <subject> - <xsl:call-template name="xxx880"/> - <xsl:for-each select="marc:subfield[@code='a' or @code='b' or @code='c']"> - <geographicCode> - <xsl:attribute name="authority"> - <xsl:if test="@code='a'"> - <xsl:text>marcgac</xsl:text> - </xsl:if> - <xsl:if test="@code='b'"> - <xsl:value-of select="following-sibling::marc:subfield[@code=2]"/> - </xsl:if> - <xsl:if test="@code='c'"> - <xsl:text>iso3166</xsl:text> - </xsl:if> - </xsl:attribute> - <xsl:value-of select="self::marc:subfield"/> - </geographicCode> - </xsl:for-each> - </subject> - </xsl:template> - - <xsl:template name="createSubGeoFrom255"> - <subject> - <xsl:call-template name="xxx880"/> - <cartographics> - <xsl:for-each select="marc:subfield[@code='a' or @code='b' or @code='c']"> - <xsl:if test="@code='a'"> - <scale> - <xsl:value-of select="."/> - </scale> - </xsl:if> - <xsl:if test="@code='b'"> - <projection> - <xsl:value-of select="."/> - </projection> - </xsl:if> - <xsl:if test="@code='c'"> - <coordinates> - <xsl:value-of select="."/> - </coordinates> - </xsl:if> - </xsl:for-each> - </cartographics> - </subject> - </xsl:template> - - <xsl:template name="createSubNameFrom600"> - <subject> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="subjectAuthority"/> - <name type="personal"> - <namePart> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">aq</xsl:with-param> - </xsl:call-template> - </xsl:with-param> - </xsl:call-template> - </namePart> - <xsl:call-template name="termsOfAddress"/> - <xsl:call-template name="nameDate"/> - <xsl:call-template name="affiliation"/> - <xsl:call-template name="role"/> - </name> - <xsl:if test="marc:subfield[@code='t']"> - <titleInfo> - <title> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">t</xsl:with-param> - </xsl:call-template> - </xsl:with-param> - </xsl:call-template> - </title> - <xsl:call-template name="part"/> - </titleInfo> - </xsl:if> - <xsl:call-template name="subjectAnyOrder"/> - </subject> - </xsl:template> - - <xsl:template name="createSubNameFrom610"> - <subject> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="subjectAuthority"/> - <name type="corporate"> - <xsl:for-each select="marc:subfield[@code='a']"> - <namePart> - <xsl:value-of select="."/> - </namePart> - </xsl:for-each> - <xsl:for-each select="marc:subfield[@code='b']"> - <namePart> - <xsl:value-of select="."/> - </namePart> - </xsl:for-each> - <xsl:if test="marc:subfield[@code='c' or @code='d' or @code='n' or @code='p']"> - <namePart> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">cdnp</xsl:with-param> - </xsl:call-template> - </namePart> - </xsl:if> - <xsl:call-template name="role"/> - </name> - <xsl:if test="marc:subfield[@code='t']"> - <titleInfo> - <title> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">t</xsl:with-param> - </xsl:call-template> - </xsl:with-param> - </xsl:call-template> - </title> - <xsl:call-template name="part"/> - </titleInfo> - </xsl:if> - <xsl:call-template name="subjectAnyOrder"/> - </subject> - </xsl:template> - - <xsl:template name="createSubNameFrom611"> - <subject> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="subjectAuthority"/> - <name type="conference"> - <namePart> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">abcdeqnp</xsl:with-param> - </xsl:call-template> - </namePart> - <xsl:for-each select="marc:subfield[@code='4']"> - <role> - <roleTerm authority="marcrelator" type="code"> - <xsl:value-of select="."/> - </roleTerm> - </role> - </xsl:for-each> - </name> - <xsl:if test="marc:subfield[@code='t']"> - <titleInfo> - <title> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">tpn</xsl:with-param> - </xsl:call-template> - </xsl:with-param> - </xsl:call-template> - </title> - <xsl:call-template name="part"/> - </titleInfo> - </xsl:if> - <xsl:call-template name="subjectAnyOrder"/> - </subject> - </xsl:template> - - <xsl:template name="createSubTitleFrom630"> - <subject> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="subjectAuthority"/> - <titleInfo> - <title> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">adfhklor</xsl:with-param> - </xsl:call-template> - </xsl:with-param> - </xsl:call-template> - </title> - <xsl:call-template name="part"/> - </titleInfo> - <xsl:call-template name="subjectAnyOrder"/> - </subject> - </xsl:template> - - <xsl:template name="createSubChronFrom648"> - <subject> - <xsl:call-template name="xxx880"/> - <xsl:if test="marc:subfield[@code=2]"> - <xsl:attribute name="authority"> - <xsl:value-of select="marc:subfield[@code=2]"/> - </xsl:attribute> - </xsl:if> - <xsl:call-template name="uri"/> - <xsl:call-template name="subjectAuthority"/> - <temporal> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">abcd</xsl:with-param> - </xsl:call-template> - </xsl:with-param> - </xsl:call-template> - </temporal> - <xsl:call-template name="subjectAnyOrder"/> - </subject> - </xsl:template> - - <xsl:template name="createSubTopFrom650"> - <subject> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="subjectAuthority"/> - <topic> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">abcd</xsl:with-param> - </xsl:call-template> - </xsl:with-param> - </xsl:call-template> - </topic> - <xsl:call-template name="subjectAnyOrder"/> - </subject> - </xsl:template> - - <xsl:template name="createSubGeoFrom651"> - <subject> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="subjectAuthority"/> - <xsl:for-each select="marc:subfield[@code='a']"> - <geographic> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString" select="."/> - </xsl:call-template> - </geographic> - </xsl:for-each> - <xsl:call-template name="subjectAnyOrder"/> - </subject> - </xsl:template> - - <xsl:template name="createSubFrom653"> - - <xsl:if test="@ind2=' '"> - <subject> - <topic> - <xsl:value-of select="."/> - </topic> - </subject> - </xsl:if> - <xsl:if test="@ind2='0'"> - <subject> - <topic> - <xsl:value-of select="."/> - </topic> - </subject> - </xsl:if> -<!-- tmee 1.93 20140130 --> - <xsl:if test="@ind=' ' or @ind1='0' or @ind1='1'"> - <subject> - <name type="personal"> - <namePart> - <xsl:value-of select="."/> - </namePart> - </name> - </subject> - </xsl:if> - <xsl:if test="@ind1='3'"> - <subject> - <name type="family"> - <namePart> - <xsl:value-of select="."/> - </namePart> - </name> - </subject> - </xsl:if> - <xsl:if test="@ind2='2'"> - <subject> - <name type="corporate"> - <namePart> - <xsl:value-of select="."/> - </namePart> - </name> - </subject> - </xsl:if> - <xsl:if test="@ind2='3'"> - <subject> - <name type="conference"> - <namePart> - <xsl:value-of select="."/> - </namePart> - </name> - </subject> - </xsl:if> - <xsl:if test="@ind2=4"> - <subject> - <temporal> - <xsl:value-of select="."/> - </temporal> - </subject> - </xsl:if> - <xsl:if test="@ind2=5"> - <subject> - <geographic> - <xsl:value-of select="."/> - </geographic> - </subject> - </xsl:if> - - <xsl:if test="@ind2=6"> - <subject> - <genre> - <xsl:value-of select="."/> - </genre> - </subject> - </xsl:if> - </xsl:template> - - <xsl:template name="createSubFrom656"> - <subject> - <xsl:call-template name="xxx880"/> - <xsl:if test="marc:subfield[@code=2]"> - <xsl:attribute name="authority"> - <xsl:value-of select="marc:subfield[@code=2]"/> - </xsl:attribute> - </xsl:if> - <occupation> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:value-of select="marc:subfield[@code='a']"/> - </xsl:with-param> - </xsl:call-template> - </occupation> - </subject> - </xsl:template> - - <xsl:template name="createSubGeoFrom662752"> - <subject> - <xsl:call-template name="xxx880"/> - <hierarchicalGeographic> - <!-- 1.113 --> - <xsl:if test="marc:subfield[@code='0']"> - <xsl:attribute name="valueURI"><xsl:value-of select="marc:subfield[@code='0']"/></xsl:attribute> - </xsl:if> - <xsl:for-each select="marc:subfield[@code='a']"> - <country> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString" select="."/> - </xsl:call-template> - </country> - </xsl:for-each> - <xsl:for-each select="marc:subfield[@code='b']"> - <state> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString" select="."/> - </xsl:call-template> - </state> - </xsl:for-each> - <xsl:for-each select="marc:subfield[@code='c']"> - <county> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString" select="."/> - </xsl:call-template> - </county> - </xsl:for-each> - <xsl:for-each select="marc:subfield[@code='d']"> - <city> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString" select="."/> - </xsl:call-template> - </city> - </xsl:for-each> - <xsl:for-each select="marc:subfield[@code='e']"> - <citySection> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString" select="."/> - </xsl:call-template> - </citySection> - </xsl:for-each> - <xsl:for-each select="marc:subfield[@code='g']"> - <area> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString" select="."/> - </xsl:call-template> - </area> - </xsl:for-each> - <xsl:for-each select="marc:subfield[@code='h']"> - <extraterrestrialArea> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString" select="."/> - </xsl:call-template> - </extraterrestrialArea> - </xsl:for-each> - </hierarchicalGeographic> - </subject> - </xsl:template> - - <xsl:template name="createSubTemFrom045"> - <xsl:if test="//marc:datafield[@tag=045 and @ind1='2'][marc:subfield[@code='b' or @code='c']]"> - <subject> - <xsl:call-template name="xxx880"/> - <temporal encoding="iso8601" point="start"> - <xsl:call-template name="dates045b"> - <xsl:with-param name="str" select="marc:subfield[@code='b' or @code='c'][1]"/> - </xsl:call-template> - </temporal> - <temporal encoding="iso8601" point="end"> - <xsl:call-template name="dates045b"> - <xsl:with-param name="str" select="marc:subfield[@code='b' or @code='c'][2]"/> - </xsl:call-template> - </temporal> - </subject> - </xsl:if> - </xsl:template> - - <!-- classification 050 060 080 082 084 086 --> - - <xsl:template name="createClassificationFrom050"> - <xsl:for-each select="marc:subfield[@code='b']"> - <classification authority="lcc"> - <xsl:call-template name="xxx880"/> - <xsl:if test="../marc:subfield[@code='3']"> - <xsl:attribute name="displayLabel"> - <xsl:value-of select="../marc:subfield[@code='3']"/> - </xsl:attribute> - </xsl:if> - <xsl:value-of select="preceding-sibling::marc:subfield[@code='a'][1]"/> - <xsl:text> </xsl:text> - <xsl:value-of select="text()"/> - </classification> - </xsl:for-each> - <xsl:for-each select="marc:subfield[@code='a'][not(following-sibling::marc:subfield[@code='b'])]"> - <classification authority="lcc"> - <xsl:call-template name="xxx880"/> - <xsl:if test="../marc:subfield[@code='3']"> - <xsl:attribute name="displayLabel"> - <xsl:value-of select="../marc:subfield[@code='3']"/> - </xsl:attribute> - </xsl:if> - <xsl:value-of select="text()"/> - </classification> - </xsl:for-each> - </xsl:template> - <xsl:template name="createClassificationFrom060"> - <classification authority="nlm"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">ab</xsl:with-param> - </xsl:call-template> - </classification> - </xsl:template> - <xsl:template name="createClassificationFrom080"> - <classification authority="udc"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">abx</xsl:with-param> - </xsl:call-template> - </classification> - </xsl:template> - <xsl:template name="createClassificationFrom082"> - <classification authority="ddc"> - <xsl:call-template name="xxx880"/> - <xsl:if test="marc:subfield[@code='2']"> - <xsl:attribute name="edition"> - <xsl:value-of select="marc:subfield[@code='2']"/> - </xsl:attribute> - </xsl:if> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">ab</xsl:with-param> - </xsl:call-template> - </classification> - </xsl:template> - <xsl:template name="createClassificationFrom084"> - <classification> - <xsl:attribute name="authority"> - <xsl:value-of select="marc:subfield[@code='2']"/> - </xsl:attribute> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">ab</xsl:with-param> - </xsl:call-template> - </classification> - </xsl:template> - <xsl:template name="createClassificationFrom086"> - <xsl:for-each select="marc:datafield[@tag=086][@ind1=0]"> - <classification authority="sudocs"> - <xsl:call-template name="xxx880"/> - <xsl:value-of select="marc:subfield[@code='a']"/> - </classification> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=086][@ind1=1]"> - <classification authority="candoc"> - <xsl:call-template name="xxx880"/> - <xsl:value-of select="marc:subfield[@code='a']"/> - </classification> - </xsl:for-each> - <xsl:for-each select="marc:datafield[@tag=086][@ind1!=1 and @ind1!=0]"> - <classification> - <xsl:call-template name="xxx880"/> - <xsl:attribute name="authority"> - <xsl:value-of select="marc:subfield[@code='2']"/> - </xsl:attribute> - <xsl:value-of select="marc:subfield[@code='a']"/> - </classification> - </xsl:for-each> - </xsl:template> - - <!-- identifier 020 024 022 028 010 037 UNDO Nov 23 2010 RG SM--> - - <!-- createRelatedItemFrom490 <xsl:for-each select="marc:datafield[@tag=490][@ind1=0]"> --> - - <xsl:template name="createRelatedItemFrom490"> - <relatedItem type="series"> - <xsl:call-template name="xxx880"/> - <titleInfo> - <title> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString"> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">av</xsl:with-param> - </xsl:call-template> - </xsl:with-param> - </xsl:call-template> - </title> - <xsl:call-template name="part"/> - </titleInfo> - </relatedItem> - </xsl:template> - - - <!-- location 852 856 --> - - <xsl:template name="createLocationFrom852"> - <location> - <xsl:if test="marc:subfield[@code='a' or @code='b' or @code='e']"> - <physicalLocation> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">abe</xsl:with-param> - </xsl:call-template> - </physicalLocation> - </xsl:if> - <xsl:if test="marc:subfield[@code='u']"> - <physicalLocation> - <xsl:call-template name="uri"/> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">u</xsl:with-param> - </xsl:call-template> - </physicalLocation> - </xsl:if> - <!-- 1.78 --> - <xsl:if test="marc:subfield[@code='h' or @code='i' or @code='j' or @code='k' or @code='l' or @code='m' or @code='t']"> - <shelfLocator> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">hijklmt</xsl:with-param> - </xsl:call-template> - </shelfLocator> - </xsl:if> - <!-- 1.114 --> - <xsl:if test="marc:subfield[@code='p' or @code='t']"> - <holdingSimple> - <copyInformation> - <xsl:for-each select="marc:subfield[@code='p']|marc:subfield[@code='t']"> - <itemIdentifier> - <xsl:if test="@code='t'"> - <xsl:attribute name="type"><xsl:text>copy number</xsl:text></xsl:attribute> - </xsl:if> - <xsl:apply-templates select="."/> - </itemIdentifier> - </xsl:for-each> - </copyInformation> - </holdingSimple> - </xsl:if> - </location> - </xsl:template> - - <xsl:template name="createLocationFrom856"> - <xsl:if test="//marc:datafield[@tag=856][@ind2!=2][marc:subfield[@code='u']]"> - <location> - <url displayLabel="electronic resource"> - <!-- 1.41 tmee AQ1.9 added choice protocol for @usage="primary display" --> - <xsl:variable name="primary"> - <xsl:choose> - <xsl:when test="@ind2=0 and count(preceding-sibling::marc:datafield[@tag=856] [@ind2=0])=0">true</xsl:when> - - <xsl:when test="@ind2=1 and count(ancestor::marc:record//marc:datafield[@tag=856][@ind2=0])=0 and count(preceding-sibling::marc:datafield[@tag=856][@ind2=1])=0">true</xsl:when> - - <xsl:when test="@ind2!=1 and @ind2!=0 and @ind2!=2 and count(ancestor::marc:record//marc:datafield[@tag=856 and @ind2=0])=0 and count(ancestor::marc:record//marc:datafield[@tag=856 and @ind2=1])=0 and count(preceding-sibling::marc:datafield[@tag=856][@ind2])=0">true</xsl:when> - <xsl:otherwise>false</xsl:otherwise> - </xsl:choose> - </xsl:variable> - <xsl:if test="$primary='true'"> - <xsl:attribute name="usage">primary display</xsl:attribute> - </xsl:if> - - <xsl:if test="marc:subfield[@code='y' or @code='3']"> - <xsl:attribute name="displayLabel"> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">y3</xsl:with-param> - </xsl:call-template> - </xsl:attribute> - </xsl:if> - <xsl:if test="marc:subfield[@code='z']"> - <xsl:attribute name="note"> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">z</xsl:with-param> - </xsl:call-template> - </xsl:attribute> - </xsl:if> - <xsl:value-of select="marc:subfield[@code='u']"/> - </url> - </location> - </xsl:if> - </xsl:template> - - <!-- accessCondition 506 540 1.87 20130829--> - - <xsl:template name="createAccessConditionFrom506"> - <accessCondition type="restriction on access"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">abcd35</xsl:with-param> - </xsl:call-template> - </accessCondition> - </xsl:template> - - <xsl:template name="createAccessConditionFrom540"> - <accessCondition type="use and reproduction"> - <xsl:call-template name="xxx880"/> - <xsl:call-template name="subfieldSelect"> - <xsl:with-param name="codes">abcde35</xsl:with-param> - </xsl:call-template> - </accessCondition> - </xsl:template> - - <!-- recordInfo 040 005 001 003 --> - - <!-- 880 global copy template --> - <xsl:template match="* | @*" mode="global_copy"> - <xsl:copy> - <xsl:apply-templates select="* | @* | text()" mode="global_copy"/> - </xsl:copy> - </xsl:template> - -</xsl:stylesheet><!-- Stylus Studio meta-information - (c) 2004-2005. Progress Software Corporation. All rights reserved. -<metaInformation> -<scenarios/><MapperMetaTag><MapperInfo srcSchemaPathIsRelative="yes" srcSchemaInterpretAsXML="no" destSchemaPath="" destSchemaRoot="" destSchemaPathIsRelative="yes" destSchemaInterpretAsXML="no"/><MapperBlockPosition></MapperBlockPosition><TemplateContext></TemplateContext></MapperMetaTag> -</metaInformation> ---> \ No newline at end of file diff --git a/xsl/MARC21slimUtils.xsl b/xsl/MARC21slimUtils.xsl deleted file mode 100644 index 8a0cd2d1d2c44fbd5c9d781ec31ead51ddf99fe5..0000000000000000000000000000000000000000 --- a/xsl/MARC21slimUtils.xsl +++ /dev/null @@ -1,188 +0,0 @@ -<?xml version='1.0'?> -<xsl:stylesheet version="1.0" xmlns:marc="http://www.loc.gov/MARC21/slim" - xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> - - <!-- 08/08/08: tmee added corrected chopPunctuation templates for 260c --> - <!-- 08/19/04: ntra added "marc:" prefix to datafield element --> - <!-- 12/14/07: ntra added url encoding template --> - <!-- url encoding --> - - <xsl:variable name="ascii"> - <xsl:text> !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~</xsl:text> - </xsl:variable> - - <xsl:variable name="latin1"> - <xsl:text> ¡¢£¤¥¦§¨©ª«¬Â®¯°±²³´µ¶·¸¹º»¼½¾¿ÃÃÃÃÃà ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃà áâãäåæçèéêëìÃîïðñòóôõö÷øùúûüýþÿ</xsl:text> - </xsl:variable> - <!-- Characters that usually don't need to be escaped --> - <xsl:variable name="safe"> - <xsl:text>!'()*-.0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz~</xsl:text> - </xsl:variable> - - <xsl:variable name="hex">0123456789ABCDEF</xsl:variable> - - - <xsl:template name="datafield"> - <xsl:param name="tag"/> - <xsl:param name="ind1"> - <xsl:text> </xsl:text> - </xsl:param> - <xsl:param name="ind2"> - <xsl:text> </xsl:text> - </xsl:param> - <xsl:param name="subfields"/> - <xsl:element name="marc:datafield"> - <xsl:attribute name="tag"> - <xsl:value-of select="$tag"/> - </xsl:attribute> - <xsl:attribute name="ind1"> - <xsl:value-of select="$ind1"/> - </xsl:attribute> - <xsl:attribute name="ind2"> - <xsl:value-of select="$ind2"/> - </xsl:attribute> - <xsl:copy-of select="$subfields"/> - </xsl:element> - </xsl:template> - - <xsl:template name="subfieldSelect"> - <xsl:param name="codes">abcdefghijklmnopqrstuvwxyz</xsl:param> - <xsl:param name="delimeter"> - <xsl:text> </xsl:text> - </xsl:param> - <xsl:variable name="str"> - <xsl:for-each select="marc:subfield"> - <xsl:if test="contains($codes, @code)"> - <xsl:value-of select="text()"/> - <xsl:value-of select="$delimeter"/> - </xsl:if> - </xsl:for-each> - </xsl:variable> - <xsl:value-of select="substring($str,1,string-length($str)-string-length($delimeter))"/> - </xsl:template> - - <xsl:template name="buildSpaces"> - <xsl:param name="spaces"/> - <xsl:param name="char"> - <xsl:text> </xsl:text> - </xsl:param> - <xsl:if test="$spaces>0"> - <xsl:value-of select="$char"/> - <xsl:call-template name="buildSpaces"> - <xsl:with-param name="spaces" select="$spaces - 1"/> - <xsl:with-param name="char" select="$char"/> - </xsl:call-template> - </xsl:if> - </xsl:template> - - <xsl:template name="chopPunctuation"> - <xsl:param name="chopString"/> - <xsl:param name="punctuation"> - <xsl:text>.:,;/ </xsl:text> - </xsl:param> - <xsl:variable name="length" select="string-length($chopString)"/> - <xsl:choose> - <xsl:when test="$length=0"/> - <xsl:when test="contains($punctuation, substring($chopString,$length,1))"> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString" select="substring($chopString,1,$length - 1)"/> - <xsl:with-param name="punctuation" select="$punctuation"/> - </xsl:call-template> - </xsl:when> - <xsl:when test="not($chopString)"/> - <xsl:otherwise> - <xsl:value-of select="$chopString"/> - </xsl:otherwise> - </xsl:choose> - </xsl:template> - - <xsl:template name="chopPunctuationFront"> - <xsl:param name="chopString"/> - <xsl:variable name="length" select="string-length($chopString)"/> - <xsl:choose> - <xsl:when test="$length=0"/> - <xsl:when test="contains('.:,;/[ ', substring($chopString,1,1))"> - <xsl:call-template name="chopPunctuationFront"> - <xsl:with-param name="chopString" select="substring($chopString,2,$length - 1)" - /> - </xsl:call-template> - </xsl:when> - <xsl:when test="not($chopString)"/> - <xsl:otherwise> - <xsl:value-of select="$chopString"/> - </xsl:otherwise> - </xsl:choose> - </xsl:template> - - <xsl:template name="chopPunctuationBack"> - <xsl:param name="chopString"/> - <xsl:param name="punctuation"> - <xsl:text>.:,;/] </xsl:text> - </xsl:param> - <xsl:variable name="length" select="string-length($chopString)"/> - <xsl:choose> - <xsl:when test="$length=0"/> - <xsl:when test="contains($punctuation, substring($chopString,$length,1))"> - <xsl:call-template name="chopPunctuation"> - <xsl:with-param name="chopString" select="substring($chopString,1,$length - 1)"/> - <xsl:with-param name="punctuation" select="$punctuation"/> - </xsl:call-template> - </xsl:when> - <xsl:when test="not($chopString)"/> - <xsl:otherwise> - <xsl:value-of select="$chopString"/> - </xsl:otherwise> - </xsl:choose> - </xsl:template> - - <!-- nate added 12/14/2007 for lccn.loc.gov: url encode ampersand, etc. --> - <xsl:template name="url-encode"> - - <xsl:param name="str"/> - - <xsl:if test="$str"> - <xsl:variable name="first-char" select="substring($str,1,1)"/> - <xsl:choose> - <xsl:when test="contains($safe,$first-char)"> - <xsl:value-of select="$first-char"/> - </xsl:when> - <xsl:otherwise> - <xsl:variable name="codepoint"> - <xsl:choose> - <xsl:when test="contains($ascii,$first-char)"> - <xsl:value-of - select="string-length(substring-before($ascii,$first-char)) + 32" - /> - </xsl:when> - <xsl:when test="contains($latin1,$first-char)"> - <xsl:value-of - select="string-length(substring-before($latin1,$first-char)) + 160"/> - <!-- was 160 --> - </xsl:when> - <xsl:otherwise> - <xsl:message terminate="no">Warning: string contains a character - that is out of range! Substituting "?".</xsl:message> - <xsl:text>63</xsl:text> - </xsl:otherwise> - </xsl:choose> - </xsl:variable> - <xsl:variable name="hex-digit1" - select="substring($hex,floor($codepoint div 16) + 1,1)"/> - <xsl:variable name="hex-digit2" select="substring($hex,$codepoint mod 16 + 1,1)"/> - <!-- <xsl:value-of select="concat('%',$hex-digit2)"/> --> - <xsl:value-of select="concat('%',$hex-digit1,$hex-digit2)"/> - </xsl:otherwise> - </xsl:choose> - <xsl:if test="string-length($str) > 1"> - <xsl:call-template name="url-encode"> - <xsl:with-param name="str" select="substring($str,2)"/> - </xsl:call-template> - </xsl:if> - </xsl:if> - </xsl:template> -</xsl:stylesheet> -<!-- Stylus Studio meta-information - (c)1998-2002 eXcelon Corp. -<metaInformation> -<scenarios/><MapperInfo srcSchemaPath="" srcSchemaRoot="" srcSchemaPathIsRelative="yes" srcSchemaInterpretAsXML="no" destSchemaPath="" destSchemaRoot="" destSchemaPathIsRelative="yes" destSchemaInterpretAsXML="no"/> -</metaInformation> --->