<xsl:template name="display">
<xsl:param name="availinstitution" as="xs:string?"/>
<xsl:param name="availlibrary" as="xs:string?"/>
<xsl:param name="availpnx" as="xs:string?"/>
<xsl:param name="contributor" as="xs:string?"/>
<xsl:param name="coverage" as="xs:string?"/>
<xsl:param name="creationdate" as="xs:string?"/>
<xsl:param name="creator" as="xs:string?"/>
<xsl:param name="description" as="xs:string*"/>
<xsl:param name="crsinfo" as="xs:string?"/>
<xsl:param name="edition" as="xs:string?"/>
<xsl:param name="format" as="xs:string?"/>
<xsl:param name="identifier" as="xs:string?"/>
<xsl:param name="ispartof" as="xs:string*"/>
<xsl:param name="language" as="xs:string?"/>
<xsl:param name="oa" as="xs:string?"/>
<xsl:param name="publisher" as="xs:string?"/>
<xsl:param name="relation" as="xs:string?"/>
<xsl:param name="rights" as="xs:string?"/>
<xsl:param name="source" as="xs:string?"/>
<xsl:param name="subject" as="xs:string?"/>
<xsl:param name="title" as="xs:string?"/>
<xsl:param name="type" as="xs:string?"/>
<xsl:param name="unititle" as="xs:string?"/>
<xsl:param name="userrank" as="xs:string?"/>
<xsl:param name="userreview" as="xs:string?"/>
<xsl:param name="vertitle" as="xs:string?"/>
<display>
<xsl:for-each select="$availinstitution[string(.)]">
<availinstitution>
<xsl:value-of select="."/>
</availinstitution>
</xsl:for-each>
<!--The library-level availability status, which includes availability
information per Primo library or sub-location, in addition to location
information. The field is structured with subfields as follows: *$$I —
institution code (required) *$$L — library code (required) *$$1 — sub-location
*$$2 — call number *$$S — availability status (available, unavailable,
check_holdings) (required) *$$3 — number of items *$$4 — number of unavailable
items *$$5 — multi-volume flag: Y/N *$$6 — number of loans (for ranking
purposes) *$$9 — indicates that the location represents online material. For
more information, refer to Adding $$9ONLINE to Library Level Availability. *$$X
— source institution code (required for OvP) *$$Y — source library code
(required for OvP) *$$Z — source sublocation code (not required for
OvP)-->
<xsl:for-each select="$availlibrary[string(.)]">
<availlibrary>
<xsl:value-of select="."/>
</availlibrary>
</xsl:for-each>
<!--The availability PNX. Calculated by Primo from all availinstitution
fields in the Display section, using the following logic: Primo takes all
availinstitution fields and merges the availability status from $$S as follows:
*If one of the statuses is check_holdings or available, Primo sets availpnx to
available. *If the above condition does not exist, Primo sets availpnx to
unavailable. This field is used in the UI when filtering by
availability.-->
<xsl:for-each select="$availpnx[string(.)]">
<availpnx>
<xsl:value-of select="."/>
</availpnx>
</xsl:for-each>
<!--The contributor is an entity that is responsible for making a
contribution to the content of the resource. Multiple occurrences are
concatenated with a semicolon. Example of source data: *MARC21: 700/710/711
fields, stripping subfield $$d, and stripping from subfield $$t to the end. It
is possible to reverse the author's last and first name by using a special
routine (for example, Stephans, Mary to Mary Stephans). *The display form of the
contributor also serves as a hyperlink to search for additional records. It is
important that all the strings in the display also be added to the
creatorcontrib field in the Search section.-->
<xsl:for-each select="$contributor[string(.)]">
<contributor>
<xsl:value-of select="."/>
</contributor>
</xsl:for-each>
<!--The extent or scope of the content of the
resource.-->
<xsl:for-each select="$coverage[string(.)]">
<coverage>
<xsl:value-of select="."/>
</coverage>
</xsl:for-each>
<!--The date or year when the resource was created or the year when the
resource was published or manufactured. Multiple occurrences are concatenated
with a semicolon. Example of source data: *MARC21: 008/07-10; 260
$$c.-->
<xsl:for-each select="$creationdate[string(.)]">
<creationdate>
<xsl:value-of select="."/>
</creationdate>
</xsl:for-each>
<!--The content creator is an entity that is responsible for creating
the content of the resource. Multiple occurrences are concatenated with a
semicolon. An example of source data: *MARC21: 245 subfields $$c OR if 245 $$c
is not present, 1XX, stripping subfield $$d, and stripping from subfield $$t to
the end. It is possible to reverse the author's last and first name (for
example, Stephans, Mary to Mary Stephans) by using a special routine. *The
display form of the creator also serves as a hyperlink to search for additional
records. It is important that all the strings in the display also be added to
the creatorcontrib field in the Search section.-->
<xsl:for-each select="$creator[string(.)]">
<creator>
<xsl:value-of select="."/>
</creator>
</xsl:for-each>
<!--The description is any information that describes the content of
the resource. This can be an abstract, contents notes, summary, and so forth.
Multiple occurrences are not concatenated. Example of source data: *MARC21: 502,
505, 520 fields.-->
<xsl:for-each select="$description[string(.)]">
<description>
<xsl:value-of select="."/>
</description>
</xsl:for-each>
<!--Course reserve information.-->
<xsl:for-each select="$crsinfo[string(.)]">
<crsinfo>
<xsl:value-of select="."/>
</crsinfo>
</xsl:for-each>
<!--The edition of the resource. This is one of the fields of the PNX
record that is not derived from Dublin Core. The edition field is a key element
in grouping bibliographic records. Example of source data: *MARC21: 250 $a and
$b.-->
<xsl:for-each select="$edition[string(.)]">
<edition>
<xsl:value-of select="."/>
</edition>
</xsl:for-each>
<!--The physical format—physical description, extent, or digital
manifestation of the resource. Multiple occurrences are concatenated with a
semicolon. Example of source data: *MARC21: 300 and 340 fields. Can also be
created from the control data in the leader and 008, 006
fields.-->
<xsl:for-each select="$format[string(.)]">
<format>
<xsl:value-of select="."/>
</format>
</xsl:for-each>
<!--Any unique identifier of the record. Dublin Core defines this as an
unambiguous reference to the resource within a given context. In the context of
the PNX record, this is intended to be used for standard identifiers like ISBN
and ISSN. Multiple occurrences are concatenated with a semicolon. Examples of
source data (MARC21): *020 $$a: prefix the value with ISBN. *022 $$a: prefix the
value with ISSN.-->
<xsl:for-each select="$identifier[string(.)]">
<identifier>
<xsl:value-of select="."/>
</identifier>
</xsl:for-each>
<xsl:for-each select="$ispartof[string(.)]">
<ispartof>
<xsl:value-of select="."/>
</ispartof>
</xsl:for-each>
<!--The language of the resource. The language is stored in coded form
(ISO 639-2) and is translated in the UI. Multiple occurrences are concatenated
with a semicolon. If the language is not in ISO 639-2 form, the normalization
process attempts to convert it to this form. If this is not possible, the
language is unknown (using the und code). Example of source data: *MARC21:
008/35-37; if blank, use 041 subfield $$a.-->
<xsl:for-each select="$language[string(.)]">
<language>
<xsl:value-of select="."/>
</language>
</xsl:for-each>
<!--Intended for use by Primo Central to indicate whether a record is
open access or not.-->
<xsl:for-each select="$oa[string(.)]">
<oa>
<xsl:value-of select="."/>
</oa>
</xsl:for-each>
<!--An entity that is responsible for making the resource available.
Multiple occurrences are concatenated with a semicolon. Example of source data:
*MARC21: 260 subfields $a and $b.-->
<xsl:for-each select="$publisher[string(.)]">
<publisher>
<xsl:value-of select="."/>
</publisher>
</xsl:for-each>
<!--A reference to a related resource. Multiple occurrences are not
concatenated. Example of source data: *MARC21: 440, 830, 760-787 except for
773.-->
<xsl:for-each select="$relation[string(.)]">
<relation>
<xsl:value-of select="."/>
</relation>
</xsl:for-each>
<!--Information about the rights of the resource.-->
<xsl:for-each select="$rights[string(.)]">
<rights>
<xsl:value-of select="."/>
</rights>
</xsl:for-each>
<!--The source repository from which the record was
derived.-->
<xsl:for-each select="$source[string(.)]">
<source>
<xsl:value-of select="."/>
</source>
</xsl:for-each>
<!--The topic of the resource’s content. Multiple occurrences are
concatenated with a semicolon. Example of source data: *MARC21: 6XX fields *The
display form of the subject also serves as a hyperlink to search for additional
records. It is important that all the strings in the display also be added to
the search index.-->
<xsl:for-each select="$subject[string(.)]">
<subject>
<xsl:value-of select="."/>
</subject>
</xsl:for-each>
<!--The name that is given to a resource. The title can be created from
a number of fields and subfields from the source record. Multiple occurrences
are not concatenated. Example of source data: *MARC21: 245 subfields $$a and
$$b.-->
<xsl:for-each select="$title[string(.)]">
<title>
<xsl:value-of select="."/>
</title>
</xsl:for-each>
<!--The resource type that represents the main format of the record or
the type, based on a master list of main record types. It is recommended to
include only a minimum number of types (~10). Primo sites are able to modify
this list so that it is suited to the content of its repository and its users.
The type is used to determine which icon displays next to the record in the
brief and full results list. Every record must have a single type field. The
default resource type list includes book, journal, article, text_resource
(includes text resources that cannot be identified as a book, journal, or
article), image, video, audio, map, score, and other (includes records that
cannot be classified as any other resource type). Example of source data:
*MARC21: Mapping based on the leader position 6 and the 007 and 008
fields.-->
<xsl:for-each select="$type[string(.)]">
<type>
<xsl:value-of select="."/>
</type>
</xsl:for-each>
<!--The uniform title will be displayed with the title of the resource
when the merged FRBR record is displayed. Example of source data: *MARC21: 240
subfields a, d,m,n, p, r, s-->
<xsl:for-each select="$unititle[string(.)]">
<unititle>
<xsl:value-of select="."/>
</unititle>
</xsl:for-each>
<!--A rank or score that is assigned by the end user for the
resource.-->
<xsl:for-each select="$userrank[string(.)]">
<userrank>
<xsl:value-of select="."/>
</userrank>
</xsl:for-each>
<!--The user review, which is added by the end user.-->
<xsl:for-each select="$userreview[string(.)]">
<userreview>
<xsl:value-of select="."/>
</userreview>
</xsl:for-each>
<!--The vernacular title is used when the record contains both a
transliterated title and a title in the vernacular (as in the MARC format).
Example of source data: *MARC21: 880 with subfield 6 =245 and subfields a and
b.-->
<xsl:for-each select="$vertitle[string(.)]">
<vertitle>
<xsl:value-of select="."/>
</vertitle>
</xsl:for-each>
</display>
</xsl:template> |