Skip to main content
ExLibris
  • Subscribe by RSS
  • Ex Libris Knowledge Center

    Configure Universal Viewer to download original file

    • Product: Rosetta
    • Product Version: 6.1

     

    Question

    How do I enable the option to download the original file (high resolution), in addition to the rendered image in IIIF Universal Viewer?

     

    Resolution

    To allow this option in Rosetta 6.1, 

    make sure that mets2manifest.xsl configuration file is configured properly.

    If you customized the file before running the service pack installation, your changes will be kept so you will not have the new version automatically.

    To edit it manually, go to

    Rosetta Management > Deposits: Delivery XSL Files > mets2manifest.xsl

    and edit it based on the new version of mets2manifest.xsl below. 

     

    You can also find the new version of mets2manifest.xsl on the server under /exlibris/dps/d4_1/system.dir/conf

     

    <?xml version="1.0" encoding="ISO-8859-1"?>

    <xsl:stylesheet version="2.0"

        xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

          xmlns:mets="http://www.loc.gov/METS/"

          xmlns:dc="http://purl.org/dc/elements/1.1/"

          xmlns:dcterms="http://purl.org/dc/terms/"

          xmlns:dnx="http://www.exlibrisgroup.com/dps/dnx">

          <xsl:output method="html" omit-xml-declaration="yes"/>

          <xsl:param name="isDownloadFile" />

          <xsl:variable name="PID"

          select="/mets:mets/mets:amdSec[@ID=$IE_AMD_ID]/mets:techMD/mets:mdWrap/mets:xmlData/dnx:dnx/dnx:section[@id='internalIdentifier']/dnx:record[dnx:key[@id='internalIdentifierType']='PID']/dnx:key[@id='internalIdentifierValue']" />

          <xsl:variable name="CONTEXT">"@context" : "http://iiif.io/api/presentation/2/context.json"</xsl:variable>

        <xsl:variable name="SERVICE_CONTEXT">"@context" : "http://iiif.io/api/image/2/context.json"</xsl:variable>

          <xsl:variable name="ID">"@id" : "</xsl:variable>

          <xsl:variable name="TYPE">"@type" : "</xsl:variable>

          <xsl:variable name="ON">"on" : "</xsl:variable>

          <xsl:variable name="DELIVERY_BASE_URL">baseURLPlaceHolderdelivery/</xsl:variable>

          <xsl:variable name="DOWNLOAD_FUNC">downloadFileFunc</xsl:variable>

          <xsl:variable name="IMAGE_SERVER_BASE_URL">imageServerBaseURLPlaceHolder</xsl:variable>

        <xsl:variable name="UI_CUSTOMIZATION">UIcustomizatioIDplaceHolder</xsl:variable>

          <xsl:variable name="URI_PREFIX">iiif/presentation/2.1/</xsl:variable>

          <xsl:variable name="IMAGE_SERVER_PREFIX">cantaloupe/iiif/2/</xsl:variable>

          <xsl:variable name="DVS">DVSplaceHolder</xsl:variable>

          <xsl:variable name="OBJECT_TYPE_IE">IE</xsl:variable>

          <xsl:variable name="OBJECT_TYPE_REPRESENTATION">REP</xsl:variable>

          <xsl:variable name="OBJECT_TYPE_FILE">FILE</xsl:variable>

          <xsl:variable name="LABEL">"label" : "</xsl:variable>

          <xsl:variable name="VALUE">"value" : "</xsl:variable>

          <xsl:variable name="IE_AMD_ID">ie-amd</xsl:variable>

          <xsl:variable name="IE_DMD_ID">ie-dmd</xsl:variable>

          <xsl:variable name="DESCRIPTION">"description": "</xsl:variable>

          <xsl:variable name="ATTRIBUTION">"attribution": "</xsl:variable>

          <xsl:variable name="METADATA">"metadata": [</xsl:variable>

          <xsl:variable name="LOGO">"logo": "</xsl:variable>

          <xsl:variable name="LICENSE">"license": "</xsl:variable>

          <xsl:variable name="THUMBNAIL">"thumbnail": "</xsl:variable>

          <xsl:variable name="MOTIVATION">"motivation": "sc:painting",</xsl:variable>

          <xsl:variable name="VIEWING_DIRECTION">"viewingDirection": </xsl:variable>

          <xsl:variable name="VIEWING_HINT">"viewingHint": </xsl:variable>

          <xsl:variable name="WIDTH">"width": </xsl:variable>

          <xsl:variable name="HEIGHT">"height": </xsl:variable>

          <xsl:variable name="WIDTH_PLACE_HOLDER">"widthPlaceholder</xsl:variable>

          <xsl:variable name="HEIGHT_PLACE_HOLDER">"heightPlaceholder</xsl:variable>

          <xsl:variable name="INFO_JSON">/info.json</xsl:variable>

          <xsl:variable name="FILE_FORMAT">"format": "</xsl:variable>

          <xsl:variable name="PROFILE">"profile": "http://iiif.io/api/image/2/level1.json" }</xsl:variable>

     

          <xsl:template match="/">

                {

                <xsl:call-template name="MANIFEST" />

                <xsl:call-template name="SEQUENCES" />

                <xsl:call-template name="RANGES" />

                }

          </xsl:template>

     

          <xsl:template name="IE_PROPERTY">

                <xsl:param name="DC_FIELD_NAME" />

                <xsl:param name="DCTERMS_FIELD_NAME" />

                <xsl:choose>

                      <xsl:when test="/mets:mets/mets:dmdSec[@ID=$IE_DMD_ID]/mets:mdWrap/mets:xmlData/dc:record/*[name()=$DC_FIELD_NAME]">

                            <xsl:value-of select="/mets:mets/mets:dmdSec[@ID=$IE_DMD_ID]/mets:mdWrap/mets:xmlData/dc:record/*[name()=$DC_FIELD_NAME]" />

                      </xsl:when>

                      <xsl:when test="(//mets:dmdSec[@ID=$IE_DMD_ID]/mets:mdWrap/mets:xmlData/dc:record/*[name()=$DCTERMS_FIELD_NAME])[1]">

                            <xsl:value-of select="(//mets:dmdSec[@ID=$IE_DMD_ID]/mets:mdWrap/mets:xmlData/dc:record/*[name()=$DCTERMS_FIELD_NAME])[1]" />

                      </xsl:when>

                      <xsl:otherwise></xsl:otherwise>

                </xsl:choose>

          </xsl:template>

     

          <xsl:template name="IE_METADATA">

                <xsl:for-each select="/mets:mets/mets:dmdSec[@ID=$IE_DMD_ID]/mets:mdWrap/mets:xmlData/dc:record/dc:creator |

                                      /mets:mets/mets:dmdSec[@ID=$IE_DMD_ID]/mets:mdWrap/mets:xmlData/dc:record/dcterms:creator ">

                      {<xsl:value-of select="$LABEL" />Author", <xsl:value-of select="$VALUE" />

                      <xsl:value-of select="." />"}

                <xsl:if test="position()!=last() or count(//dc:subject) > 0 or count(//dcterms:subject) > 0">, </xsl:if>

                </xsl:for-each>

                <xsl:for-each select="/mets:mets/mets:dmdSec[@ID=$IE_DMD_ID]/mets:mdWrap/mets:xmlData/dc:record/dc:subject |

                                      /mets:mets/mets:dmdSec[@ID=$IE_DMD_ID]/mets:mdWrap/mets:xmlData/dc:record/dcterms:subject">

                      {<xsl:value-of select="$LABEL" />Subject", <xsl:value-of select="$VALUE" />

                 <xsl:value-of select="." />"}

             <xsl:if test="position()!=last()">, </xsl:if>

                </xsl:for-each>

                ]

          </xsl:template>

     

          <xsl:template name="MANIFEST">

                <xsl:value-of select="$CONTEXT" />,

                <xsl:value-of select="$ID" /><xsl:value-of select="$DELIVERY_BASE_URL" /><xsl:value-of select="$URI_PREFIX" /><xsl:value-of select="$PID" />/manifest",

                <xsl:value-of select="$TYPE" />sc:Manifest",

                <xsl:value-of select="$LABEL" />

                <xsl:call-template name="IE_PROPERTY">

                      <xsl:with-param name="DC_FIELD_NAME" select='"dc:title"' />

                      <xsl:with-param name="DCTERMS_FIELD_NAME" select='"dcterms:title"' />

                </xsl:call-template>",

                <xsl:value-of select="$DESCRIPTION" />

                <xsl:call-template name="IE_PROPERTY">

                      <xsl:with-param name="DC_FIELD_NAME" select='"dc:description"' />

                      <xsl:with-param name="DCTERMS_FIELD_NAME" select='"dcterms:description"' />

                </xsl:call-template>",

                <xsl:value-of select="$ATTRIBUTION" />

                <xsl:call-template name="IE_PROPERTY">

                      <xsl:with-param name="DC_FIELD_NAME" select='"dc:rights"' />

                      <xsl:with-param name="DCTERMS_FIELD_NAME" select='"dcterms:rights"' />

                </xsl:call-template>",

                <xsl:value-of select="$METADATA" />

                <xsl:call-template name="IE_METADATA" />,

     

                <xsl:choose>

                      <xsl:when

                            test="/mets:mets/mets:amdSec[@ID='ie-amd']/mets:techMD[@ID='ie-amd-tech']/mets:mdWrap/mets:xmlData/dnx:dnx/dnx:section[@id='objectCharacteristics']/dnx:record/dnx:key[@id='owner']">

                            <xsl:value-of select="$LOGO" /><xsl:value-of select="$DELIVERY_BASE_URL" />images/<xsl:value-of select="$UI_CUSTOMIZATION" />/logo-main.png",

                            <xsl:value-of select="$LICENSE" /><xsl:value-of select="$DELIVERY_BASE_URL" />general/termsofuse.jsp?dps_dvs=DVSplaceHolder",

                      </xsl:when>

                      <xsl:otherwise>

                            <xsl:value-of select="$LOGO" /><xsl:value-of select="$DELIVERY_BASE_URL" />images/1/logo-main.png",

                            <xsl:value-of select="$LICENSE" /><xsl:value-of select="$DELIVERY_BASE_URL" />general/termsofuse.jsp",

                      </xsl:otherwise>

                </xsl:choose>

     

                <xsl:value-of select="$THUMBNAIL" /><xsl:value-of select="$DELIVERY_BASE_URL" />DeliveryManagerServlet?dps_pid=<xsl:value-of select="$PID" />&amp;dps_func=thumbnail",

          </xsl:template>

     

          <xsl:template name="SEQUENCES">

                "sequences": [{

                <xsl:variable name="REP_ID">

                      <xsl:value-of select="/mets:mets/mets:fileSec/mets:fileGrp/@ID" />

                </xsl:variable>

                <xsl:variable name="HAS_PHYSICAL_SM" select="count(/mets:mets/mets:structMap[@TYPE='PHYSICAL']) > 0" />

                <xsl:variable name="VIEWING_DIRECTION_VALUE">

                      <xsl:choose>

                            <xsl:when test="/mets:mets/mets:dmdSec[@ID='ie-dmd']/mets:mdWrap/mets:xmlData/dc:record/dc:language='heb'">

                                  "right-to-left"

                            </xsl:when>

                            <xsl:when test="/mets:mets/mets:dmdSec[@ID='ie-dmd']/mets:mdWrap/mets:xmlData/dc:record/dc:language='ara'">

                                  "right-to-left"

                            </xsl:when>

                            <xsl:when test="/mets:mets/mets:dmdSec[@ID='ie-dmd']/mets:mdWrap/mets:xmlData/dc:record/dc:language='chi'">

                                  "top-to-bottom"

                            </xsl:when>

                            <xsl:otherwise>

                                  "left-to-right"

                            </xsl:otherwise>

                      </xsl:choose>

                </xsl:variable>

                <xsl:variable name="VIEWING_HINT_VALUE">

                      <xsl:choose>

                            <xsl:when

                                  test="/mets:mets/mets:amdSec[@ID='ie-amd']/mets:techMD[@ID='ie-amd-tech']/mets:mdWrap/mets:xmlData/dnx:dnx/dnx:section[@id='generalIECharacteristics']/dnx:record/dnx:key[@id='IEEntityType']='Book'">

                                  "paged",

                            </xsl:when>

                            <xsl:otherwise>

                                  "individuals",

                            </xsl:otherwise>

                      </xsl:choose>

                </xsl:variable>

                <xsl:value-of select="$ID" /><xsl:value-of select="$DELIVERY_BASE_URL" /><xsl:value-of select="$URI_PREFIX" /><xsl:value-of select="$PID" />/sequence/<xsl:value-of select="$REP_ID" />",

                <xsl:value-of select="$TYPE" />sc:Sequence",

                <xsl:value-of select="$LABEL" />

                <xsl:choose>

                      <xsl:when test="$HAS_PHYSICAL_SM = true()">

                            <xsl:value-of select="/mets:mets/mets:structMap[@TYPE='PHYSICAL']/mets:div/mets:div/@LABEL" />",

                      </xsl:when>

                      <xsl:otherwise>

                            <xsl:value-of

                                  select="/mets:mets/mets:amdSec[@ID=concat($REP_ID,'-amd')]/mets:techMD[@ID=concat($REP_ID,'-amd-tech')]/mets:mdWrap/mets:xmlData/dnx:dnx/dnx:section[@id='generalRepCharacteristics']/dnx:record/dnx:key[@id='label']" />",

                      </xsl:otherwise>

                </xsl:choose>

                <xsl:value-of select="$VIEWING_DIRECTION" /><xsl:value-of select="$VIEWING_DIRECTION_VALUE" />,

                <xsl:value-of select="$VIEWING_HINT" /><xsl:value-of select="$VIEWING_HINT_VALUE" />

                "canvases": [

                <xsl:choose>

                      <xsl:when test="$HAS_PHYSICAL_SM = true()">

                            <xsl:for-each select="//mets:structMap[@TYPE='PHYSICAL']/mets:div/mets:div/mets:div[@TYPE='FILE']">

                                  {

                                  <xsl:variable name="FILEID" select="./mets:fptr/@FILEID" />

                                  <xsl:variable name="FILE_LABEL_LABEL"

                                        select="/mets:mets/mets:amdSec[@ID=concat($FILEID,'-amd')]/mets:techMD[@ID=concat($FILEID,'-amd-tech')]/mets:mdWrap/mets:xmlData/dnx:dnx/dnx:section[@id='generalFileCharacteristics']/dnx:record/dnx:key[@id='label']/text()" />

                                  <xsl:variable name="FILE_LABEL_NAME"

                                        select="(/mets:mets/mets:amdSec[@ID=concat($FILEID,'-amd')]/mets:techMD[@ID=concat($FILEID,'-amd-tech')]/mets:mdWrap/mets:xmlData/dnx:dnx/dnx:section[@id='generalFileCharacteristics']/dnx:record/dnx:key[@id='fileOriginalName'])[1]/text()" />

                            <xsl:variable name="FILE_SM_LABEL" select="//mets:div/@LABEL[./mets:fptr/@FILEID=$FILEID]" />

                                  <xsl:call-template name="CANVAS">

                                        <xsl:with-param name="FILE_ID" select="$FILEID" />

                                        <xsl:with-param name="FILE_LABEL">

                                              <xsl:choose>

                                                    <xsl:when test="$FILE_SM_LABEL">

                                                          <xsl:value-of select="$FILE_SM_LABEL" />

                                                    </xsl:when>

                                                    <xsl:when test="$FILE_LABEL_LABEL">

                                                          <xsl:value-of select="$FILE_LABEL_LABEL" />

                                                    </xsl:when>

                                                    <xsl:when test="$FILE_LABEL_NAME">

                                                          <xsl:value-of select="$FILE_LABEL_NAME" />

                                                    </xsl:when>

                                                    <xsl:otherwise></xsl:otherwise>

                                              </xsl:choose>

                                        </xsl:with-param>

                                  </xsl:call-template>

                            </xsl:for-each>

                      </xsl:when>

                      <xsl:otherwise>

                            <xsl:for-each select="//mets:fileGrp/mets:file">

                                  {

                                  <xsl:variable name="FILEID" select="./@ID" />

                                  <xsl:variable name="FILE_LABEL_LABEL"

                                        select="/mets:mets/mets:amdSec[@ID=concat($FILEID,'-amd')]/mets:techMD[@ID=concat($FILEID,'-amd-tech')]/mets:mdWrap/mets:xmlData/dnx:dnx/dnx:section[@id='generalFileCharacteristics']/dnx:record/dnx:key[@id='label']/text()" />

                                  <xsl:variable name="FILE_LABEL_NAME"

                                        select="(/mets:mets/mets:amdSec[@ID=concat($FILEID,'-amd')]/mets:techMD[@ID=concat($FILEID,'-amd-tech')]/mets:mdWrap/mets:xmlData/dnx:dnx/dnx:section[@id='generalFileCharacteristics']/dnx:record/dnx:key[@id='fileOriginalName'])[1]/text()" />

                                  <xsl:call-template name="CANVAS">

                                        <xsl:with-param name="FILE_ID" select="$FILEID" />

                                        <xsl:with-param name="FILE_LABEL">

                                              <xsl:choose>

                                                    <xsl:when test="$FILE_LABEL_LABEL">

                                                          <xsl:value-of select="$FILE_LABEL_LABEL" />

                                                    </xsl:when>

                                                    <xsl:when test="$FILE_LABEL_NAME">

                                                          <xsl:value-of select="$FILE_LABEL_NAME" />

                                                    </xsl:when>

                                                    <xsl:otherwise></xsl:otherwise>

                                              </xsl:choose>

                                        </xsl:with-param>

                                  </xsl:call-template>

                            </xsl:for-each>

                      </xsl:otherwise>

                </xsl:choose>

          </xsl:template>

     

          <xsl:template name="CANVAS">

                <xsl:param name="FILE_ID" />

                <xsl:param name="FILE_LABEL" />

                <xsl:variable name="HEIGHT_VALUE"

                      select="/mets:mets/mets:amdSec[@ID=concat($FILE_ID,'-amd')]/mets:techMD[@ID=concat($FILE_ID,'-amd-tech')]/mets:mdWrap/mets:xmlData/dnx:dnx/dnx:section/dnx:record[dnx:key[@id='significantPropertiesType']='nisoImage.imageLength']/dnx:key[@id='significantPropertiesValue']" />

                <xsl:variable name="WIDTH_VALUE"

                      select="/mets:mets/mets:amdSec[@ID=concat($FILE_ID,'-amd')]/mets:techMD[@ID=concat($FILE_ID,'-amd-tech')]/mets:mdWrap/mets:xmlData/dnx:dnx/dnx:section/dnx:record[dnx:key[@id='significantPropertiesType']='nisoImage.imageWidth']/dnx:key[@id='significantPropertiesValue']" />

                <xsl:variable name="FILE_EXTANSION"

                      select="/mets:mets/mets:amdSec[@ID=concat($FILE_ID,'-amd')]/mets:techMD[@ID=concat($FILE_ID,'-amd-tech')]/mets:mdWrap/mets:xmlData/dnx:dnx/dnx:section[@id='generalFileCharacteristics']/dnx:record/dnx:key[@id='fileExtension']" />

                <xsl:variable name="FILE_FORMAT_VALUE"

                      select="/mets:mets/mets:amdSec[@ID=concat($FILE_ID,'-amd')]/mets:techMD[@ID=concat($FILE_ID,'-amd-tech')]/mets:mdWrap/mets:xmlData/dnx:dnx/dnx:section[@id='generalFileCharacteristics']/dnx:record/dnx:key[@id='fileMIMEType']" />

                <xsl:variable name="FILE_SIZE_VALUE"

                      select="/mets:mets/mets:amdSec[@ID=concat($FILE_ID,'-amd')]/mets:techMD[@ID=concat($FILE_ID,'-amd-tech')]/mets:mdWrap/mets:xmlData/dnx:dnx/dnx:section[@id='generalFileCharacteristics']/dnx:record/dnx:key[@id='fileSizeBytes']" />

                <xsl:value-of select="$CONTEXT" />,

                <xsl:value-of select="$ID" /><xsl:value-of select="$DELIVERY_BASE_URL" /><xsl:value-of select="$URI_PREFIX" /><xsl:value-of select="$PID" />/canvas/<xsl:value-of select="$FILE_ID" />",

                <xsl:value-of select="$TYPE" />sc:Canvas",

                <xsl:value-of select="$LABEL" /><xsl:value-of select="$FILE_LABEL" />",

                <xsl:if test="$isDownloadFile = true()">

                      "rendering": [{

                            <xsl:value-of select="$ID" /><xsl:value-of select="$DELIVERY_BASE_URL" />DeliveryManagerServlet?dps_pid=<xsl:value-of select="$FILE_ID" /><xsl:value-of select="$DOWNLOAD_FUNC" />",

                            <xsl:value-of select="$FILE_FORMAT" /><xsl:value-of select="$FILE_FORMAT_VALUE" />",

                            <xsl:value-of select="$LABEL" />Original file - <xsl:value-of select="format-number($FILE_SIZE_VALUE div 1024 div 1024,'###,###,##0.00')"/>MB"                     

                      }],

                </xsl:if>

                <xsl:value-of select="$THUMBNAIL" /><xsl:value-of select="$DELIVERY_BASE_URL" />DeliveryManagerServlet?dps_pid=<xsl:value-of select="$FILE_ID" />&amp;dps_func=thumbnail",

                <xsl:value-of select="$HEIGHT" />

    <xsl:choose>

      <xsl:when test="$HEIGHT_VALUE">

          <xsl:value-of select="$HEIGHT_VALUE" />,

            </xsl:when>

            <xsl:otherwise>

             <xsl:value-of select="$HEIGHT_PLACE_HOLDER" /><xsl:value-of select="$IMAGE_SERVER_BASE_URL" /><xsl:value-of select="$IMAGE_SERVER_PREFIX" /><xsl:value-of select="$PID" />:<xsl:value-of select="$FILE_ID" />.<xsl:value-of select="$FILE_EXTANSION" /><xsl:value-of select="$INFO_JSON" />",

            </xsl:otherwise>

    </xsl:choose>

     

    <xsl:value-of select="$WIDTH" />

    <xsl:choose>

      <xsl:when test="$WIDTH_VALUE">

          <xsl:value-of select="$WIDTH_VALUE" />,

            </xsl:when>

            <xsl:otherwise>

             <xsl:value-of select="$WIDTH_PLACE_HOLDER" /><xsl:value-of select="$IMAGE_SERVER_BASE_URL" /><xsl:value-of select="$IMAGE_SERVER_PREFIX" /><xsl:value-of select="$PID" />:<xsl:value-of select="$FILE_ID" />.<xsl:value-of select="$FILE_EXTANSION" /><xsl:value-of select="$INFO_JSON" />",

            </xsl:otherwise>

    </xsl:choose>

                "images": [{

                <xsl:value-of select="$CONTEXT" />,

                <xsl:value-of select="$ID" /><xsl:value-of select="$DELIVERY_BASE_URL" /><xsl:value-of select="$URI_PREFIX" /><xsl:value-of select="$PID" />/annotation/<xsl:value-of select="$FILE_ID" />",

                <xsl:value-of select="$TYPE" />oa:Annotation",

                <xsl:value-of select="$MOTIVATION" />

                "resource": {

                <xsl:value-of select="$ID" /><xsl:value-of select="$DELIVERY_BASE_URL" /><xsl:value-of select="$URI_PREFIX" /><xsl:value-of select="$PID" />/res/<xsl:value-of select="$FILE_ID" />.<xsl:value-of select="$FILE_EXTANSION" />",

                <xsl:value-of select="$TYPE" />dctypes:Image",

                <xsl:value-of select="$FILE_FORMAT" /><xsl:value-of select="$FILE_FORMAT_VALUE" />",

                "service": {

                <xsl:value-of select="$SERVICE_CONTEXT" />,

                <xsl:value-of select="$ID" /><xsl:value-of select="$IMAGE_SERVER_BASE_URL" /><xsl:value-of select="$IMAGE_SERVER_PREFIX" /><xsl:value-of select="$DVS" />:<xsl:value-of select="$FILE_ID" />.<xsl:value-of select="$FILE_EXTANSION" />",

                <xsl:value-of select="$PROFILE" />,

                <xsl:value-of select="$HEIGHT" />

    <xsl:choose>

      <xsl:when test="$HEIGHT_VALUE">

          <xsl:value-of select="$HEIGHT_VALUE" />,

            </xsl:when>

            <xsl:otherwise>

             <xsl:value-of select="$HEIGHT_PLACE_HOLDER" /><xsl:value-of select="$IMAGE_SERVER_BASE_URL" /><xsl:value-of select="$IMAGE_SERVER_PREFIX" /><xsl:value-of select="$PID" />:<xsl:value-of select="$FILE_ID" />.<xsl:value-of select="$FILE_EXTANSION" /><xsl:value-of select="$INFO_JSON" />",

            </xsl:otherwise>

    </xsl:choose>

     

    <xsl:value-of select="$WIDTH" />

    <xsl:choose>

      <xsl:when test="$WIDTH_VALUE">

          <xsl:value-of select="$WIDTH_VALUE" />

            </xsl:when>

            <xsl:otherwise>

             <xsl:value-of select="$WIDTH_PLACE_HOLDER" /><xsl:value-of select="$IMAGE_SERVER_BASE_URL" /><xsl:value-of select="$IMAGE_SERVER_PREFIX" /><xsl:value-of select="$PID" />:<xsl:value-of select="$FILE_ID" />.<xsl:value-of select="$FILE_EXTANSION" /><xsl:value-of select="$INFO_JSON" />"

            </xsl:otherwise>

    </xsl:choose>

                       },

                <xsl:value-of select="$ON" /><xsl:value-of select="$DELIVERY_BASE_URL" /><xsl:value-of select="$URI_PREFIX" /><xsl:value-of select="$PID" />/canvas/<xsl:value-of select="$FILE_ID" />"

                     }

                  ]

                 }

                <xsl:if test="position()!=last()">,

                </xsl:if>

          </xsl:template>

          <xsl:template name="RANGES">

                   ]

                  }

                ],

                "structures": [

                <xsl:for-each select="/mets:mets/mets:structMap[@TYPE='LOGICAL']/mets:div/mets:div">

                      <xsl:choose>

                      <xsl:when test="not(./@TYPE='FILE')">

                      <xsl:call-template name="RANGE">

                            <xsl:with-param name="RANGE_ID" select="/mets:mets/mets:fileSec/mets:fileGrp/@ID" />

                      </xsl:call-template>

                      </xsl:when>

                      <xsl:otherwise>

                       {<xsl:value-of select="$ID" /><xsl:value-of select="$DELIVERY_BASE_URL" /><xsl:value-of select="$URI_PREFIX" /><xsl:value-of select="$PID" />/canvas/<xsl:value-of select="./mets:fptr/@FILEID" />",

                            <xsl:value-of select="$TYPE" />sc:Canvas",

                        <xsl:value-of select="$LABEL" /><xsl:value-of select="@LABEL" />"

                      </xsl:otherwise>

                      </xsl:choose>}

                                  <xsl:if test="position()!=last()">, </xsl:if>

                </xsl:for-each>

                ]

          </xsl:template>

     

          <xsl:template name="RANGE">

                <xsl:param name="RANGE_ID" />

                {<xsl:value-of select="$ID" /><xsl:value-of select="$DELIVERY_BASE_URL" /><xsl:value-of select="$URI_PREFIX" /><xsl:value-of select="$PID" />/range/<xsl:value-of select="$RANGE_ID" />",

                <xsl:value-of select="$TYPE" />sc:Range",

                <xsl:value-of select="$LABEL" /><xsl:value-of select="./@LABEL" />",

                <xsl:choose>

                      <xsl:when test="./mets:div/@TYPE='FILE'">

                            "canvases": [

                            <xsl:for-each select="./mets:div">

                                  "<xsl:value-of select="$DELIVERY_BASE_URL" /><xsl:value-of select="$URI_PREFIX" /><xsl:value-of select="$PID" />/canvas/<xsl:value-of select="./mets:fptr/@FILEID" />"

                                  <xsl:if test="position()!=last()">, </xsl:if>

                            </xsl:for-each>

                            ],

                            "members": [

                            <xsl:for-each select="./mets:div">

                                  {

                                  <xsl:value-of select="$ID" /><xsl:value-of select="$DELIVERY_BASE_URL" /><xsl:value-of select="$URI_PREFIX" /><xsl:value-of select="$PID" />/canvas/<xsl:value-of select="./mets:fptr/@FILEID" />",

                                  <xsl:value-of select="$TYPE" />sc:Canvas",

                                  <xsl:value-of select="$LABEL" /><xsl:value-of select="@LABEL" />"}

                                  <xsl:if test="position()!=last()">, </xsl:if>

                            </xsl:for-each>

                            ]

                      </xsl:when>

                      <xsl:otherwise>

                            "ranges": [

                            <xsl:for-each select="./mets:div">

                            "<xsl:value-of select="$DELIVERY_BASE_URL" /><xsl:value-of select="$URI_PREFIX" /><xsl:value-of select="$PID" />/range/<xsl:value-of select="concat($RANGE_ID,'-',position())" />"

                                  <xsl:if test="position()!=last()">, </xsl:if>

                            </xsl:for-each>

                            ],

                            "members": [

                            <xsl:for-each select="./mets:div">

                                  {

                                  <xsl:value-of select="$ID" /><xsl:value-of select="$DELIVERY_BASE_URL" /><xsl:value-of select="$URI_PREFIX" /><xsl:value-of select="$PID" />/range/<xsl:value-of select="concat($RANGE_ID,'-',position())" />",

                                  <xsl:value-of select="$TYPE" />sc:Range",

                                  <xsl:value-of select="$LABEL" /><xsl:value-of select="@LABEL" />"}

                                  <xsl:if test="position()!=last()">, </xsl:if>

                            </xsl:for-each>

                            ]

                            <xsl:for-each select="./mets:div">

                                    } ,<xsl:call-template name="RANGE">

                                        <xsl:with-param name="RANGE_ID" select="concat($RANGE_ID,'-',position())" />

                                  </xsl:call-template>

                            </xsl:for-each>

                      </xsl:otherwise>

                </xsl:choose>

          </xsl:template>

     

    </xsl:stylesheet>

     


    • Article last edited: 24-Jun-2019
    • Was this article helpful?