Created
March 7, 2014 09:32
-
-
Save mjlassila/0692f11ace4e5258e955 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import module namespace functx="http://www.functx.com"; | |
declare option output:indent "no"; | |
declare option output:item-separator "\n"; | |
declare option output:method "text"; | |
(: Käydään dumppi läpi tietue kerrallaan:) | |
for $record in /OAI-PMH/ListRecords/record/metadata/record | |
(: Muuttujaan talteen kaikki tietueen kentän 593 arvot.:) | |
(: On otettava huomioon, että 593-kenttiä voi olla useampi :) | |
(: Kentässä kurssikoodeja voi olla useita, pilkulla erotettuna :) | |
let $raw_course_codes:=$record/datafield[@tag="593"]/subfield[@code='a'] | |
(: :) | |
(: Pilkotaan potentiaaliset kurssikoodit.:) | |
(: On otettava huomioon, että kenttään on voitu tallettaa:) | |
(: myös jotain muuta kuin kurssikoodeja:) | |
let $course_codes:= | |
for $raw_course_code in $raw_course_codes | |
let $codes:=tokenize($raw_course_code, ', ') | |
return $codes | |
(: Käydään läpi koodit ja suodatetaan pois tapaukset :) | |
(: jotka eivät todennäköisseti ole kurssikoodeja, l. ovat :) | |
(: yli kymmenen merkkiä pitkiä. Erotetaan kurssikoodeista vuodet:) | |
let $years:= | |
for $course_code in $course_codes | |
where string-length($course_code) <=10 | |
let $year:=functx:reverse-string(substring(functx:reverse-string($course_code), 1,2)) | |
return $year | |
(: Otetaan muuttujaan talteen 2013 tai aiemmat vuodet:) | |
let $years_to_include:= | |
for $year in $years | |
return | |
if (xs:int($year) <=13) then | |
$year | |
else() | |
return | |
(: Mikäli muuttujaan on tallennettu vuosia, kyseessä on :) | |
(: teos jossa on vanhempi kuin 2013 vuoden kurssikoodi :) | |
(: Palautetaan teoksen BIBID.:) | |
if (count($years_to_include) > 0) then | |
data($record/controlfield[@tag="001"]) | |
else() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment