Bug 7421: support indexing UNIMARC authority records using the DOM Filter

I took as a base the patch of F. Demians, but made a lot of changes,
so I think it is more logical to create a new patch as the behavior is
not the same as previous patch.

I tried to define DOM config files as a "miror" of record.abs, so the
behavior be the same.

If it is OK, we will be able to improve indexing later, for example
suppressing warns, managing indicators or subdivisions, etc.

I made some little changes to record.abs :
- comments
- 216 was indexed in Conference-name as well as Trademark. I suppose
  that "Conference-name" is an error, so I indexed only in Trademark
- index 2 new notes : 340 / 356

The only difference between record.abs and DOM is that DOM config files
does not index complete fields, but subfields.

Ex :
melm 200 ===> <kohaidx:index_subfields tag="200" subfields="abcdfgjxyz">
I took all the subfields from the UNIMARC Authorities manual. The only
subfields not indexed are numeric subfields : $7, $8 for language of
record, and $0,2,3,5,6 for 4XX/5XX/7XX

To test :
- index a set of bib and auth records with GRS-1
- make some searches on different kind of authorities
- index the same records with DOM
- make the same searches
- You are not supposed to see differences

Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
As I am not a UNIMARC user it's hard for me to test this, but
while testing other authority related patches I noticed that I couldn't
index the UNIMARC authorities of the sample base. The files are obviously
missing and reindex_zebra.pl notes this. With this patch applied,
indexing works and authorities are searchable in my installation.

Signed-off-by: Vitor Fernandes <fvernandes@keep.pt>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
This commit is contained in:
Mathieu Saby 2012-01-09 08:58:20 +01:00 committed by Galen Charlton
parent 521e599dd8
commit 4d8b1ec786
3 changed files with 1401 additions and 22 deletions

View file

@ -0,0 +1,683 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- This is the canonical source for the authority DOM indexing configuration
for UNIMARC.. To generate the authority-zebra-indexdefs.xsl file that Zebra uses,
run the following command:
`xsltproc koha-indexdefs-to-zebra.xsl authority-koha-indexdefs.xml >
authority-zebra-indexdefs.xsl`
-->
<kohaidx:index_defs xmlns:kohaidx="http://www.koha-community.org/schemas/index-defs">
<id>marc:controlfield[@tag='001']</id>
<!-- Original record ID -->
<kohaidx:index_control_field tag="001">
<kohaidx:target_index>Local-Number:w</kohaidx:target_index>
<kohaidx:target_index>Local-Number:s</kohaidx:target_index>
<kohaidx:target_index>Local-Number:n</kohaidx:target_index>
</kohaidx:index_control_field>
<!-- Personal name headings -->
<kohaidx:index_subfields tag="200" subfields="abcdfgjxyz">
<kohaidx:target_index>Personal-name:w</kohaidx:target_index>
<kohaidx:target_index>Personal-name:p</kohaidx:target_index>
<kohaidx:target_index>Heading:w</kohaidx:target_index>
<kohaidx:target_index>Heading:p</kohaidx:target_index>
<kohaidx:target_index>Match:w</kohaidx:target_index>
<kohaidx:target_index>Match:p</kohaidx:target_index>
<kohaidx:target_index>Match-heading:w</kohaidx:target_index>
<kohaidx:target_index>Match-heading:p</kohaidx:target_index>
</kohaidx:index_subfields>
<kohaidx:index_subfields tag="200" subfields="a">
<kohaidx:target_index>Heading:s</kohaidx:target_index>
<kohaidx:target_index>Heading-Main:w</kohaidx:target_index>
<kohaidx:target_index>Heading-Main:p</kohaidx:target_index>
<kohaidx:target_index>Heading-Main:s</kohaidx:target_index>
<kohaidx:target_index>Personal-name-heading:w</kohaidx:target_index>
<kohaidx:target_index>Personal-name-heading:p</kohaidx:target_index>
<kohaidx:target_index>Personal-name-heading:s</kohaidx:target_index>
</kohaidx:index_subfields>
<kohaidx:index_subfields tag="400" subfields="abcdfgjxyz">
<kohaidx:target_index>Personal-name-see:w</kohaidx:target_index>
<kohaidx:target_index>Personal-name-see:p</kohaidx:target_index>
<kohaidx:target_index>See:w</kohaidx:target_index>
<kohaidx:target_index>See:p</kohaidx:target_index>
<kohaidx:target_index>Match:w</kohaidx:target_index>
<kohaidx:target_index>Match:p</kohaidx:target_index>
<kohaidx:target_index>Match-heading-see-form:w</kohaidx:target_index>
<kohaidx:target_index>Match-heading-see-form:p</kohaidx:target_index>
</kohaidx:index_subfields>
<kohaidx:index_subfields tag="500" subfields="abcdfgjxyz">
<kohaidx:target_index>Personal-name-see-also:w</kohaidx:target_index>
<kohaidx:target_index>Personal-name-see-also:p</kohaidx:target_index>
<kohaidx:target_index>See-also:w</kohaidx:target_index>
<kohaidx:target_index>See-also:p</kohaidx:target_index>
<kohaidx:target_index>Match:w</kohaidx:target_index>
<kohaidx:target_index>Match:p</kohaidx:target_index>
</kohaidx:index_subfields>
<kohaidx:index_subfields tag="700" subfields="a">
<kohaidx:target_index>Personal-name-parallel:w</kohaidx:target_index>
<kohaidx:target_index>Personal-name-parallel:s</kohaidx:target_index>
<kohaidx:target_index>Parallel:w</kohaidx:target_index>
<kohaidx:target_index>Parallel:p</kohaidx:target_index>
<kohaidx:target_index>Match:w</kohaidx:target_index>
<kohaidx:target_index>Match:p</kohaidx:target_index>
</kohaidx:index_subfields>
<!-- Corporate name headings -->
<kohaidx:index_subfields tag="210" subfields="abcdefgjxyz">
<kohaidx:target_index>Corporate-name:w</kohaidx:target_index>
<kohaidx:target_index>Corporate-name:p</kohaidx:target_index>
<kohaidx:target_index>Conference-name:w</kohaidx:target_index>
<kohaidx:target_index>Conference-name:p</kohaidx:target_index>
<kohaidx:target_index>Heading:w</kohaidx:target_index>
<kohaidx:target_index>Heading:p</kohaidx:target_index>
<kohaidx:target_index>Match:w</kohaidx:target_index>
<kohaidx:target_index>Match:p</kohaidx:target_index>
<kohaidx:target_index>Match-heading:w</kohaidx:target_index>
<kohaidx:target_index>Match-heading:p</kohaidx:target_index>
</kohaidx:index_subfields>
<kohaidx:index_subfields tag="210" subfields="a">
<kohaidx:target_index>Heading:s</kohaidx:target_index>
<kohaidx:target_index>Heading-Main:w</kohaidx:target_index>
<kohaidx:target_index>Heading-Main:p</kohaidx:target_index>
<kohaidx:target_index>Heading-Main:s</kohaidx:target_index>
<kohaidx:target_index>Corporate-name-heading:w</kohaidx:target_index>
<kohaidx:target_index>Corporate-name-heading:p</kohaidx:target_index>
<kohaidx:target_index>Corporate-name-heading:s</kohaidx:target_index>
<kohaidx:target_index>Conference-name-heading:w</kohaidx:target_index>
<kohaidx:target_index>Conference-name-heading:p</kohaidx:target_index>
<kohaidx:target_index>Conference-name-heading:s</kohaidx:target_index>
</kohaidx:index_subfields>
<kohaidx:index_subfields tag="410" subfields="abcdefgjxyz">
<kohaidx:target_index>Corporate-name-see:w</kohaidx:target_index>
<kohaidx:target_index>Corporate-name-see:p</kohaidx:target_index>
<kohaidx:target_index>Conference-name-see:w</kohaidx:target_index>
<kohaidx:target_index>Conference-name-see:p</kohaidx:target_index>
<kohaidx:target_index>See:w</kohaidx:target_index>
<kohaidx:target_index>See:p</kohaidx:target_index>
<kohaidx:target_index>Match:w</kohaidx:target_index>
<kohaidx:target_index>Match:p</kohaidx:target_index>
<kohaidx:target_index>Match-heading-see-form:w</kohaidx:target_index>
<kohaidx:target_index>Match-heading-see-form:p</kohaidx:target_index>
</kohaidx:index_subfields>
<kohaidx:index_subfields tag="510" subfields="abcdefgjxyz">
<kohaidx:target_index>Corporate-name-see-also:w</kohaidx:target_index>
<kohaidx:target_index>Corporate-name-see-also:p</kohaidx:target_index>
<kohaidx:target_index>Conference-name-see-also:w</kohaidx:target_index>
<kohaidx:target_index>Conference-name-see-also:p</kohaidx:target_index>
<kohaidx:target_index>See-also:w</kohaidx:target_index>
<kohaidx:target_index>See-also:p</kohaidx:target_index>
<kohaidx:target_index>Match:w</kohaidx:target_index>
<kohaidx:target_index>Match:p</kohaidx:target_index>
</kohaidx:index_subfields>
<kohaidx:index_subfields tag="710" subfields="abcdefgjxyz">
<kohaidx:target_index>Corporate-name-parallel:w</kohaidx:target_index>
<kohaidx:target_index>Corporate-name-parallel:s</kohaidx:target_index>
<kohaidx:target_index>Conference-name-parallel:w</kohaidx:target_index>
<kohaidx:target_index>Conference-name-parallel:s</kohaidx:target_index>
<kohaidx:target_index>Parallel:w</kohaidx:target_index>
<kohaidx:target_index>Parallel:p</kohaidx:target_index>
<kohaidx:target_index>Match:w</kohaidx:target_index>
<kohaidx:target_index>Match:p</kohaidx:target_index>
</kohaidx:index_subfields>
<!-- Geographic name -->
<kohaidx:index_subfields tag="215" subfields="ajxyz">
<kohaidx:target_index>Name-geographic:w</kohaidx:target_index>
<kohaidx:target_index>Name-geographic:p</kohaidx:target_index>
<kohaidx:target_index>Name-geographic:s</kohaidx:target_index>
<kohaidx:target_index>Term-geographic:w</kohaidx:target_index>
<kohaidx:target_index>Term-geographic:p</kohaidx:target_index>
<kohaidx:target_index>Term-geographic:s</kohaidx:target_index>
<kohaidx:target_index>Heading:w</kohaidx:target_index>
<kohaidx:target_index>Heading:p</kohaidx:target_index>
<kohaidx:target_index>Heading:s</kohaidx:target_index>
<kohaidx:target_index>Match:w</kohaidx:target_index>
<kohaidx:target_index>Match:p</kohaidx:target_index>
<kohaidx:target_index>Match-heading:w</kohaidx:target_index>
<kohaidx:target_index>Match-heading:p</kohaidx:target_index>
</kohaidx:index_subfields>
<kohaidx:index_subfields tag="215" subfields="a">
<kohaidx:target_index>Heading-Main:w</kohaidx:target_index>
<kohaidx:target_index>Heading-Main:p</kohaidx:target_index>
<kohaidx:target_index>Heading-Main:s</kohaidx:target_index>
<kohaidx:target_index>Name-geographic-heading:w</kohaidx:target_index>
<kohaidx:target_index>Name-geographic-heading:p</kohaidx:target_index>
<kohaidx:target_index>Name-geographic-heading:s</kohaidx:target_index>
<kohaidx:target_index>Term-geographic-heading:w</kohaidx:target_index>
<kohaidx:target_index>Term-geographic-heading:p</kohaidx:target_index>
<kohaidx:target_index>Term-geographic-heading:s</kohaidx:target_index>
</kohaidx:index_subfields>
<kohaidx:index_subfields tag="415" subfields="ajxyz">
<kohaidx:target_index>Name-geographic-see:w</kohaidx:target_index>
<kohaidx:target_index>Name-geographic-see:p</kohaidx:target_index>
<kohaidx:target_index>Term-geographic-see:w</kohaidx:target_index>
<kohaidx:target_index>Term-geographic-see:p</kohaidx:target_index>
<kohaidx:target_index>Term-geographic-see:s</kohaidx:target_index>
<kohaidx:target_index>See:w</kohaidx:target_index>
<kohaidx:target_index>See:p</kohaidx:target_index>
<kohaidx:target_index>See:s</kohaidx:target_index>
<kohaidx:target_index>Match:w</kohaidx:target_index>
<kohaidx:target_index>Match:p</kohaidx:target_index>
<kohaidx:target_index>Match-heading-see-form:w</kohaidx:target_index>
<kohaidx:target_index>Match-heading-see-form:p</kohaidx:target_index>
</kohaidx:index_subfields>
<kohaidx:index_subfields tag="515" subfields="ajxyz">
<kohaidx:target_index>Name-geographic-see-also:w</kohaidx:target_index>
<kohaidx:target_index>Name-geographic-see-also:p</kohaidx:target_index>
<kohaidx:target_index>Term-geographic-see-also:w</kohaidx:target_index>
<kohaidx:target_index>Term-geographic-see-also:p</kohaidx:target_index>
<kohaidx:target_index>Term-geographic-see-also:s</kohaidx:target_index>
<kohaidx:target_index>See-also:w</kohaidx:target_index>
<kohaidx:target_index>See-also:p</kohaidx:target_index>
<kohaidx:target_index>Match:w</kohaidx:target_index>
<kohaidx:target_index>Match:p</kohaidx:target_index>
</kohaidx:index_subfields>
<kohaidx:index_subfields tag="715" subfields="ajxyz">
<kohaidx:target_index>Name-geographic-parallel:w</kohaidx:target_index>
<kohaidx:target_index>Name-geographic-parallel:s</kohaidx:target_index>
<kohaidx:target_index>Term-geographic-parallel:w</kohaidx:target_index>
<kohaidx:target_index>Term-geographic-parallel:s</kohaidx:target_index>
<kohaidx:target_index>Term-geographic-parallel:p</kohaidx:target_index>
<kohaidx:target_index>Parallel:w</kohaidx:target_index>
<kohaidx:target_index>Parallel:p</kohaidx:target_index>
<kohaidx:target_index>Match:w</kohaidx:target_index>
<kohaidx:target_index>Match:p</kohaidx:target_index>
</kohaidx:index_subfields>
<!-- Trademark-->
<kohaidx:index_subfields tag="216" subfields="afcjxyz">
<kohaidx:target_index>Trademark:w</kohaidx:target_index>
<kohaidx:target_index>Trademark:p</kohaidx:target_index>
<kohaidx:target_index>Heading:w</kohaidx:target_index>
<kohaidx:target_index>Heading:p</kohaidx:target_index>
<kohaidx:target_index>Match:w</kohaidx:target_index>
<kohaidx:target_index>Match:p</kohaidx:target_index>
<kohaidx:target_index>Match-heading:w</kohaidx:target_index>
<kohaidx:target_index>Match-heading:p</kohaidx:target_index>
</kohaidx:index_subfields>
<kohaidx:index_subfields tag="216" subfields="a">
<kohaidx:target_index>Heading:s</kohaidx:target_index>
<kohaidx:target_index>Heading-Main:w</kohaidx:target_index>
<kohaidx:target_index>Heading-Main:p</kohaidx:target_index>
<kohaidx:target_index>Heading-Main:s</kohaidx:target_index>
<kohaidx:target_index>Trademark-heading:w</kohaidx:target_index>
<kohaidx:target_index>Trademark-heading:p</kohaidx:target_index>
<kohaidx:target_index>Trademark-heading:s</kohaidx:target_index>
</kohaidx:index_subfields>
<kohaidx:index_subfields tag="416" subfields="afcjxyz">
<kohaidx:target_index>Trademark-see:w</kohaidx:target_index>
<kohaidx:target_index>Trademark-see:p</kohaidx:target_index>
<kohaidx:target_index>See:w</kohaidx:target_index>
<kohaidx:target_index>See:p</kohaidx:target_index>
<kohaidx:target_index>Match:w</kohaidx:target_index>
<kohaidx:target_index>Match:p</kohaidx:target_index>
<kohaidx:target_index>Match-heading-see-form:w</kohaidx:target_index>
<kohaidx:target_index>Match-heading-see-form:p</kohaidx:target_index>
</kohaidx:index_subfields>
<kohaidx:index_subfields tag="516" subfields="afcjxyz">
<kohaidx:target_index>Trademark-see-also:w</kohaidx:target_index>
<kohaidx:target_index>Trademark-see-also:p</kohaidx:target_index>
<kohaidx:target_index>See-also:w</kohaidx:target_index>
<kohaidx:target_index>See-also:p</kohaidx:target_index>
<kohaidx:target_index>Match:w</kohaidx:target_index>
<kohaidx:target_index>Match:p</kohaidx:target_index>
</kohaidx:index_subfields>
<kohaidx:index_subfields tag="716" subfields="afcjxyz">
<kohaidx:target_index>Trademark-parallel:w</kohaidx:target_index>
<kohaidx:target_index>Trademark-parallel:s</kohaidx:target_index>
<kohaidx:target_index>Parallel:w</kohaidx:target_index>
<kohaidx:target_index>Parallel:p</kohaidx:target_index>
<kohaidx:target_index>Match:w</kohaidx:target_index>
<kohaidx:target_index>Match:p</kohaidx:target_index>
</kohaidx:index_subfields>
<!-- Family name-->
<kohaidx:index_subfields tag="220" subfields="afjxyz">
<kohaidx:target_index>Name:w</kohaidx:target_index>
<kohaidx:target_index>Name:p</kohaidx:target_index>
<kohaidx:target_index>Heading:w</kohaidx:target_index>
<kohaidx:target_index>Heading:p</kohaidx:target_index>
<kohaidx:target_index>Match:w</kohaidx:target_index>
<kohaidx:target_index>Match:p</kohaidx:target_index>
<kohaidx:target_index>Match-heading:w</kohaidx:target_index>
<kohaidx:target_index>Match-heading:p</kohaidx:target_index>
</kohaidx:index_subfields>
<kohaidx:index_subfields tag="220" subfields="a">
<kohaidx:target_index>Heading:s</kohaidx:target_index>
<kohaidx:target_index>Heading-Main:w</kohaidx:target_index>
<kohaidx:target_index>Heading-Main:p</kohaidx:target_index>
<kohaidx:target_index>Heading-Main:s</kohaidx:target_index>
<kohaidx:target_index>Name-heading:w</kohaidx:target_index>
<kohaidx:target_index>Name-heading:p</kohaidx:target_index>
<kohaidx:target_index>Name-heading:s</kohaidx:target_index>
</kohaidx:index_subfields>
<kohaidx:index_subfields tag="420" subfields="afjxyz">
<kohaidx:target_index>Name-see:w</kohaidx:target_index>
<kohaidx:target_index>Name-see:p</kohaidx:target_index>
<kohaidx:target_index>See:w</kohaidx:target_index>
<kohaidx:target_index>See:p</kohaidx:target_index>
<kohaidx:target_index>Match:w</kohaidx:target_index>
<kohaidx:target_index>Match:p</kohaidx:target_index>
<kohaidx:target_index>Match-heading-see-form:w</kohaidx:target_index>
<kohaidx:target_index>Match-heading-see-form:p</kohaidx:target_index>
</kohaidx:index_subfields>
<kohaidx:index_subfields tag="520" subfields="afjxyz">
<kohaidx:target_index>Name-see-also:w</kohaidx:target_index>
<kohaidx:target_index>Name-see-also:p</kohaidx:target_index>
<kohaidx:target_index>See-also:w</kohaidx:target_index>
<kohaidx:target_index>See-also:p</kohaidx:target_index>
<kohaidx:target_index>Match:w</kohaidx:target_index>
<kohaidx:target_index>Match:p</kohaidx:target_index>
</kohaidx:index_subfields>
<kohaidx:index_subfields tag="720" subfields="afjxyz">
<kohaidx:target_index>Name-parallel:w</kohaidx:target_index>
<kohaidx:target_index>Name-parallel:s</kohaidx:target_index>
<kohaidx:target_index>Parallel:w</kohaidx:target_index>
<kohaidx:target_index>Parallel:p</kohaidx:target_index>
<kohaidx:target_index>Match:w</kohaidx:target_index>
<kohaidx:target_index>Match:p</kohaidx:target_index>
</kohaidx:index_subfields>
<!-- Uniform title -->
<kohaidx:index_subfields tag="230" subfields="abhiklmnqrsuwjxyz">
<kohaidx:target_index>Title-uniform:w</kohaidx:target_index>
<kohaidx:target_index>Title-uniform:p</kohaidx:target_index>
<kohaidx:target_index>Heading:w</kohaidx:target_index>
<kohaidx:target_index>Heading:p</kohaidx:target_index>
<kohaidx:target_index>Match:w</kohaidx:target_index>
<kohaidx:target_index>Match:p</kohaidx:target_index>
<kohaidx:target_index>Match-heading:w</kohaidx:target_index>
<kohaidx:target_index>Match-heading:p</kohaidx:target_index>
</kohaidx:index_subfields>
<kohaidx:index_subfields tag="230" subfields="a">
<kohaidx:target_index>Heading:s</kohaidx:target_index>
<kohaidx:target_index>Heading-Main:w</kohaidx:target_index>
<kohaidx:target_index>Heading-Main:p</kohaidx:target_index>
<kohaidx:target_index>Heading-Main:s</kohaidx:target_index>
<kohaidx:target_index>Title-uniform-heading:w</kohaidx:target_index>
<kohaidx:target_index>Title-uniform-heading:p</kohaidx:target_index>
<kohaidx:target_index>Title-uniform-heading:s</kohaidx:target_index>
</kohaidx:index_subfields>
<kohaidx:index_subfields tag="430" subfields="abhiklmnqrsuwjxyz">
<kohaidx:target_index>Title-uniform-see:w</kohaidx:target_index>
<kohaidx:target_index>Title-uniform-see:p</kohaidx:target_index>
<kohaidx:target_index>See:w</kohaidx:target_index>
<kohaidx:target_index>See:p</kohaidx:target_index>
<kohaidx:target_index>Match:w</kohaidx:target_index>
<kohaidx:target_index>Match:p</kohaidx:target_index>
<kohaidx:target_index>Match-heading-see-form:w</kohaidx:target_index>
<kohaidx:target_index>Match-heading-see-form:p</kohaidx:target_index>
</kohaidx:index_subfields>
<kohaidx:index_subfields tag="530" subfields="abhiklmnqrsuwjxyz">
<kohaidx:target_index>Title-uniform-see-also:w</kohaidx:target_index>
<kohaidx:target_index>Title-uniform-see-also:p</kohaidx:target_index>
<kohaidx:target_index>See-also:w</kohaidx:target_index>
<kohaidx:target_index>See-also:p</kohaidx:target_index>
<kohaidx:target_index>Match:w</kohaidx:target_index>
<kohaidx:target_index>Match:p</kohaidx:target_index>
</kohaidx:index_subfields>
<kohaidx:index_subfields tag="730" subfields="a">
<kohaidx:target_index>Title-uniform-parallel:w</kohaidx:target_index>
<kohaidx:target_index>Title-uniform-parallel:s</kohaidx:target_index>
<kohaidx:target_index>Parallel:w</kohaidx:target_index>
<kohaidx:target_index>Parallel:p</kohaidx:target_index>
<kohaidx:target_index>Match:w</kohaidx:target_index>
<kohaidx:target_index>Match:p</kohaidx:target_index>
</kohaidx:index_subfields>
<!-- Collective Uniform title -->
<kohaidx:index_subfields tag="235" subfields="abekmrsuwjxyz">
<kohaidx:target_index>Title-uniform:w</kohaidx:target_index>
<kohaidx:target_index>Title-uniform:p</kohaidx:target_index>
<kohaidx:target_index>Heading:w</kohaidx:target_index>
<kohaidx:target_index>Heading:p</kohaidx:target_index>
<kohaidx:target_index>Match:w</kohaidx:target_index>
<kohaidx:target_index>Match:p</kohaidx:target_index>
<kohaidx:target_index>Match-heading:w</kohaidx:target_index>
<kohaidx:target_index>Match-heading:p</kohaidx:target_index>
</kohaidx:index_subfields>
<kohaidx:index_subfields tag="235" subfields="a">
<kohaidx:target_index>Heading:s</kohaidx:target_index>
<kohaidx:target_index>Heading-Main:w</kohaidx:target_index>
<kohaidx:target_index>Heading-Main:p</kohaidx:target_index>
<kohaidx:target_index>Heading-Main:s</kohaidx:target_index>
<kohaidx:target_index>Title-uniform-heading:w</kohaidx:target_index>
<kohaidx:target_index>Title-uniform-heading:p</kohaidx:target_index>
<kohaidx:target_index>Title-uniform-heading:s</kohaidx:target_index>
</kohaidx:index_subfields>
<kohaidx:index_subfields tag="435" subfields="abekmrsuwjxyz">
<kohaidx:target_index>Title-uniform-see:w</kohaidx:target_index>
<kohaidx:target_index>Title-uniform-see:p</kohaidx:target_index>
<kohaidx:target_index>See:w</kohaidx:target_index>
<kohaidx:target_index>See:p</kohaidx:target_index>
<kohaidx:target_index>Match:w</kohaidx:target_index>
<kohaidx:target_index>Match:p</kohaidx:target_index>
<kohaidx:target_index>Match-heading-see-form:w</kohaidx:target_index>
<kohaidx:target_index>Match-heading-see-form:p</kohaidx:target_index>
</kohaidx:index_subfields>
<kohaidx:index_subfields tag="535" subfields="abekmrsuwjxyz">
<kohaidx:target_index>Title-uniform-see-also:w</kohaidx:target_index>
<kohaidx:target_index>Title-uniform-see-also:p</kohaidx:target_index>
<kohaidx:target_index>See-also:w</kohaidx:target_index>
<kohaidx:target_index>See-also:p</kohaidx:target_index>
<kohaidx:target_index>Match:w</kohaidx:target_index>
<kohaidx:target_index>Match:p</kohaidx:target_index>
</kohaidx:index_subfields>
<kohaidx:index_subfields tag="735" subfields="a">
<kohaidx:target_index>Title-uniform-parallel:w</kohaidx:target_index>
<kohaidx:target_index>Title-uniform-parallel:s</kohaidx:target_index>
<kohaidx:target_index>Parallel:w</kohaidx:target_index>
<kohaidx:target_index>Parallel:p</kohaidx:target_index>
<kohaidx:target_index>Match:w</kohaidx:target_index>
<kohaidx:target_index>Match:p</kohaidx:target_index>
</kohaidx:index_subfields>
<!-- Name and title -->
<kohaidx:index_subfields tag="240" subfields="atjxyz">
<kohaidx:target_index>Name-Title:w</kohaidx:target_index>
<kohaidx:target_index>Name-Title:p</kohaidx:target_index>
<kohaidx:target_index>Heading:w</kohaidx:target_index>
<kohaidx:target_index>Heading:p</kohaidx:target_index>
<kohaidx:target_index>Match:w</kohaidx:target_index>
<kohaidx:target_index>Match:p</kohaidx:target_index>
<kohaidx:target_index>Match-heading:w</kohaidx:target_index>
<kohaidx:target_index>Match-heading:p</kohaidx:target_index>
</kohaidx:index_subfields>
<kohaidx:index_subfields tag="240" subfields="a">
<kohaidx:target_index>Heading:s</kohaidx:target_index>
<kohaidx:target_index>Heading-Main:w</kohaidx:target_index>
<kohaidx:target_index>Heading-Main:p</kohaidx:target_index>
<kohaidx:target_index>Heading-Main:s</kohaidx:target_index>
<kohaidx:target_index>Name-Title-heading:w</kohaidx:target_index>
<kohaidx:target_index>Name-Title-heading:p</kohaidx:target_index>
<kohaidx:target_index>Name-Title-heading:s</kohaidx:target_index>
</kohaidx:index_subfields>
<kohaidx:index_subfields tag="440" subfields="atjxyz">
<kohaidx:target_index>Name-Title-see:w</kohaidx:target_index>
<kohaidx:target_index>Name-Title-see:p</kohaidx:target_index>
<kohaidx:target_index>See:w</kohaidx:target_index>
<kohaidx:target_index>See:p</kohaidx:target_index>
<kohaidx:target_index>Match:w</kohaidx:target_index>
<kohaidx:target_index>Match:p</kohaidx:target_index>
<kohaidx:target_index>Match-heading-see-form:w</kohaidx:target_index>
<kohaidx:target_index>Match-heading-see-form:p</kohaidx:target_index>
</kohaidx:index_subfields>
<kohaidx:index_subfields tag="540" subfields="atjxyz">
<kohaidx:target_index>Name-Title-see-also:w</kohaidx:target_index>
<kohaidx:target_index>Name-Title-see-also:p</kohaidx:target_index>
<kohaidx:target_index>See-also:w</kohaidx:target_index>
<kohaidx:target_index>See-also:p</kohaidx:target_index>
<kohaidx:target_index>Match:w</kohaidx:target_index>
<kohaidx:target_index>Match:p</kohaidx:target_index>
</kohaidx:index_subfields>
<kohaidx:index_subfields tag="740" subfields="a">
<kohaidx:target_index>Name-Title-parallel:w</kohaidx:target_index>
<kohaidx:target_index>Name-Title-parallel:s</kohaidx:target_index>
<kohaidx:target_index>Parallel:w</kohaidx:target_index>
<kohaidx:target_index>Parallel:p</kohaidx:target_index>
<kohaidx:target_index>Match:w</kohaidx:target_index>
<kohaidx:target_index>Match:p</kohaidx:target_index>
</kohaidx:index_subfields>
<!-- Name and collective title -->
<kohaidx:index_subfields tag="245" subfields="atjxyz">
<kohaidx:target_index>Title-uniform:w</kohaidx:target_index>
<kohaidx:target_index>Title-uniform:p</kohaidx:target_index>
<kohaidx:target_index>Heading:w</kohaidx:target_index>
<kohaidx:target_index>Heading:p</kohaidx:target_index>
<kohaidx:target_index>Match:w</kohaidx:target_index>
<kohaidx:target_index>Match:p</kohaidx:target_index>
<kohaidx:target_index>Match-heading:w</kohaidx:target_index>
<kohaidx:target_index>Match-heading:p</kohaidx:target_index>
</kohaidx:index_subfields>
<kohaidx:index_subfields tag="245" subfields="a">
<kohaidx:target_index>Heading:s</kohaidx:target_index>
<kohaidx:target_index>Heading-Main:w</kohaidx:target_index>
<kohaidx:target_index>Heading-Main:p</kohaidx:target_index>
<kohaidx:target_index>Heading-Main:s</kohaidx:target_index>
<kohaidx:target_index>Title-uniform-heading:w</kohaidx:target_index>
<kohaidx:target_index>Title-uniform-heading:p</kohaidx:target_index>
<kohaidx:target_index>Title-uniform-heading:s</kohaidx:target_index>
</kohaidx:index_subfields>
<kohaidx:index_subfields tag="445" subfields="atjxyz">
<kohaidx:target_index>Title-uniform-see:w</kohaidx:target_index>
<kohaidx:target_index>Title-uniform-see:p</kohaidx:target_index>
<kohaidx:target_index>See:w</kohaidx:target_index>
<kohaidx:target_index>See:p</kohaidx:target_index>
<kohaidx:target_index>Match:w</kohaidx:target_index>
<kohaidx:target_index>Match:p</kohaidx:target_index>
<kohaidx:target_index>Match-heading-see-form:w</kohaidx:target_index>
<kohaidx:target_index>Match-heading-see-form:p</kohaidx:target_index>
</kohaidx:index_subfields>
<kohaidx:index_subfields tag="545" subfields="atjxyz">
<kohaidx:target_index>Title-uniform-see-also:w</kohaidx:target_index>
<kohaidx:target_index>Title-uniform-see-also:p</kohaidx:target_index>
<kohaidx:target_index>See-also:w</kohaidx:target_index>
<kohaidx:target_index>See-also:p</kohaidx:target_index>
<kohaidx:target_index>Match:w</kohaidx:target_index>
<kohaidx:target_index>Match:p</kohaidx:target_index>
</kohaidx:index_subfields>
<kohaidx:index_subfields tag="745" subfields="a">
<kohaidx:target_index>Title-uniform-parallel:w</kohaidx:target_index>
<kohaidx:target_index>Title-uniform-parallel:s</kohaidx:target_index>
<kohaidx:target_index>Parallel:w</kohaidx:target_index>
<kohaidx:target_index>Parallel:p</kohaidx:target_index>
<kohaidx:target_index>Match:w</kohaidx:target_index>
<kohaidx:target_index>Match:p</kohaidx:target_index>
</kohaidx:index_subfields>
<!-- Topical term -->
<kohaidx:index_subfields tag="250" subfields="ajxyz">
<kohaidx:target_index>Subject:w</kohaidx:target_index>
<kohaidx:target_index>Subject:p</kohaidx:target_index>
<kohaidx:target_index>Heading:w</kohaidx:target_index>
<kohaidx:target_index>Heading:p</kohaidx:target_index>
<kohaidx:target_index>Match:w</kohaidx:target_index>
<kohaidx:target_index>Match:p</kohaidx:target_index>
<kohaidx:target_index>Match-heading:w</kohaidx:target_index>
<kohaidx:target_index>Match-heading:p</kohaidx:target_index>
<kohaidx:target_index>Subject-heading:w</kohaidx:target_index>
<kohaidx:target_index>Subject-heading:p</kohaidx:target_index>
<kohaidx:target_index>Subject-heading:s</kohaidx:target_index>
</kohaidx:index_subfields>
<kohaidx:index_subfields tag="250" subfields="a">
<kohaidx:target_index>Heading:s</kohaidx:target_index>
<kohaidx:target_index>Heading-Main:w</kohaidx:target_index>
<kohaidx:target_index>Heading-Main:p</kohaidx:target_index>
<kohaidx:target_index>Heading-Main:s</kohaidx:target_index>
</kohaidx:index_subfields>
<kohaidx:index_subfields tag="450" subfields="ajxyz">
<kohaidx:target_index>Subject-see:w</kohaidx:target_index>
<kohaidx:target_index>Subject-see:p</kohaidx:target_index>
<kohaidx:target_index>See:w</kohaidx:target_index>
<kohaidx:target_index>See:p</kohaidx:target_index>
<kohaidx:target_index>Match:w</kohaidx:target_index>
<kohaidx:target_index>Match:p</kohaidx:target_index>
<kohaidx:target_index>Match-heading-see-form:w</kohaidx:target_index>
<kohaidx:target_index>Match-heading-see-form:p</kohaidx:target_index>
</kohaidx:index_subfields>
<kohaidx:index_subfields tag="550" subfields="ajxyz">
<kohaidx:target_index>Subject-see-also:w</kohaidx:target_index>
<kohaidx:target_index>Subject-see-also:p</kohaidx:target_index>
<kohaidx:target_index>See-also:w</kohaidx:target_index>
<kohaidx:target_index>See-also:p</kohaidx:target_index>
<kohaidx:target_index>Match:w</kohaidx:target_index>
<kohaidx:target_index>Match:p</kohaidx:target_index>
</kohaidx:index_subfields>
<kohaidx:index_subfields tag="750" subfields="a">
<kohaidx:target_index>Subject-parallel:w</kohaidx:target_index>
<kohaidx:target_index>Subject-parallel:s</kohaidx:target_index>
<kohaidx:target_index>Parallel:w</kohaidx:target_index>
<kohaidx:target_index>Parallel:p</kohaidx:target_index>
<kohaidx:target_index>Match:w</kohaidx:target_index>
<kohaidx:target_index>Match:p</kohaidx:target_index>
</kohaidx:index_subfields>
<!-- Place -->
<kohaidx:index_subfields tag="260" subfields="abcdjxyz">
<kohaidx:target_index>Place:w</kohaidx:target_index>
<kohaidx:target_index>Place:p</kohaidx:target_index>
<kohaidx:target_index>Heading:w</kohaidx:target_index>
<kohaidx:target_index>Heading:p</kohaidx:target_index>
<kohaidx:target_index>Match:w</kohaidx:target_index>
<kohaidx:target_index>Match:p</kohaidx:target_index>
<kohaidx:target_index>Match-heading:w</kohaidx:target_index>
<kohaidx:target_index>Match-heading:p</kohaidx:target_index>
<kohaidx:target_index>Place-heading:w</kohaidx:target_index>
<kohaidx:target_index>Place-heading:p</kohaidx:target_index>
<kohaidx:target_index>Place-heading:s</kohaidx:target_index>
</kohaidx:index_subfields>
<kohaidx:index_subfields tag="260" subfields="a">
<kohaidx:target_index>Heading:s</kohaidx:target_index>
<kohaidx:target_index>Heading-Main:w</kohaidx:target_index>
<kohaidx:target_index>Heading-Main:p</kohaidx:target_index>
<kohaidx:target_index>Heading-Main:s</kohaidx:target_index>
</kohaidx:index_subfields>
<kohaidx:index_subfields tag="460" subfields="abcdjxyz">
<kohaidx:target_index>Place-see:w</kohaidx:target_index>
<kohaidx:target_index>Place-see:p</kohaidx:target_index>
<kohaidx:target_index>See:w</kohaidx:target_index>
<kohaidx:target_index>See:p</kohaidx:target_index>
<kohaidx:target_index>Match:w</kohaidx:target_index>
<kohaidx:target_index>Match:p</kohaidx:target_index>
<kohaidx:target_index>Match-heading-see-form:w</kohaidx:target_index>
<kohaidx:target_index>Match-heading-see-form:p</kohaidx:target_index>
</kohaidx:index_subfields>
<kohaidx:index_subfields tag="560" subfields="abcdjxyz">
<kohaidx:target_index>Place-see-also:w</kohaidx:target_index>
<kohaidx:target_index>Place-see-also:p</kohaidx:target_index>
<kohaidx:target_index>See-also:w</kohaidx:target_index>
<kohaidx:target_index>See-also:p</kohaidx:target_index>
<kohaidx:target_index>Match:w</kohaidx:target_index>
<kohaidx:target_index>Match:p</kohaidx:target_index>
</kohaidx:index_subfields>
<kohaidx:index_subfields tag="760" subfields="a">
<kohaidx:target_index>Place-parallel:w</kohaidx:target_index>
<kohaidx:target_index>Place-parallel:s</kohaidx:target_index>
<kohaidx:target_index>Parallel:w</kohaidx:target_index>
<kohaidx:target_index>Parallel:p</kohaidx:target_index>
<kohaidx:target_index>Match:w</kohaidx:target_index>
<kohaidx:target_index>Match:p</kohaidx:target_index>
</kohaidx:index_subfields>
<!-- Genre/form -->
<kohaidx:index_subfields tag="280" subfields="ajxyz">
<kohaidx:target_index>Form:w</kohaidx:target_index>
<kohaidx:target_index>Form:p</kohaidx:target_index>
<kohaidx:target_index>Heading:w</kohaidx:target_index>
<kohaidx:target_index>Heading:p</kohaidx:target_index>
<kohaidx:target_index>Match:w</kohaidx:target_index>
<kohaidx:target_index>Match:p</kohaidx:target_index>
<kohaidx:target_index>Match-heading:w</kohaidx:target_index>
<kohaidx:target_index>Match-heading:p</kohaidx:target_index>
<kohaidx:target_index>Form-heading:w</kohaidx:target_index>
<kohaidx:target_index>Form-heading:p</kohaidx:target_index>
<kohaidx:target_index>Form-heading:s</kohaidx:target_index>
</kohaidx:index_subfields>
<kohaidx:index_subfields tag="280" subfields="a">
<kohaidx:target_index>Heading:s</kohaidx:target_index>
<kohaidx:target_index>Heading-Main:w</kohaidx:target_index>
<kohaidx:target_index>Heading-Main:p</kohaidx:target_index>
<kohaidx:target_index>Heading-Main:s</kohaidx:target_index>
</kohaidx:index_subfields>
<kohaidx:index_subfields tag="480" subfields="ajxyz">
<kohaidx:target_index>Form-see:w</kohaidx:target_index>
<kohaidx:target_index>Form-see:p</kohaidx:target_index>
<kohaidx:target_index>See:w</kohaidx:target_index>
<kohaidx:target_index>See:p</kohaidx:target_index>
<kohaidx:target_index>Match:w</kohaidx:target_index>
<kohaidx:target_index>Match:p</kohaidx:target_index>
<kohaidx:target_index>Match-heading-see-form:w</kohaidx:target_index>
<kohaidx:target_index>Match-heading-see-form:p</kohaidx:target_index>
</kohaidx:index_subfields>
<kohaidx:index_subfields tag="580" subfields="ajxyz">
<kohaidx:target_index>Form-see-also:w</kohaidx:target_index>
<kohaidx:target_index>Form-see-also:p</kohaidx:target_index>
<kohaidx:target_index>See-also:w</kohaidx:target_index>
<kohaidx:target_index>See-also:p</kohaidx:target_index>
<kohaidx:target_index>Match:w</kohaidx:target_index>
<kohaidx:target_index>Match:p</kohaidx:target_index>
</kohaidx:index_subfields>
<kohaidx:index_subfields tag="780" subfields="a">
<kohaidx:target_index>Form-parallel:w</kohaidx:target_index>
<kohaidx:target_index>Form-parallel:s</kohaidx:target_index>
<kohaidx:target_index>Parallel:w</kohaidx:target_index>
<kohaidx:target_index>Parallel:p</kohaidx:target_index>
<kohaidx:target_index>Match:w</kohaidx:target_index>
<kohaidx:target_index>Match:p</kohaidx:target_index>
</kohaidx:index_subfields>
<!-- Notes 300, 305, 310, 320, 330, 340, 356-->
<kohaidx:index_subfields tag="300" subfields="a">
<kohaidx:target_index>Note:w</kohaidx:target_index>
<kohaidx:target_index>Note:p</kohaidx:target_index>
</kohaidx:index_subfields>
<kohaidx:index_subfields tag="305" subfields="a">
<kohaidx:target_index>Note:w</kohaidx:target_index>
<kohaidx:target_index>Note:p</kohaidx:target_index>
</kohaidx:index_subfields>
<kohaidx:index_subfields tag="310" subfields="a">
<kohaidx:target_index>Note:w</kohaidx:target_index>
<kohaidx:target_index>Note:p</kohaidx:target_index>
</kohaidx:index_subfields>
<kohaidx:index_subfields tag="320" subfields="a">
<kohaidx:target_index>Note:w</kohaidx:target_index>
<kohaidx:target_index>Note:p</kohaidx:target_index>
</kohaidx:index_subfields>
<kohaidx:index_subfields tag="330" subfields="a">
<kohaidx:target_index>Note:w</kohaidx:target_index>
<kohaidx:target_index>Note:p</kohaidx:target_index>
</kohaidx:index_subfields>
<kohaidx:index_subfields tag="340" subfields="a">
<kohaidx:target_index>Note:w</kohaidx:target_index>
<kohaidx:target_index>Note:p</kohaidx:target_index>
</kohaidx:index_subfields>
<kohaidx:index_subfields tag="356" subfields="a">
<kohaidx:target_index>Note:w</kohaidx:target_index>
<kohaidx:target_index>Note:p</kohaidx:target_index>
</kohaidx:index_subfields>
<!-- authtype-->
<kohaidx:index_subfields tag="152" subfields="b">
<kohaidx:target_index>authtype:w</kohaidx:target_index>
<kohaidx:target_index>authtype:p</kohaidx:target_index>
</kohaidx:index_subfields>
<kohaidx:index_subfields tag="942" subfields="a">
<kohaidx:target_index>authtype:w</kohaidx:target_index>
</kohaidx:index_subfields>
</kohaidx:index_defs>

View file

@ -0,0 +1,669 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
This file has been automatically generated from a Koha index definition file
with the stylesheet koha-indexdefs-to-zebra.xsl. Do not manually edit this file,
as it may be overwritten. To regenerate, edit the appropriate Koha index
definition file (probably something like {biblio,authority}-koha-indexdefs.xml) and run:
`xsltproc koha-indexdefs-to-zebra.xsl {biblio,authority}-koha-indexdefs.xml >
{biblio,authority}-zebra-indexdefs.xsl` (substituting the appropriate file names).
-->
<xslo:stylesheet xmlns:xslo="http://www.w3.org/1999/XSL/Transform" xmlns:marc="http://www.loc.gov/MARC21/slim" xmlns:z="http://indexdata.com/zebra-2.0" xmlns:kohaidx="http://www.koha-community.org/schemas/index-defs" version="1.0">
<xslo:output indent="yes" method="xml" version="1.0" encoding="UTF-8"/>
<xslo:template match="text()"/>
<xslo:template match="text()" mode="index_subfields"/>
<xslo:template match="text()" mode="index_data_field"/>
<xslo:template match="text()" mode="index_heading"/>
<xslo:template match="text()" mode="index_heading_conditional"/>
<xslo:template match="text()" mode="index_match_heading"/>
<xslo:template match="text()" mode="index_subject_thesaurus"/>
<xslo:template match="/">
<xslo:if test="marc:collection">
<collection>
<xslo:apply-templates select="marc:collection/marc:record"/>
</collection>
</xslo:if>
<xslo:if test="marc:record">
<xslo:apply-templates select="marc:record"/>
</xslo:if>
</xslo:template>
<xslo:template match="marc:record">
<xslo:variable name="idfield" select="normalize-space(marc:controlfield[@tag='001'])"/>
<z:record type="update">
<xslo:attribute name="z:id">
<xslo:value-of select="$idfield"/>
</xslo:attribute>
<xslo:apply-templates/>
<xslo:apply-templates mode="index_subfields"/>
<xslo:apply-templates mode="index_data_field"/>
<xslo:apply-templates mode="index_heading"/>
<xslo:apply-templates mode="index_heading_conditional"/>
<xslo:apply-templates mode="index_match_heading"/>
<xslo:apply-templates mode="index_subject_thesaurus"/>
<xslo:apply-templates mode="index_all"/>
</z:record>
</xslo:template>
<xslo:template match="marc:controlfield[@tag='001']">
<z:index name="Local-Number:w Local-Number:s Local-Number:n">
<xslo:value-of select="."/>
</z:index>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='200']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('abcdfgjxyz', @code)">
<z:index name="Personal-name:w Personal-name:p Heading:w Heading:p Match:w Match:p Match-heading:w Match-heading:p">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('a', @code)">
<z:index name="Heading:s Heading-Main:w Heading-Main:p Heading-Main:s Personal-name-heading:w Personal-name-heading:p Personal-name-heading:s">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='400']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('abcdfgjxyz', @code)">
<z:index name="Personal-name-see:w Personal-name-see:p See:w See:p Match:w Match:p Match-heading-see-form:w Match-heading-see-form:p">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='500']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('abcdfgjxyz', @code)">
<z:index name="Personal-name-see-also:w Personal-name-see-also:p See-also:w See-also:p Match:w Match:p">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='700']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('a', @code)">
<z:index name="Personal-name-parallel:w Personal-name-parallel:s Parallel:w Parallel:p Match:w Match:p">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='210']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('abcdefgjxyz', @code)">
<z:index name="Corporate-name:w Corporate-name:p Conference-name:w Conference-name:p Heading:w Heading:p Match:w Match:p Match-heading:w Match-heading:p">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('a', @code)">
<z:index name="Heading:s Heading-Main:w Heading-Main:p Heading-Main:s Corporate-name-heading:w Corporate-name-heading:p Corporate-name-heading:s Conference-name-heading:w Conference-name-heading:p Conference-name-heading:s">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='410']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('abcdefgjxyz', @code)">
<z:index name="Corporate-name-see:w Corporate-name-see:p Conference-name-see:w Conference-name-see:p See:w See:p Match:w Match:p Match-heading-see-form:w Match-heading-see-form:p">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='510']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('abcdefgjxyz', @code)">
<z:index name="Corporate-name-see-also:w Corporate-name-see-also:p Conference-name-see-also:w Conference-name-see-also:p See-also:w See-also:p Match:w Match:p">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='710']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('abcdefgjxyz', @code)">
<z:index name="Corporate-name-parallel:w Corporate-name-parallel:s Conference-name-parallel:w Conference-name-parallel:s Parallel:w Parallel:p Match:w Match:p">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='215']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('ajxyz', @code)">
<z:index name="Name-geographic:w Name-geographic:p Name-geographic:s Term-geographic:w Term-geographic:p Term-geographic:s Heading:w Heading:p Heading:s Match:w Match:p Match-heading:w Match-heading:p">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('a', @code)">
<z:index name="Heading-Main:w Heading-Main:p Heading-Main:s Name-geographic-heading:w Name-geographic-heading:p Name-geographic-heading:s Term-geographic-heading:w Term-geographic-heading:p Term-geographic-heading:s">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='415']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('ajxyz', @code)">
<z:index name="Name-geographic-see:w Name-geographic-see:p Term-geographic-see:w Term-geographic-see:p Term-geographic-see:s See:w See:p See:s Match:w Match:p Match-heading-see-form:w Match-heading-see-form:p">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='515']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('ajxyz', @code)">
<z:index name="Name-geographic-see-also:w Name-geographic-see-also:p Term-geographic-see-also:w Term-geographic-see-also:p Term-geographic-see-also:s See-also:w See-also:p Match:w Match:p">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='715']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('ajxyz', @code)">
<z:index name="Name-geographic-parallel:w Name-geographic-parallel:s Term-geographic-parallel:w Term-geographic-parallel:s Term-geographic-parallel:p Parallel:w Parallel:p Match:w Match:p">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='216']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('afcjxyz', @code)">
<z:index name="Trademark:w Trademark:p Heading:w Heading:p Match:w Match:p Match-heading:w Match-heading:p">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('a', @code)">
<z:index name="Heading:s Heading-Main:w Heading-Main:p Heading-Main:s Trademark-heading:w Trademark-heading:p Trademark-heading:s">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='416']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('afcjxyz', @code)">
<z:index name="Trademark-see:w Trademark-see:p See:w See:p Match:w Match:p Match-heading-see-form:w Match-heading-see-form:p">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='516']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('afcjxyz', @code)">
<z:index name="Trademark-see-also:w Trademark-see-also:p See-also:w See-also:p Match:w Match:p">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='716']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('afcjxyz', @code)">
<z:index name="Trademark-parallel:w Trademark-parallel:s Parallel:w Parallel:p Match:w Match:p">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='220']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('afjxyz', @code)">
<z:index name="Name:w Name:p Heading:w Heading:p Match:w Match:p Match-heading:w Match-heading:p">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('a', @code)">
<z:index name="Heading:s Heading-Main:w Heading-Main:p Heading-Main:s Name-heading:w Name-heading:p Name-heading:s">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='420']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('afjxyz', @code)">
<z:index name="Name-see:w Name-see:p See:w See:p Match:w Match:p Match-heading-see-form:w Match-heading-see-form:p">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='520']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('afjxyz', @code)">
<z:index name="Name-see-also:w Name-see-also:p See-also:w See-also:p Match:w Match:p">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='720']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('afjxyz', @code)">
<z:index name="Name-parallel:w Name-parallel:s Parallel:w Parallel:p Match:w Match:p">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='230']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('abhiklmnqrsuwjxyz', @code)">
<z:index name="Title-uniform:w Title-uniform:p Heading:w Heading:p Match:w Match:p Match-heading:w Match-heading:p">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('a', @code)">
<z:index name="Heading:s Heading-Main:w Heading-Main:p Heading-Main:s Title-uniform-heading:w Title-uniform-heading:p Title-uniform-heading:s">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='430']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('abhiklmnqrsuwjxyz', @code)">
<z:index name="Title-uniform-see:w Title-uniform-see:p See:w See:p Match:w Match:p Match-heading-see-form:w Match-heading-see-form:p">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='530']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('abhiklmnqrsuwjxyz', @code)">
<z:index name="Title-uniform-see-also:w Title-uniform-see-also:p See-also:w See-also:p Match:w Match:p">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='730']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('a', @code)">
<z:index name="Title-uniform-parallel:w Title-uniform-parallel:s Parallel:w Parallel:p Match:w Match:p">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='235']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('abekmrsuwjxyz', @code)">
<z:index name="Title-uniform:w Title-uniform:p Heading:w Heading:p Match:w Match:p Match-heading:w Match-heading:p">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('a', @code)">
<z:index name="Heading:s Heading-Main:w Heading-Main:p Heading-Main:s Title-uniform-heading:w Title-uniform-heading:p Title-uniform-heading:s">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='435']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('abekmrsuwjxyz', @code)">
<z:index name="Title-uniform-see:w Title-uniform-see:p See:w See:p Match:w Match:p Match-heading-see-form:w Match-heading-see-form:p">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='535']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('abekmrsuwjxyz', @code)">
<z:index name="Title-uniform-see-also:w Title-uniform-see-also:p See-also:w See-also:p Match:w Match:p">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='735']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('a', @code)">
<z:index name="Title-uniform-parallel:w Title-uniform-parallel:s Parallel:w Parallel:p Match:w Match:p">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='240']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('atjxyz', @code)">
<z:index name="Name-Title:w Name-Title:p Heading:w Heading:p Match:w Match:p Match-heading:w Match-heading:p">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('a', @code)">
<z:index name="Heading:s Heading-Main:w Heading-Main:p Heading-Main:s Name-Title-heading:w Name-Title-heading:p Name-Title-heading:s">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='440']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('atjxyz', @code)">
<z:index name="Name-Title-see:w Name-Title-see:p See:w See:p Match:w Match:p Match-heading-see-form:w Match-heading-see-form:p">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='540']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('atjxyz', @code)">
<z:index name="Name-Title-see-also:w Name-Title-see-also:p See-also:w See-also:p Match:w Match:p">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='740']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('a', @code)">
<z:index name="Name-Title-parallel:w Name-Title-parallel:s Parallel:w Parallel:p Match:w Match:p">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='245']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('atjxyz', @code)">
<z:index name="Title-uniform:w Title-uniform:p Heading:w Heading:p Match:w Match:p Match-heading:w Match-heading:p">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('a', @code)">
<z:index name="Heading:s Heading-Main:w Heading-Main:p Heading-Main:s Title-uniform-heading:w Title-uniform-heading:p Title-uniform-heading:s">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='445']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('atjxyz', @code)">
<z:index name="Title-uniform-see:w Title-uniform-see:p See:w See:p Match:w Match:p Match-heading-see-form:w Match-heading-see-form:p">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='545']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('atjxyz', @code)">
<z:index name="Title-uniform-see-also:w Title-uniform-see-also:p See-also:w See-also:p Match:w Match:p">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='745']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('a', @code)">
<z:index name="Title-uniform-parallel:w Title-uniform-parallel:s Parallel:w Parallel:p Match:w Match:p">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='250']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('ajxyz', @code)">
<z:index name="Subject:w Subject:p Heading:w Heading:p Match:w Match:p Match-heading:w Match-heading:p Subject-heading:w Subject-heading:p Subject-heading:s">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('a', @code)">
<z:index name="Heading:s Heading-Main:w Heading-Main:p Heading-Main:s">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='450']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('ajxyz', @code)">
<z:index name="Subject-see:w Subject-see:p See:w See:p Match:w Match:p Match-heading-see-form:w Match-heading-see-form:p">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='550']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('ajxyz', @code)">
<z:index name="Subject-see-also:w Subject-see-also:p See-also:w See-also:p Match:w Match:p">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='750']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('a', @code)">
<z:index name="Subject-parallel:w Subject-parallel:s Parallel:w Parallel:p Match:w Match:p">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='260']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('abcdjxyz', @code)">
<z:index name="Place:w Place:p Heading:w Heading:p Match:w Match:p Match-heading:w Match-heading:p Place-heading:w Place-heading:p Place-heading:s">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('a', @code)">
<z:index name="Heading:s Heading-Main:w Heading-Main:p Heading-Main:s">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='460']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('abcdjxyz', @code)">
<z:index name="Place-see:w Place-see:p See:w See:p Match:w Match:p Match-heading-see-form:w Match-heading-see-form:p">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='560']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('abcdjxyz', @code)">
<z:index name="Place-see-also:w Place-see-also:p See-also:w See-also:p Match:w Match:p">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='760']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('a', @code)">
<z:index name="Place-parallel:w Place-parallel:s Parallel:w Parallel:p Match:w Match:p">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='280']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('ajxyz', @code)">
<z:index name="Form:w Form:p Heading:w Heading:p Match:w Match:p Match-heading:w Match-heading:p Form-heading:w Form-heading:p Form-heading:s">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('a', @code)">
<z:index name="Heading:s Heading-Main:w Heading-Main:p Heading-Main:s">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='480']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('ajxyz', @code)">
<z:index name="Form-see:w Form-see:p See:w See:p Match:w Match:p Match-heading-see-form:w Match-heading-see-form:p">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='580']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('ajxyz', @code)">
<z:index name="Form-see-also:w Form-see-also:p See-also:w See-also:p Match:w Match:p">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='780']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('a', @code)">
<z:index name="Form-parallel:w Form-parallel:s Parallel:w Parallel:p Match:w Match:p">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='300']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('a', @code)">
<z:index name="Note:w Note:p">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='305']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('a', @code)">
<z:index name="Note:w Note:p">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='310']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('a', @code)">
<z:index name="Note:w Note:p">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='320']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('a', @code)">
<z:index name="Note:w Note:p">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='330']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('a', @code)">
<z:index name="Note:w Note:p">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='340']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('a', @code)">
<z:index name="Note:w Note:p">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='356']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('a', @code)">
<z:index name="Note:w Note:p">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='152']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('b', @code)">
<z:index name="authtype:w authtype:p">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_subfields" match="marc:datafield[@tag='942']">
<xslo:for-each select="marc:subfield">
<xslo:if test="contains('a', @code)">
<z:index name="authtype:w">
<xslo:value-of select="."/>
</z:index>
</xslo:if>
</xslo:for-each>
</xslo:template>
<xslo:template mode="index_all" match="text()">
<z:index name="Any:w Any:p">
<xslo:value-of select="."/>
</z:index>
</xslo:template>
<xslo:template name="chopPunctuation">
<xslo:param name="chopString"/>
<xslo:variable name="length" select="string-length($chopString)"/>
<xslo:choose>
<xslo:when test="$length=0"/>
<xslo:when test="contains('-,.:=;!%/', substring($chopString,$length,1))">
<xslo:call-template name="chopPunctuation">
<xslo:with-param name="chopString" select="substring($chopString,1,$length - 1)"/>
</xslo:call-template>
</xslo:when>
<xslo:when test="not($chopString)"/>
<xslo:otherwise>
<xslo:value-of select="$chopString"/>
</xslo:otherwise>
</xslo:choose>
<xslo:text/>
</xslo:template>
</xslo:stylesheet>

View file

@ -1,3 +1,11 @@
#
# NOTE: If you are using the DOM index filter, this configuration file is
# *not* used. To update the index definitions for the DOM filter,
# edit authority-koha-indexdefs.xml and run
# xsltproc ../../../xsl/koha-indexdefs-to-zebra.xsl \
# authority-koha-indexdefs.xml \
# > authority-zebra-indexdefs.xsl
#
# This is a fairly simple set of UNIMARC Authority indexing rules
encoding utf-8
name authorities
@ -12,9 +20,14 @@ xpath enable
all any
melm 001 Local-Number,Local-Number:n,Local-Number:s
#FIXME check if 942 is used
melm 942$a authtype
melm 152$b authtype:w,authtype:p
#FIXME index some coded fields and leader positions?
#FIXME why only $a indexed for some 7XX and not for others (710, 715, 716, 720)?
#FIXME why 250/260/280 indexed as Subject-heading, Place-heading and Form-heading (not only 250/260/280$a) ?
# Personal Name
melm 200$a Personal-name-heading:w,Personal-name-heading:p,Personal-name-heading:s,Personal-name:w,Personal-name:p,Heading:w,Heading:p,Heading:s,Heading-Main:w,Heading-Main:p,Heading-Main:s,Match:w,Match:p,Match-heading:w,Match-heading:p
melm 200 Personal-name:w,Personal-name:p,Heading:w,Heading:p,Match:w,Match:p,Match-heading:w,Match-heading:p
@ -22,15 +35,17 @@ melm 400 Personal-name-see:w,Personal-name-see:p,See:w,See:p,Match:w,Match:p,Mat
melm 500 Personal-name-see-also:w,Personal-name-see-also:p,See-also:w,See-also:p,Match:w,Match:p
melm 700$a Personal-name-parallel:w,Personal-name-parallel:p,Parallel:w,Parallel:p,Match:w,Match:p
# Corporate Name
# Corporate Name and conference Name
# with GRS-1, no way to make the difference
# with DOM, possible
melm 210$a Corporate-name-heading:w,Corporate-name-heading:p,Corporate-name-heading:s,Corporate-name:w,Corporate-name:p,Conference-name-heading:w,Conference-name-heading:p,Conference-name-heading:s,Conference-name:w,Conference-name:p,Heading:w,Heading:p,Heading:s,Heading-Main:w,Heading-Main:p,Heading-Main:s,Match:w,Match:p,Match-heading:w,Match-heading:p
melm 210 Corporate-name:w,Corporate-name:p,Conference-name:w,Conference-name:p,Heading:w,Heading:p,Match:w,Match:p,Match-heading:w,Match-heading:p
melm 410 Corporate-name-see:w,Corporate-name-see:p,Conference-name-see:w,Conference-name-see:p,See:w,See:p,Match:w,Match:p,Match-heading-see-from:w,Match-heading-see-from:p
melm 510 Corporate-name-see-also:w,Corporate-name-see-also:p,Conference-name-see-also:w,Conference-name-see-also:p,See-also:w,See-also:p,Match:w,Match:p
melm 710 Corporate-name-parallel:w,Corporate-name-parallel:p,Parallel:w,Parallel:p,Match:w,Match:p
# Geographic & Geographic Name
# Geographic Name
# FIXME : what is Term-geographic?
melm 215$a Name-geographic-heading:w,Name-geographic-heading:w,Name-geographic-heading:s,Name-geographic:w,Name-geographic:p,Term-geographic-heading:w,Term-geographic-heading:p,Term-geographic-heading:s,Term-geographic:w,Term-geographic:p,Heading:w,Heading:p,Heading:s,Heading-Main:w,Heading-Main:p,Heading-Main:s,Match:w,Match:p,Match-heading:w,Match-heading:p
melm 215 Name-geographic-heading:w,Name-geographic-heading:w,Name-geographic-heading:s,Name-geographic:w,Name-geographic:p,Term-geographic:w,Term-geographic:p,Term-geographic:s,Heading:w,Heading:p,Heading:s,Match:w,Match:p,Match-heading:w,Match-heading:p
melm 415 Name-geographic-see:w,Name-geographic-see:p,Term-geographic-see:w,Term-geographic-see:p,Term-geographic-see:s,See:w,See:p,See:s,Match:w,Match:p,Match-heading-see-from:w,Match-heading-see-from:p
@ -38,10 +53,10 @@ melm 515 Name-geographic-see-also:w,Name-geographic-see-also:p,Term-geographic-s
melm 715 Name-geographic-parallel:w,Name-geographic-parallel:p,Term-geographic-parallel:w,Term-geographic-parallel:p,Term-geographic-parallel:s,Parallel:w,Parallel:p,Parallel:s,Match:w,Match:p
# Trademark
melm 216$a Trademark-heading:w,Trademark-heading:p,Trademark-heading:s,Trademark:w,Trademark:p,Conference-name-heading:w,Conference-name-heading:p,Conference-name-heading:s,Conference-name:w,Conference-name:p,Heading:w,Heading:p,Heading:s,Heading-Main:w,Heading-Main:p,Heading-Main:s,Match:w,Match:p,Match-heading:w,Match-heading:p
melm 216 Trademark:w,Trademark:p,Conference-name:w,Conference-name:p,Heading:w,Heading:p,Match:w,Match:p,Match-heading:w,Match-heading:p
melm 416 Trademark-see:w,Trademark-see:p,Conference-name-see:w,Conference-name-see:p,See:w,See:p,Match:w,Match:p,Match-heading-see-from:w,Match-heading-see-from:p
melm 516 Trademark-see-also:w,Trademark-see-also:p,Conference-name-see-also:w,Conference-name-see-also:p,See-also:w,See-also:p,Match:w,Match:p
melm 216$a Trademark-heading:w,Trademark-heading:p,Trademark-heading:s,Trademark:w,Trademark:p,Heading:w,Heading:p,Heading:s,Heading-Main:w,Heading-Main:p,Heading-Main:s,Match:w,Match:p,Match-heading:w,Match-heading:p
melm 216 Trademark:w,Trademark:p,Heading:w,Heading:p,Match:w,Match:p,Match-heading:w,Match-heading:p
melm 416 Trademark-see:w,Trademark-see:p,See:w,See:p,Match:w,Match:p,Match-heading-see-from:w,Match-heading-see-from:p
melm 516 Trademark-see-also:w,Trademark-see-also:p,See-also:w,See-also:p,Match:w,Match:p
melm 716 Trademark-parallel:w,Trademark-parallel:p,Parallel:w,Parallel:p,Match:w,Match:p
# Family Name
@ -58,21 +73,22 @@ melm 430 Title-uniform-see:w,Title-uniform-see:p,See:w,See:p,Match:w,Match:p,Mat
melm 530 Title-uniform-see-also:w,Title-uniform-see-also:p,See-also:w,See-also:p,Match:w,Match:p
melm 730$a Title-uniform-parallel:w,Title-uniform-parallel:p,Parallel:w,Parallel:p,Match:w,Match:p
# Second area for uniform titles in UNIMARC?
# Collective Uniform Title
melm 235$a Title-uniform-heading:w,Title-uniform-heading:p,Title-uniform-heading:s,Title-uniform:w,Title-uniform:p,Heading:w,Heading:p,Heading:s,Heading-Main:w,Heading-Main:p,Heading-Main:s,Match:w,Match:p,Match-heading:w,Match-heading:p
melm 235 Title-uniform:w,Title-uniform:p,Heading:w,Heading:p,Match:w,Match:p,Match-heading:w,Match-heading:p
melm 435 Title-uniform-see:w,Title-uniform-see:p,See:w,See:p,Match:w,Match:p,Match-heading-see-from:w,Match-heading-see-from:p
melm 535 Title-uniform-see-also:w,Title-uniform-see-also:p,See-also:w,See-also:p,Match:w,Match:p
melm 735$a Title-uniform-parallel:w,Title-uniform-parallel:p,Parallel:w,Parallel:p,Match:w,Match:p
# Uniform Title
# Name and Title
melm 240$a Name-Title-heading:w,Name-Title-heading:p,Name-Title-heading:s,Name-Title:w,Name-Title:p,Heading:w,Heading:p,Heading:s,Heading-Main:w,Heading-Main:p,Heading-Main:s,Match:w,Match:p,Match-heading:w,Match-heading:p
melm 240 Name-Title:w,Name-Title:p,Heading:w,Heading:p,Match:w,Match:p,Match-heading:w,Match-heading:p
melm 440 Name-Title-see:w,Name-Title-see:p,See:w,See:p,Match:w,Match:p,Match-heading-see-from:w,Match-heading-see-from:p
melm 540 Name-Title-see-also:w,Name-Title-see-also:p,See-also:w,See-also:p,Match:w,Match:p
melm 740$a Name-Title-parallel:w,Name-Title-parallel:p,Parallel:w,Parallel:p,Match:w,Match:p
# Second area for uniform titles in UNIMARC?
# Name and Collective Title
# FIXME maybe use Name-Title index?
melm 245$a Title-uniform-heading:w,Title-uniform-heading:p,Title-uniform-heading:s,Title-uniform:w,Title-uniform:p,Heading:w,Heading:p,Heading:s,Heading-Main:w,Heading-Main:p,Heading-Main:s,Match:w,Match:p,Match-heading:w,Match-heading:p
melm 245 Title-uniform:w,Title-uniform:p,Heading:w,Heading:p,Match:w,Match:p,Match-heading:w,Match-heading:p
melm 445 Title-uniform-see:w,Title-uniform-see:p,See:w,See:p,Match:w,Match:p,Match-heading-see-from:w,Match-heading-see-from:p
@ -101,26 +117,39 @@ melm 580 Form-see-also:w,Form-see-also:p,See-also:w,See-also:p,Match:w,Match:p
melm 780$a Form-parallel:w,Form-parallel:p,Parallel:w,Parallel:p,Match:w,Match:p
# NOTE: subdivisions management missing from Koha
# Not in UNIMARC?
# FIXME: manage subdivisions ($j,$x,$y,$z)
# General Subdivision
# melm 180 Subject-subdivision,Heading:w,Heading:p,Heading:s
# Subject-subdivision,Heading:w,Heading:p,Heading:s
# Geographic Subdivision
# melm 181 Geographic-subdivision,Heading:w,Heading:p,Heading:s
# Geographic-subdivision,Heading:w,Heading:p,Heading:s
# Chronological Subdivision
# melm 182 Chronological-subdivision,Heading:w,Heading:p,Heading:s
# Chronological-subdivision,Heading:w,Heading:p,Heading:s
# Form Subdivision
# melm 185 Form-subdivision,Heading:w,Heading:p,Heading:s
melm 300$a Note
# Form-subdivision,Heading:w,Heading:p,Heading:s
# 300 Information note
melm 300$a Note:w,Note:p
# 305 "See also" reference note
melm 305$a Note:w,Note:p
# 310 "See" reference note
melm 310$a Note:w,Note:p
# 320 General explanatory reference note
melm 320$a Note:w,Note:p
# 330 General scope note
melm 330$a Note:w,Note:p
# 340 Biography and activity note
melm 340$a Note:w,Note:p
# 356 Geographical note
melm 356$a Note:w,Note:p
#FIXME Notes not defined in format. Keeping them for the moment
melm 301$a Note
melm 302$a Note
melm 303$a Note
melm 304$a Note
melm 305$a Note
melm 306$a Note
melm 307$a Note
melm 308$a Note
melm 310$a Note
melm 311$a Note
melm 312$a Note
melm 313$a Note
@ -129,7 +158,6 @@ melm 315$a Note
melm 316$a Note
melm 317$a Note
melm 318$a Note
melm 320$a Note
melm 321$a Note
melm 322$a Note
melm 323$a Note
@ -138,9 +166,8 @@ melm 325$a Note
melm 326$a Note
melm 327$a Note
melm 328$a Note
melm 330$a Note
melm 332$a Note
melm 333$a Note
melm 336$a Note
melm 337$a Note
melm 345$a Note
melm 345$a Note