14. Appendix

 

14.1. Content models

14.1.1. Salisbury

Figure 21 shows the three Salisbury content models used in our tests. All three models are based on generic BDef objects (web_image and web_default) and use the standard set of methods that come with those objects (get_thumb(), get_med(), etc.). We were testing how well this would work, since it may be easier to have generic BMech objects that can be used by several projects instead of designing and building custom objects for each project.

Figure 21        Salisbury content models

Image Content Model 1 (regular images)

PID

          Disseminators    

Disseminator

Behavior Definition

Behavior Mechanism

web_image_salisbury

web_image

web_image_salisbury

 

get_thumb()

HTTP GET(thumb)

 

get_med()

HTTP GET(fullsize)

 

get_high()

HTTP GET(fullsize)

 

get_veryhigh()

HTTP GET(fullsize)

System Metadata

(none for this example)

Basis

Data streams

basis1

Pointer to thumbnail image

basis2

Pointer to larger image


 

Image Content Model 2 (floor plan images)

PID

          Disseminators    

Disseminator

Behavior Definition

Behavior Mechanism

web_image_salisbury_plan

web_image

web_image_salisbury_plan

 

get_thumb()

HTTP GET(thumb)

 

get_med()

HTTP GET(thumb)

 

get_high()

HTTP GET(thumb)

 

get_veryhigh()

HTTP GET(thumb)

System Metadata

(none for this example)

Basis

Data streams

basis1

Pointer to plan thumbnail image

XML Content Model

PID

          Disseminators    

Disseminator

Behavior Definition

Behavior Mechanism

web_salisbury_gdms

web_salisbury_gdms

web_salisbury_gdms1

 

get_DynaWeb_view()

dynaxml.xsl

System Metadata

(none for this example)

Basis

Datastream

basis1

Pointer to XML file

 

HTML Content Model

PID

          Disseminators    

Disseminator

Behavior Definition

Behavior Mechanism

web_default

web_default

web_default1

 

get_as_page()

HTTP GET

 

get_in_context()

HTTP GET

System Metadata

(none for this example)

Basis

Datastream

basis1

Pointer to HTML file

 


 

14.1.2. Rossetti

Figure 22 shows the three Rossetti content models used in our tests.  We decided to try a different approach with this project and built custom models. We adapted the web_image model to call only the get_thumb() and get_med() methods and built the rossetti_text model. The web_default model is generic.

Figure 22        Rossetti content models

Image Content Model

PID

          Disseminators    

Disseminator

Behavior Definition

Behavior Mechanism

rossetti_image

rossetti_image

rossetti_image1

 

get_thumb()

HTTP GET

 

get_med()

HTTP GET

System Metadata

(none for this example)

Basis

Data streams

basis1

Pointer to thumbnail image

basis2

Pointer to larger image

XML Content Model

PID

          Disseminators    

Disseminator

Behavior Definition

Behavior Mechanism

rossetti_text

rossetti_text

rossetti_text1

 

get_text()

rossetti.xsl

System Metadata

(none for this example)

Basis

Datastream

basis1

Pointer to XML file

HTML Content Model

PID

          Disseminators    

Disseminator

Behavior Definition

Behavior Mechanism

web_default

web_default

web_default1

 

get_as_page()

HTTP GET

 

get_in_context()

HTTP GET

System Metadata

(none for this example)

Basis

Datastream

basis1

Pointer to HTML file

 


 

14.2. GDMS DTD

The GDMS DTD is still a work in progress, but this is the current version. More information about the DTD is available on-line at <http://dl.lib.virginia.edu/html/gdms/>.

 

<!-- ************************************************************** -->

<!--  General Descriptive Modeling Scheme (GDMS) DTD               -->

<!--  Version 0.9  (01/03/2002)                                     -->

<!--  copyright (c) 2001 by the Rector and Visitors of the          -->

<!--  University of Virginia                                        -->

<!--                                                                -->

<!-- Authors: Thornton Staples tls@virginia.edu                     -->

<!--          Perry Roland pdr4h@virginia.edu                       -->

<!--                                                                -->

<!-- Documentation for this DTD may be found at:                    -->

<!-- http://dl.lib.virginia.edu/html/gdms/                          -->

<!--                                                                -->

<!-- ************************************************************** -->

 

<!-- ************************************************************** -->

<!-- Parameter Entities                                             -->

<!-- ************************************************************** -->

 

<!ENTITY % dtd.full     "INCLUDE">

<!ENTITY % dtd.tool     "IGNORE">

 

<!ENTITY % globalattrs

                "id            ID                 #IMPLIED

                label          CDATA              #IMPLIED

                type           CDATA              #IMPLIED">

 

<!-- Agent types -->

<!ENTITY % agent.types

                "(corpname|persname|other)">

 

<!-- These elements allow editorial markup of text. -->

<!ENTITY % comment

                "abbr|corr|expan|num|orig|reg|sic">

 

<!-- Dublin Core date types -->

<!ENTITY % date.types

                "(available|created|issued|modified|valid|other)">

 

<!-- Elements which may occur in the content of divdesc. -->

<!ENTITY % desc.div

                "date|description|identifier|language|relation|rights|

                subject|title|agent|authority|covspace|covtime|culture|

                form|mediatype|physdesc|style">

 

<!ENTITY % desc.res

                "date|description|identifier|language|relation|rights|

                subject|title|agent|authority|covspace|covtime|culture|

                mediatype|mimetype|physdesc|style">

 

 

<!-- div types; can become a list later. -->

<!ENTITY % div.types

                "CDATA">

 

<!-- Dublin core format types. -->

<!ENTITY % format.types

                "(extent|medium)">

 

<!-- Feature geometry. -->

<![%dtd.full; [

<!ENTITY % geometryclasses

                "point|line|polygon|multipoint|multiline|multipolygon|

                geometrycoll">

]]>

<![%dtd.tool; [

<!ENTITY % geometryclasses

                "point">

]]>

 

<!-- Basic text formatting elements (lb and emph), hypertext anchors,

and index terms. -->

<!ENTITY % inline

                "anchor|indexterm|lb|emph">

 

<!-- Hypertext linking elements. -->

<!ENTITY % linkelements

                "bibref|extptr|extref|linkgrp|ptr|ref">

 

<!-- Relationships among sibling linking elements. -->

<!ENTITY % linkrel

                "(version|part)">

 

<!-- Media types, NOT mime types! -->

<!ENTITY % media.types

                "(collection|dataset|event|image|interactiveresource|

                service|software|sound|text)">

 

<!-- Dublin Core relation types. -->

<!ENTITY % relation.types

                "(isVersionOf|hasVersion|isReplacedBy|replaces|

                isRequiredBy|requires|isPartOf|hasPart|isReferencedBy|

                references|isFormatOf|hasFormat|hasSource|isSourceOf|other)">

 

<!-- Visual renderings. -->

<!ENTITY % renderings

                "(bold|ital|boldital|boldunderline|boldsmcaps|boldquoted|

                nonproport|quoted|smcaps|sub|sup|underline|other)">

 

<!-- Dublin Core subject types. DEPRECATED!

<!ENTITY % subject.types

                "LCSH|MeSH|DDC|LCC|UDC|other">

 -->

 

<!-- Dublin Core title types. -->

<!ENTITY % title.types

                "(main|alternative|series|uniform|other)">

 

 

<!-- ************************************************************** -->

<!-- XML Character Entities                                         -->

<!-- ************************************************************** -->

<!ENTITY % ISOlat1 SYSTEM

"http://dl.lib.virginia.edu/bin/charent/iso-lat1.ent">   %ISOlat1;

<!ENTITY % ISOlat2 SYSTEM

"http://dl.lib.virginia.edu/bin/charent/iso-lat2.ent">   %ISOlat2;

<!ENTITY % ISOlatext SYSTEM

"http://dl.lib.virginia.edu/bin/charent/iso-latext.ent"> %ISOlatext;

<!ENTITY % ISOgrk1 SYSTEM

"http://dl.lib.virginia.edu/bin/charent/iso-grk1.ent">   %ISOgrk1;

<!ENTITY % ISOgrk2 SYSTEM

"http://dl.lib.virginia.edu/bin/charent/iso-grk2.ent">   %ISOgrk2;

<!ENTITY % ISOgrk3 SYSTEM

"http://dl.lib.virginia.edu/bin/charent/iso-grk3.ent">   %ISOgrk3;

<!ENTITY % ISOgrk4 SYSTEM

"http://dl.lib.virginia.edu/bin/charent/iso-grk4.ent">   %ISOgrk4;

<!ENTITY % ISOnum SYSTEM

"http://dl.lib.virginia.edu/bin/charent/iso-num.ent">    %ISOnum;

<!ENTITY % ISOpub SYSTEM

"http://dl.lib.virginia.edu/bin/charent/iso-pub.ent">    %ISOpub;

<!ENTITY % ISOtech SYSTEM

"http://dl.lib.virginia.edu/bin/charent/iso-tech.ent">   %ISOtech;

<!ENTITY % ISOdia SYSTEM

"http://dl.lib.virginia.edu/bin/charent/iso-dia.ent">    %ISOdia;

 

 

<!-- ************************************************************** -->

<!-- Structural elements                                            -->

<!-- ************************************************************** -->

 

<!ELEMENT gdms          (gdmshead, (cat|catinc)*, div)>

<!ATTLIST gdms          id            ID                        #IMPLIED

                        version       CDATA                     #IMPLIED>

 

<!ELEMENT gdmshead      (gdmsid, filedesc, projectdesc?, profiledesc?,

                        revisiondesc?, note*)>

<!ATTLIST gdmshead      %globalattrs;>

 

<!ELEMENT gdmsid        (public?, system+)>

<!ATTLIST gdmsid        %globalattrs;>

 

<!ELEMENT public        (#PCDATA)>

<!ATTLIST public        %globalattrs;

                        analog        CDATA                     "dc:identifier">

 

<!ELEMENT system        (#PCDATA)>

<!ATTLIST system        analog        CDATA                     "dc:identifier"

                        id            ID                        #IMPLIED

                        label         CDATA                     #IMPLIED>

 

<!ELEMENT filedesc      (pubstmt, physdesc?, date?)>

<!ATTLIST filedesc      %globalattrs;>

 

<!ELEMENT pubstmt       (agent|bibscope|imprint|series|title|version)+>

<!ATTLIST pubstmt       %globalattrs;>

 

<![%dtd.full; [

<!ELEMENT projectdesc   (#PCDATA|p)*>

]]>

<![%dtd.tool; [

<!ELEMENT projectdesc   (#PCDATA)>

]]>

<!ATTLIST projectdesc   %globalattrs;>

 

<!ELEMENT profiledesc   (creation, langusage?)>

<!ATTLIST profiledesc   %globalattrs;>

 

<![%dtd.full; [

<!ELEMENT creation      (#PCDATA|p)*>

]]>

<![%dtd.tool; [

<!ELEMENT creation      (#PCDATA)>

]]>

<!ATTLIST creation      %globalattrs;>

 

<!ELEMENT langusage     (language+)>

 

<!ELEMENT revisiondesc  (change+)>

<!ATTLIST revisiondesc  %globalattrs;>

 

<!ELEMENT change        (changedesc, datetime)>

<!ATTLIST change        resp          CDATA                     #IMPLIED>

 

<![%dtd.full; [

<!ELEMENT changedesc    (#PCDATA|p)*>

]]>

<![%dtd.tool; [

<!ELEMENT changedesc    (#PCDATA)>

]]>

 

<![%dtd.full; [

<!ELEMENT note          (#PCDATA|address|blockquote|corpname|datetime|fig|

                        list|note|p|persname|repository|table|%comment;|

                        %inline;|%linkelements;)*>

]]>

<![%dtd.tool; [

<!ELEMENT note          (#PCDATA)>

]]>

<!ATTLIST note          id            ID                        #IMPLIED

                        label         CDATA                     #IMPLIED

                        lang          CDATA                     #IMPLIED

                        resp          CDATA                     #IMPLIED

                        type          CDATA                     #IMPLIED>

 

<!ELEMENT div           ((divhead?, divdesc?, resgrp*), (div|divinc)*)>

<!ATTLIST div           id            ID                        #REQUIRED

                        label         CDATA                     #REQUIRED

                        type          %div.types;               #REQUIRED>

 

<!ELEMENT divhead       (projectdesc?, profiledesc?, revisiondesc?, note*)>

 

<!ELEMENT divdesc       (%desc.div;)*>

<!ATTLIST divdesc       %globalattrs;>

 

<!ELEMENT resgrp        (res|resinc)+>

<!ATTLIST resgrp        %globalattrs;>

 

<!ELEMENT res           ((%desc.res;)*, (resptrgrp|rescon)?)>

<!ATTLIST res           id            ID                        #REQUIRED

                        label         CDATA                     #IMPLIED

                        type          CDATA                     #IMPLIED>

 

<!ELEMENT rescon        (section+)>

<!ATTLIST rescon        %globalattrs;>

 

<!ELEMENT cat           (cathead?, res+)>

<!ATTLIST cat           id            ID                        #REQUIRED

                        label         CDATA                     #REQUIRED

                        type          CDATA                     #IMPLIED>

 

<!ELEMENT cathead       (filedesc?, projectdesc?, profiledesc?, revisiondesc?)>

<!ATTLIST cathead       %globalattrs;>

 

 

<!-- ************************************************************** -->

<!-- Dublin Core bibliographic elements                             -->

<!-- ************************************************************** -->

 

<![%dtd.full; [

<!ELEMENT date          (#PCDATA|authority)*>

]]>

<![%dtd.tool; [

<!ELEMENT date          (#PCDATA)>

]]>

<!ATTLIST date          analog        CDATA                     "dc:date"

                        certainty     CDATA                     #IMPLIED

                        era           (ad|bc|cc|cd)             "ad"

                        id            ID                        #IMPLIED

                        label         CDATA                     #IMPLIED

                        normal        CDATA                     #IMPLIED

                        othertype     CDATA                     #IMPLIED

                        type          %date.types;              #REQUIRED>

 

<![%dtd.full; [

<!ELEMENT description   (#PCDATA|authority|%inline;|%linkelements;)*>

]]>

<![%dtd.tool; [

<!ELEMENT description   (#PCDATA)>

]]>

<!ATTLIST description   analog        CDATA                     "dc:description"

                        id            ID                        #IMPLIED

                        label         CDATA                     #IMPLIED

                        lang          CDATA                     #IMPLIED

                        type          CDATA                     #IMPLIED>

 

<![%dtd.full; [

<!ELEMENT identifier    (#PCDATA|authority|%inline;)*>

]]>

<![%dtd.tool; [

<!ELEMENT identifier    (#PCDATA)>

]]>

<!ATTLIST identifier    %globalattrs;

                        analog        CDATA                     "dc:identifier"

                        lang          CDATA                     #IMPLIED>

 

<![%dtd.full; [

<!ELEMENT language      (#PCDATA|authority|%inline;)*>

]]>

<![%dtd.tool; [

<!ELEMENT language      (#PCDATA)>

]]>

<!ATTLIST language      %globalattrs;

                        analog        CDATA                     "dc:language">

 

<!-- Relation will take all linking responsibility from 'database' elements.

Need to revisit relation SOON. -->

<!ELEMENT relation      (description?, (%linkelements;)?)>

<!ATTLIST relation      analog        CDATA                     #IMPLIED

                        id            ID                        #IMPLIED

                        label         CDATA                     #IMPLIED

                        othertype     CDATA                     #IMPLIED

                        scheme        CDATA                     #IMPLIED

                        type          %relation.types;          #REQUIRED>

 

<!-- DEPRECATED! Use description inside relation!

<!ELEMENT reldesc       (#PCDATA|authority|%inline;|%linkelements;)*>

<!ELEMENT reldesc       (#PCDATA)>

<!ATTLIST reldesc       %globalattrs;

                        lang          CDATA                     #IMPLIED>

-->

 

<![%dtd.full; [

<!ELEMENT rights        (#PCDATA|authority|%inline;)*>

]]>

<![%dtd.tool; [

<!ELEMENT rights        (#PCDATA)>

]]>

<!ATTLIST rights        %globalattrs;

                        analog        CDATA                     "dc:rights"

                        lang          CDATA                     #IMPLIED>

 

 

<!-- subject authorities, e.g. LCSH|MeSH|DDC|LCC|UDC etc. go in authority

sub-element. -->

<![%dtd.full; [

<!ELEMENT subject       (#PCDATA|authority|%inline;)*>

]]>

<![%dtd.tool; [

<!ELEMENT subject       (#PCDATA)>

]]>

<!ATTLIST subject       analog        CDATA                     "dc:subject"

                        id            ID                        #IMPLIED

                        label         CDATA                     #IMPLIED

                        lang          CDATA                     #IMPLIED

                        type          CDATA                     #IMPLIED>

 

<![%dtd.full; [

<!ELEMENT title         (#PCDATA|authority|%inline;)*>

]]>

<![%dtd.tool; [

<!ELEMENT title         (#PCDATA)>

]]>

<!ATTLIST title         analog        CDATA                     "dc:title"

                        id            ID                        #IMPLIED

                        label         CDATA                     #IMPLIED

                        lang          CDATA                     #IMPLIED

                        othertype     CDATA                     #IMPLIED

                        type          %title.types;             #IMPLIED>

 

 

<!-- ************************************************************** -->

<!-- UVa bibliographic elements which replace/extend Dublin Core    -->

<!-- ************************************************************** -->

 

<![%dtd.full; [

<!ELEMENT agent         (#PCDATA|authority|identifier|%inline;)*>

]]>

<![%dtd.tool; [

<!ELEMENT agent         (#PCDATA)>

]]>

<!ATTLIST agent         analog        CDATA                     "dc:creator"

                        id            ID                        #IMPLIED

                        label         CDATA                     #IMPLIED

                        lang          CDATA                     #IMPLIED

                        normal        CDATA                     #IMPLIED

                        othertype     CDATA                     #IMPLIED

                        role          CDATA                     #IMPLIED

                        type          %agent.types;             #REQUIRED>

 

<![%dtd.full; [

<!ELEMENT authority     (#PCDATA|p)*>

]]>

<![%dtd.tool; [

<!ELEMENT authority     (#PCDATA)>

]]>

<!ATTLIST authority     %globalattrs;

                        analog        CDATA                     #IMPLIED

                        lang          CDATA                     #IMPLIED

                        scheme        CDATA                     #IMPLIED>

 

<![%dtd.full; [

<!ELEMENT covspace      (geogname*, boundedby?, covtime*, authority?, accuracy?,

                        method?, geometry?)>

]]>

<![%dtd.tool; [

<!ELEMENT covspace      (geogname*, boundedby?, covtime*, geometry?)>

]]>

<!ATTLIST covspace      %globalattrs;

                        analog        CDATA                     "dc:coverage"

                        projection    CDATA                     "geographic">

 

<![%dtd.full; [

<!ELEMENT covtime       (intervalname*, datetime, datetime?, authority?,

                        accuracy?, method?)>

]]>

<![%dtd.tool; [

<!ELEMENT covtime       (intervalname*, datetime, datetime?)>

]]>

<!ATTLIST covtime       %globalattrs;

                        analog        CDATA                     "dc:coverage">

 

<![%dtd.full; [

<!ELEMENT culture       (#PCDATA|authority|%inline;)*>

]]>

<![%dtd.tool; [

<!ELEMENT culture       (#PCDATA)>

]]>

<!ATTLIST culture       %globalattrs;

                        analog        CDATA                     "dc:description"

                        lang          CDATA                     #IMPLIED>

 

<![%dtd.full; [

<!ELEMENT form          (#PCDATA|authority|%inline;)*>

]]>

<![%dtd.tool; [

<!ELEMENT form          (#PCDATA)>

]]>

<!ATTLIST form          analog        CDATA                     "dc:type"

                        id            ID                        #IMPLIED

                        label         CDATA                     #IMPLIED

                        lang          CDATA                     #IMPLIED>

 

<!ELEMENT mediatype     (form*)>

<!ATTLIST mediatype     analog        CDATA                     "dc:type"

                        id            ID                        #IMPLIED

                        label         CDATA                     #IMPLIED

                        lang          CDATA                     #IMPLIED

                        type          %media.types;             #REQUIRED>

 

<![%dtd.full; [

<!ELEMENT mimetype      (#PCDATA|authority)*>

]]>

<![%dtd.tool; [

<!ELEMENT mimetype      (#PCDATA)>

]]>

<!ATTLIST mimetype      analog        CDATA                     "dc:format"

                        id            ID                        #IMPLIED

                        label         CDATA                     #IMPLIED

                        type          (medium)                  #IMPLIED>

 

 

<![%dtd.full; [

<!ELEMENT physdesc      (#PCDATA|authority|num|%inline;)*>

]]>

<![%dtd.tool; [

<!ELEMENT physdesc      (#PCDATA)>

]]>

<!ATTLIST physdesc      analog        CDATA                     "dc:format"

                        id            ID                        #IMPLIED

                        label         CDATA                     #IMPLIED

                        lang          CDATA                     #IMPLIED

                        type          %format.types;            #REQUIRED

                        units         CDATA                     #IMPLIED>

 

<![%dtd.full; [

<!ELEMENT style         (#PCDATA|authority|%inline;)*>

]]>

<![%dtd.tool; [

<!ELEMENT style         (#PCDATA)>

]]>

<!ATTLIST style         %globalattrs;

                        analog        CDATA                     "dc:description"

                        lang          CDATA                     #IMPLIED>

 

 

<!-- ************************************************************** -->

<!-- Generic date and time elements                                 -->

<!-- ************************************************************** -->

 

<![%dtd.full; [

<!ELEMENT datetime      (#PCDATA|authority)*>

]]>

<![%dtd.tool; [

<!ELEMENT datetime      (#PCDATA)>

]]>

<!ATTLIST datetime      analog        CDATA                     #IMPLIED

                        certainty     CDATA                     #IMPLIED

                        era           (ad|bc|cc|cd)             "ad"

                        id            ID                        #IMPLIED

                        label         CDATA                     #IMPLIED

                        normal        CDATA                     #IMPLIED

                        othertype     CDATA                     #IMPLIED

                        type          CDATA                     #IMPLIED>

 

<![%dtd.full; [

<!ELEMENT intervalname  (#PCDATA|authority|%inline;)*>

]]>

<![%dtd.tool; [

<!ELEMENT intervalname  (#PCDATA)>

]]>

<!ATTLIST intervalname  %globalattrs;

                        lang          CDATA                     #IMPLIED>

 

 

<!-- ************************************************************** -->

<!-- Geometry elements                                              -->

<!-- Derived from GML and DCMI bounding box proposals               -->

<!-- ************************************************************** -->

 

<![%dtd.full; [

<!ELEMENT boundedby     ((northlat, westlong, southlat, eastlong,

                        uplimit?, downlimit?)|(point, point, point, point,

                        uplimit?, downlimit?))>

]]>

<![%dtd.tool; [

<!ELEMENT boundedby     (point, point, point, point, uplimit?, downlimit?)>

]]>

<!ATTLIST boundedby     id            ID                        #IMPLIED

                        label         CDATA                     #IMPLIED

                        projection    CDATA                     "geographic"

                        type          CDATA                     #IMPLIED>

 

<![%dtd.full; [

<!ELEMENT geogname      (#PCDATA|abbr|authority)*>

]]>

<![%dtd.tool; [

<!ELEMENT geogname      (#PCDATA)>

]]>

<!ATTLIST geogname      %globalattrs;

                        lang          CDATA                     #IMPLIED

                        normal        CDATA                     #IMPLIED

                        role          CDATA                     #IMPLIED>

 

<!ELEMENT accuracy      (#PCDATA|address|authority|blockquote|corpname|datetime|

                        fig|list|note|p|persname|repository|section|table|

                        %comment;|%inline;|%linkelements;)*>

<!ATTLIST accuracy      %globalattrs;

                        lang          CDATA                     #IMPLIED>

 

<!ELEMENT method        (#PCDATA|address|authority|blockquote|corpname|datetime|

                        fig|list|note|p|persname|repository|section|table|

                        %comment;|%inline;|%linkelements;)*>

<!ATTLIST method        %globalattrs;

                        lang          CDATA                     #IMPLIED>

 

<!ELEMENT geometry      ((%geometryclasses;)|(extptr+))>

<!ATTLIST geometry      %globalattrs;

                        projection    CDATA                     "geographic">

 

<![%dtd.full; [

<!ELEMENT attribute     (attname, attvalue)>

<!ATTLIST attribute     %globalattrs;>

 

<!ELEMENT attname       (#PCDATA)>

<!ATTLIST attname       %globalattrs;

                        lang          CDATA                     #IMPLIED>

 

<!ELEMENT attvalue      (#PCDATA)>

<!ATTLIST attvalue      %globalattrs;

                        lang          CDATA                     #IMPLIED

                        units         CDATA                     #IMPLIED>

]]>

 

<!ELEMENT point         (lat, long, uplimit?, attribute*)>

<!ATTLIST point         %globalattrs;>

 

<!ELEMENT lat           (#PCDATA)>

<!ATTLIST lat           %globalattrs;

                        units         CDATA          "signed decimal degrees">

 

<!ELEMENT long          (#PCDATA)>

<!ATTLIST long          %globalattrs;

                        units         CDATA          "signed decimal degrees">

 

<![%dtd.full; [

<!ELEMENT line          (point, point+, attribute*)>

<!ATTLIST line          %globalattrs;>

 

<!ELEMENT polygon       (outbound, inbound*, attribute*)>

<!ATTLIST polygon       %globalattrs;>

 

<!ELEMENT outbound      (((point, point, point+)|(circle)), attribute*)>

<!ATTLIST outbound      %globalattrs;>

 

<!ELEMENT inbound       (((point, point, point+)|(circle)), attribute*)>

<!ATTLIST inbound       %globalattrs;>

 

<!ELEMENT circle        (point, radius, attribute*)>

<!ATTLIST circle        %globalattrs;>

 

<!ELEMENT radius        (#PCDATA)>

<!ATTLIST radius        %globalattrs;

                        units         CDATA                     #REQUIRED>

 

<!ELEMENT multipoint    (point+, attribute*)>

<!ATTLIST multipoint    %globalattrs;>

 

<!ELEMENT multiline     (line+, attribute*)>

<!ATTLIST multiline     %globalattrs;>

 

<!ELEMENT multipolygon  (polygon+, attribute*)>

<!ATTLIST multipolygon  %globalattrs;>

 

<!ELEMENT geometrycoll  ((%geometryclasses;)+, attribute*)>

<!ATTLIST geometrycoll  %globalattrs;>

 

<!ELEMENT northlat      (#PCDATA)>

<!ATTLIST northlat      %globalattrs;

                        units         CDATA          "signed decimal degrees">

 

<!ELEMENT eastlong      (#PCDATA)>

<!ATTLIST eastlong      %globalattrs;

                        units         CDATA          "signed decimal degrees">

 

<!ELEMENT southlat      (#PCDATA)>

<!ATTLIST southlat      %globalattrs;

                        units         CDATA          "signed decimal degrees">

 

<!ELEMENT westlong      (#PCDATA)>

<!ATTLIST westlong      %globalattrs;

                        units         CDATA          "signed decimal degrees">

 

]]>

 

<!ELEMENT uplimit       (#PCDATA)>

<!ATTLIST uplimit       %globalattrs;

                        units         CDATA          "meters">

 

<!ELEMENT downlimit     (#PCDATA)>

<!ATTLIST downlimit     %globalattrs;

                        units         CDATA          "meters">

 

<!-- ************************************************************** -->

<!-- Additional bibliographic elements                              -->

<!-- ************************************************************** -->

 

<!ELEMENT address       (addressline+)>

<!ATTLIST address       %globalattrs;

                        lang          CDATA                     #IMPLIED>

 

<![%dtd.full; [

<!ELEMENT addressline   (#PCDATA|%comment;|%inline;)*>

]]>

<![%dtd.tool; [

<!ELEMENT addressline   (#PCDATA)>

]]>

<!ATTLIST addressline   %globalattrs;

                        lang          CDATA                     #IMPLIED>

 

<![%dtd.full; [

<!ELEMENT availability  (datetime|qualification|price)+>

]]>

<![%dtd.tool; [

<!ELEMENT availability  (datetime|qualification|price)+>

]]>

<!ATTLIST availability  %globalattrs;

                        lang          CDATA                     #IMPLIED>

 

<!ELEMENT bibref        (agent|bibscope|datetime|imprint|repository|

                        series|title|version)+>

<!ATTLIST bibref        actuate       (onLoad|onRequest|other|none)

                                                                "onRequest"

                        analog        CDATA                     #IMPLIED

                        entityref     ENTITY                    #IMPLIED

                        href          CDATA                     #IMPLIED

                        id            ID                        #IMPLIED

                        idref         IDREF                     #IMPLIED

                        inline        (true)                    #FIXED "true"

                        lang          CDATA                     #IMPLIED

                        role          CDATA                     #IMPLIED

                        show          (embed|new|replace|other|none)

                                                                #IMPLIED

                        targettype    CDATA                     #IMPLIED

                        title         CDATA                     #IMPLIED

                        type          (simple)                  #FIXED "simple"

                        xlink         CDATA      "http://www.w3.org/1999/xlink"

                        xpointer      CDATA                     #IMPLIED>

 

<![%dtd.full; [

<!ELEMENT bibscope      (#PCDATA|%inline;)*>

]]>

<![%dtd.tool; [

<!ELEMENT bibscope      (#PCDATA)>

]]>

<!ATTLIST bibscope      %globalattrs;

                        lang          CDATA                     #IMPLIED>

 

<!ELEMENT imprint       (agent|address|availability|datetime|geogname|num)+>

<!ATTLIST imprint       %globalattrs;

                        lang          CDATA                     #IMPLIED>

 

<![%dtd.full; [

<!ELEMENT num           (#PCDATA|%inline;)*>

]]>

<![%dtd.tool; [

<!ELEMENT num           (#PCDATA)>

]]>

<!ATTLIST num           %globalattrs;

                        units         CDATA                     #IMPLIED>

 

<![%dtd.full; [

<!ELEMENT price         (#PCDATA|%inline;)*>

]]>

<![%dtd.tool; [

<!ELEMENT price         (#PCDATA)>

]]>

<!ATTLIST price         %globalattrs;

                        units         CDATA                     #IMPLIED>

 

<![%dtd.full; [

<!ELEMENT qualification    (#PCDATA|%inline;)*>

]]>

<![%dtd.tool; [

<!ELEMENT qualification    (#PCDATA)>

]]>

<!ATTLIST qualification    %globalattrs;

                           lang       CDATA                     #IMPLIED>

 

<!ELEMENT repository    (address|corpname|signum)+>

<!ATTLIST repository    %globalattrs;

                        lang          CDATA                     #IMPLIED>

 

<!ELEMENT series        (num|title)+>

<!ATTLIST series        %globalattrs;

                        lang          CDATA                     #IMPLIED>

 

<!ELEMENT signum        (#PCDATA|%inline;)*>

<!ATTLIST signum        %globalattrs;

                        lang          CDATA                     #IMPLIED>

 

<![%dtd.full; [

<!ELEMENT version       (#PCDATA|%inline;)*>

]]>

<![%dtd.tool; [

<!ELEMENT version       (#PCDATA)>

]]>

<!ATTLIST version       %globalattrs;

                        lang          CDATA                     #IMPLIED>

 

 

<!-- ************************************************************** -->

<!-- Text elements                                                  -->

<!-- ************************************************************** -->

 

<!ELEMENT blockquote    (address|note|p|table)+>

<!ATTLIST blockquote    %globalattrs;>

 

<!ELEMENT defitem       (label, item)>

<!ATTLIST defitem       id            ID                        #IMPLIED>

 

<!ELEMENT section       (head?, (address|blockquote|list|note|p|section|

                        table)+)>

<!ATTLIST section       %globalattrs;>

 

<!ELEMENT fig           (caption?, figdesc?)>

<!ATTLIST fig           %globalattrs;

                        href          CDATA                     #IMPLIED

                        idref         IDREF                     #IMPLIED>

 

<!ELEMENT figdesc       (#PCDATA|%comment;|%inline;|%linkelements;)*>

<!ATTLIST figdesc       %globalattrs;

                        lang          CDATA                     #IMPLIED>

 

<!ELEMENT head          (#PCDATA|%comment;|%inline;|%linkelements;)*>

<!ATTLIST head          %globalattrs;

                        althead       CDATA                     #IMPLIED

                        lang          CDATA                     #IMPLIED>

 

<!ELEMENT item          (#PCDATA|address|blockquote|corpname|datetime|fig|

                        list|note|p|persname|repository|table|%comment;|

                        %inline;|%linkelements;)*>

<!ATTLIST item          %globalattrs;

                        lang          CDATA                     #IMPLIED>

 

<![%dtd.full; [

<!ELEMENT label         (#PCDATA|%comment;|%inline;)*>

]]>

<![%dtd.tool; [

<!ELEMENT label         (#PCDATA)>

]]>

<!ATTLIST label         %globalattrs;

                        lang          CDATA                     #IMPLIED>

 

<!ELEMENT list          (head?, (item+|defitem+))>

<!ATTLIST list          id            ID                        #IMPLIED

                        lang          CDATA                     #IMPLIED

                        type          (simple|marked|ordered|def)

                                                                #IMPLIED>

 

<!ELEMENT p             (#PCDATA|address|blockquote|corpname|datetime|fig|

                        list|note|persname|repository|table|%comment;|%inline;|

                        %linkelements;)*>

<!ATTLIST p             %globalattrs;

                        lang          CDATA                     #IMPLIED>

 

 

<!ELEMENT table         (caption?, tr+)>

<!ATTLIST table         id            ID                        #IMPLIED

                        lang          CDATA                     #IMPLIED

                        type          CDATA                     #IMPLIED>

 

<!ELEMENT caption       (#PCDATA|%comment;|%inline;|%linkelements;)*>

<!ATTLIST caption       %globalattrs;

                        lang          CDATA                     #IMPLIED>

 

<!ELEMENT tr            (th|td)+>

<!ATTLIST tr            %globalattrs;

                        lang          CDATA                     #IMPLIED>

 

<!ELEMENT th            (#PCDATA|address|blockquote|corpname|datetime|fig|

                        list|note|persname|repository|table|%comment;|%inline;|

                        %linkelements;)*>

<!ATTLIST th            %globalattrs;

                        colspan       CDATA                     #IMPLIED

                        lang          CDATA                     #IMPLIED

                        rowspan       CDATA                     #IMPLIED>

 

<!ELEMENT td            (#PCDATA|address|blockquote|corpname|datetime|fig|

                        list|note|p|persname|repository|table|%comment;|

                        %inline;|%linkelements;)*>

<!ATTLIST td            %globalattrs;

                        colspan       CDATA                     #IMPLIED

                        lang          CDATA                     #IMPLIED

                        rowspan       CDATA                     #IMPLIED>

 

 

<!-- ************************************************************** -->

<!-- Low-level, e.g. inline, elements                               -->

<!-- ************************************************************** -->

 

<!ELEMENT anchor        EMPTY>

<!ATTLIST anchor        id            ID                        #REQUIRED>

 

<!ELEMENT corpname      (#PCDATA|authority|datetime|%inline;|%linkelements;)*>

<!ATTLIST corpname      %globalattrs;

                        lang          CDATA                     #IMPLIED

                        normal        CDATA                     #IMPLIED

                        role          CDATA                     #IMPLIED>

 

<!ELEMENT indexterm     (#PCDATA|%inline;|%linkelements;)*>

<!ATTLIST indexterm     %globalattrs;

                        lang          CDATA                     #IMPLIED>

 

<!ELEMENT lb            EMPTY>

 

<!ELEMENT persname      (#PCDATA|authority|datetime|%inline;|%linkelements;)*>

<!ATTLIST persname      %globalattrs;

                        lang          CDATA                     #IMPLIED

                        normal        CDATA                     #IMPLIED

                        role          CDATA                     #IMPLIED>

 

 

<!-- ************************************************************** -->

<!-- Inline commentary elements                                     -->

<!-- ************************************************************** -->

 

<!ELEMENT abbr          (#PCDATA|corr|emph|expan|indexterm|lb|orig|reg|

                        sic|extptr|extref|linkgrp|ptr|ref)*>

<!ATTLIST abbr          %globalattrs;

                        lang          CDATA                     #IMPLIED

                        expan         CDATA                     #IMPLIED>

 

<!ELEMENT corr          (#PCDATA|abbr|emph|expan|indexterm|lb|orig|reg|

                        sic|extptr|extref|linkgrp|ptr|ref)*>

<!ATTLIST corr          %globalattrs;

                        lang          CDATA                     #IMPLIED

                        resp          CDATA                     #IMPLIED

                        sic           CDATA                     #IMPLIED>

 

<!ELEMENT emph          (#PCDATA|abbr|corr|emph|expan|indexterm|lb|orig

                        |reg|sic|extptr|extref|linkgrp|ptr|ref)*>

<!ATTLIST emph          %globalattrs;

                        lang          CDATA                     #IMPLIED

                        rend          %renderings;              #REQUIRED

                        otherrend     CDATA                     #IMPLIED>

 

<!ELEMENT expan         (#PCDATA|abbr|corr|emph|indexterm|lb|orig|reg|

                        sic|extptr|extref|linkgrp|ptr|ref)*>

<!ATTLIST expan         %globalattrs;

                        abbr          CDATA                     #IMPLIED

                        lang          CDATA                     #IMPLIED>

 

<!ELEMENT orig          (#PCDATA|abbr|corr|emph|expan|indexterm|lb|reg|

                        sic|extptr|extref|linkgrp|ptr|ref)*>

<!ATTLIST orig          %globalattrs;

                        lang          CDATA                     #IMPLIED

                        reg           CDATA                     #IMPLIED

                        resp          CDATA                     #IMPLIED>

 

<!ELEMENT reg           (#PCDATA|abbr|corr|emph|expan|indexterm|lb|orig|

                        sic|extptr|extref|linkgrp|ptr|ref)*>

<!ATTLIST reg           %globalattrs;

                        lang          CDATA                     #IMPLIED

                        orig          CDATA                     #IMPLIED

                        resp          CDATA                     #IMPLIED>

 

<!ELEMENT sic           (#PCDATA|abbr|corr|emph|expan|indexterm|lb|orig|

                        reg|extptr|extref|linkgrp|ptr|ref)*>

<!ATTLIST sic           %globalattrs;

                        corr          CDATA                     #IMPLIED

                        lang          CDATA                     #IMPLIED

                        resp          CDATA                     #IMPLIED>

 

 

<!-- ************************************************************** -->

<!-- Hypertext linking elements                                     -->

<!-- ************************************************************** -->

 

<!ELEMENT catinc        EMPTY>

<!ATTLIST catinc        actuate       (onLoad|onRequest|other|none)

                                                                "onLoad"

                        behavior      CDATA                     #IMPLIED

                        encoding      CDATA                     #IMPLIED

                        entityref     ENTITY                    #IMPLIED

                        href          CDATA                     #IMPLIED

                        id            ID                        #IMPLIED

                        idref         IDREF                     #IMPLIED

                        parse         (xml|text)                "xml"

                        title         CDATA                     #IMPLIED

                        type          CDATA                     #IMPLIED

                        xpointer      CDATA                     #IMPLIED>

 

<!ELEMENT linkgrp       (%linkelements;)+>

<!ATTLIST linkgrp       id            ID                        #IMPLIED

                        rel           %linkrel;                 #IMPLIED

                        title         CDATA                     #IMPLIED

                        type          CDATA                     #IMPLIED>

 

<!ELEMENT ptr           EMPTY>

<!ATTLIST ptr           actuate       (onLoad|onRequest|other|none)

                                                                "onRequest"

                        behavior      CDATA                     #IMPLIED

                        entityref     ENTITY                    #IMPLIED

                        href          CDATA                     #IMPLIED

                        id            ID                        #IMPLIED

                        idref         IDREF                     #IMPLIED

                        inline        (true)                    #FIXED "true"

                        rel           %linkrel;                 #IMPLIED

                        role          CDATA                     #IMPLIED

                        show          (embed|new|replace|other|none)

                                                                "replace"

                        targettype    CDATA                     #IMPLIED

                        title         CDATA                     #IMPLIED

                        type          (simple)                  #FIXED "simple"

                        xlink         CDATA                     #FIXED

                                                 "http://www.w3.org/1999/xlink"

                        xpointer      CDATA                     #IMPLIED>

 

<!ELEMENT extptr        EMPTY>

<!ATTLIST extptr        actuate       (onLoad|onRequest|other|none)

                                                                "onRequest"

                        behavior      CDATA                     #IMPLIED

                        entityref     ENTITY                    #IMPLIED

                        href          CDATA                     #IMPLIED

                        id            ID                        #IMPLIED

                        inline        (true)                    #FIXED "true"

                        rel           %linkrel;                 #IMPLIED

                        role          CDATA                     #IMPLIED

                        show          (embed|new|replace|other|none)

                                                                "replace"

                        targettype    CDATA                     #IMPLIED

                        title         CDATA                     #IMPLIED

                        type          (simple)                  #FIXED "simple"

                        xlink         CDATA                     #FIXED

                                                 "http://www.w3.org/1999/xlink"

                        xpointer      CDATA                     #IMPLIED>

 

<!ELEMENT ref           (#PCDATA|lb|emph|extptr)*>

<!ATTLIST ref           actuate       (onLoad|onRequest|other|none)

                                                                "onRequest"

                        behavior      CDATA                     #IMPLIED

                        entityref     ENTITY                    #IMPLIED

                        href          CDATA                     #IMPLIED

                        id            ID                        #IMPLIED

                        idref         IDREF                     #IMPLIED

                        inline        (true)                    #FIXED "true"

                        lang          CDATA                     #IMPLIED

                        rel           %linkrel;                 #IMPLIED

                        role          CDATA                     #IMPLIED

                        show          (embed|new|replace|other|none)

                                                                "replace"

                        targettype    CDATA                     #IMPLIED

                        type          (simple)                  #FIXED "simple"

                        xlink         CDATA      "http://www.w3.org/1999/xlink"

                        xpointer      CDATA                     #IMPLIED>

 

<!ELEMENT extref        (#PCDATA|lb|emph|extptr)*>

<!ATTLIST extref        actuate       (onLoad|onRequest|other|none)

                                                                "onRequest"

                        behavior      CDATA                     #IMPLIED

                        entityref     ENTITY                    #IMPLIED

                        href          CDATA                     #IMPLIED

                        id            ID                        #IMPLIED

                        inline        (true)                    #FIXED "true"

                        lang          CDATA                     #IMPLIED

                        rel           %linkrel;                 #IMPLIED

                        role          CDATA                     #IMPLIED

                        show          (embed|new|replace|other|none)

                                                                "replace"

                        targettype    CDATA                     #IMPLIED

                        type          (simple)                  #FIXED "simple"

                        xlink         CDATA      "http://www.w3.org/1999/xlink"

                        xpointer      CDATA                     #IMPLIED>

 

<!ELEMENT resptrgrp     (resptr)+>

<!ATTLIST resptrgrp     id            ID                        #IMPLIED>

 

<!ELEMENT resptr        EMPTY>

<!ATTLIST resptr        actuate       (onLoad|onRequest|other|none)

                                                                "onRequest"

                        behavior      CDATA                     #IMPLIED

                        entityref     ENTITY                    #IMPLIED

                        href          CDATA                     #IMPLIED

                        id            ID                        #IMPLIED

                        idref         IDREF                     #IMPLIED

                        inline        (true)                    #FIXED "true"

                        rel           %linkrel;                 #IMPLIED

                        role          CDATA                     #IMPLIED

                        show          (embed|new|replace|other|none)

                                                                "replace"

                        targettype    CDATA                     #IMPLIED

                        title         CDATA                     #IMPLIED

                        type          (simple)                  #FIXED "simple"

                        xlink         CDATA                     #FIXED

                                                 "http://www.w3.org/1999/xlink"

                        xpointer      CDATA                     #IMPLIED>

 

<!ELEMENT resinc        EMPTY>

<!ATTLIST resinc        actuate       (onLoad|onRequest|other|none)

                                                                "onLoad"

                        behavior      CDATA                     #IMPLIED

                        encoding      CDATA                     #IMPLIED

                        entityref     ENTITY                    #IMPLIED

                        href          CDATA                     #IMPLIED

                        id            ID                        #IMPLIED

                        idref         IDREF                     #IMPLIED

                        parse         (xml|text)                "xml"

                        title         CDATA                     #IMPLIED

                        type          CDATA                     #IMPLIED

                        xpointer      CDATA                     #IMPLIED>

 

<!ELEMENT divinc        EMPTY>

<!ATTLIST divinc        actuate       (onLoad|onRequest|other|none)

                                                                "onLoad"

                        behavior      CDATA                     #IMPLIED

                        encoding      CDATA                     #IMPLIED

                        entityref     ENTITY                    #IMPLIED

                        href          CDATA                     #IMPLIED

                        id            ID                        #IMPLIED

                        idref         IDREF                     #IMPLIED

                        parse         (xml|text)                "xml"

                        title         CDATA                     #IMPLIED

                        type          CDATA                     #IMPLIED

                        xpointer      CDATA                     #IMPLIED>


 

14.3. XSLT stylesheets

There are four Salisbury stylesheets (dynaxml.xsl, the principle stylesheet; and parameter.xsl, autotoc.xsl, and structure.xsl, which are included in dynaxml.xsl) and one Rossetti stylesheet (rossetti.xsl).

The four Salisbury stylesheets have the following jobs:

·        dynaxml.xsl: (section 14.3.1) contains the control template, frame template, TOC template, all the content view templates, as well as the header, footer, and navigator named templates.

·        parameter.xsl: (section 14.3.2) initializes all of the parameters used in creating the dynamic HTML and sets the variables for commonly used URL fragments. This includes the baseline URL, URLs for images and icons, various static HTML pages, and the icons themselves.

·        autotoc.xsl: (section 14.3.3) creates that table of contents and controls what level of expansion is displayed. It also contains the mechanism for totaling and displaying search hits.

·        structure.xsl: (section 14.3.4) handles the construction of the various content views. It also includes the "mark" named template for marking the position of keywords in context.

The Rossetti stylesheet is in section 14.3.5.


 

14.3.1. Salisbury: dynaxml.xsl

<!-- ====================================================================== -->

<!-- Stylesheet: dynaxml.xsl                                                -->

<!-- Version: 1.0 Date: 1/1/01                                              -->

<!-- Kirk V. Hastings                                                       -->

<!-- Institute for Advanced Technology in the Humanities                    -->

<!-- University of Virginia                                                 -->

<!-- ====================================================================== -->

 

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

 

<xsl:output method="html"

            indent="yes"

            encoding="iso-8859-1"

            media-type="text/html"

            doctype-public="-//W3C//DTD HTML 4.0//EN"/>

 

<!-- ====================================================================== -->

<!-- Included Stylesheets                                                   -->

<!-- ====================================================================== -->

 

<xsl:include href="parameter.xsl"/>

<xsl:include href="autotoc.xsl"/>

<xsl:include href="structure.xsl"/>

 

<!-- ====================================================================== -->

<!-- Define Keys                                                            -->

<!-- ====================================================================== -->

 

<xsl:key name="strucunit-id" match="strucunit" use="@id"/>

 

<!-- ====================================================================== -->

<!-- Root Template                                                          -->

<!-- ====================================================================== -->

 

<xsl:template match="/">

  <xsl:choose>

    <xsl:when test="$doc.view='toc'">

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

    </xsl:when>

    <xsl:when test="$doc.view='content1'">

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

    </xsl:when>

    <xsl:when test="$doc.view='content2'">

      <xsl:choose>

      <xsl:when test="$chunk.id != '0'">

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

      </xsl:when>

      <xsl:otherwise>

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

      </xsl:otherwise>

      </xsl:choose>

    </xsl:when>

    <xsl:when test="$doc.view='plan'">

      <xsl:choose>

      <xsl:when test="$chunk.id != '0'">

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

      </xsl:when>

      <xsl:otherwise>

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

      </xsl:otherwise>

      </xsl:choose>

    </xsl:when>

    <xsl:otherwise>

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

    </xsl:otherwise>

  </xsl:choose>

</xsl:template>

 

<!-- ====================================================================== -->

<!-- Frame Template                                                         -->

<!-- ====================================================================== -->

 

<xsl:template name="frame">

  <html>

    <head>

      <title>The Salisbury Project</title>

    </head>

    <frameset cols="25%,75%">

      <frameset rows="*,30%">

      <frame>

        <xsl:attribute name="name">toc</xsl:attribute>

        <xsl:attribute name="src">

            <xsl:value-of select="$doc.path"/>

            <xsl:text>&amp;doc.view=toc</xsl:text>

            <xsl:text>&amp;chunk.id=</xsl:text><xsl:value-of select="$chunk.id"/>

            <xsl:text>&amp;toc.depth=</xsl:text><xsl:value-of select="$toc.depth"/>

            <xsl:text>&amp;toc.id=</xsl:text><xsl:value-of select="$toc.id"/>

            <xsl:text>&amp;keyword=</xsl:text><xsl:value-of select="$keyword"/>

            <xsl:text>#X</xsl:text>

          </xsl:attribute>

      </frame>

      <frame>

        <xsl:attribute name="name">plan</xsl:attribute>

        <xsl:attribute name="src">

            <xsl:value-of select="$doc.path"/>

            <xsl:text>&amp;doc.view=plan</xsl:text>

            <xsl:text>&amp;chunk.id=</xsl:text><xsl:value-of select="$chunk.id"/>

            <xsl:text>&amp;toc.depth=</xsl:text><xsl:value-of select="$toc.depth"/>

            <xsl:text>&amp;toc.id=</xsl:text><xsl:value-of select="$toc.id"/>

            <xsl:text>&amp;plan.id=</xsl:text><xsl:value-of select="$plan.id"/>

          </xsl:attribute>

      </frame>

      </frameset>

      <frameset rows="*,*">

      <frame>

        <xsl:attribute name="name">content1</xsl:attribute>

        <xsl:choose>

          <xsl:when test="$enlarge.id != '0'">

            <xsl:attribute name="src">

                <xsl:value-of select="$doc.path"/>

                <xsl:text>&amp;doc.view=content1</xsl:text>

                <xsl:text>&amp;chunk.id=</xsl:text><xsl:value-of select="$chunk.id"/>

                <xsl:text>&amp;toc.depth=</xsl:text><xsl:value-of select="$toc.depth"/>

                <xsl:text>&amp;toc.id=</xsl:text><xsl:value-of select="$toc.id"/>

                <xsl:text>&amp;plan.id=</xsl:text><xsl:value-of select="$plan.id"/>

                <xsl:text>&amp;enlarge.id=</xsl:text><xsl:value-of select="$enlarge.id"/>

                <xsl:text>&amp;compare.id=</xsl:text><xsl:value-of select="$compare.id"/>

              </xsl:attribute>

          </xsl:when>

          <xsl:otherwise>

            <xsl:attribute name="src">

                <xsl:value-of select="$help.page"/>

              </xsl:attribute>

          </xsl:otherwise>

        </xsl:choose>

      </frame>

      <frame>

        <xsl:attribute name="name">content2</xsl:attribute>

        <xsl:attribute name="src">

            <xsl:value-of select="$doc.path"/>

            <xsl:text>&amp;doc.view=content2</xsl:text>

            <xsl:text>&amp;chunk.id=</xsl:text><xsl:value-of select="$chunk.id"/>

            <xsl:text>&amp;toc.depth=</xsl:text><xsl:value-of select="$toc.depth"/>

            <xsl:text>&amp;toc.id=</xsl:text><xsl:value-of select="$toc.id"/>

            <xsl:text>&amp;plan.id=</xsl:text><xsl:value-of select="$plan.id"/>

            <xsl:text>&amp;enlarge.id=</xsl:text><xsl:value-of select="$enlarge.id"/>

            <xsl:text>&amp;compare.id=</xsl:text><xsl:value-of select="$compare.id"/>

            <xsl:text>&amp;anchor.id=</xsl:text><xsl:value-of select="$anchor.id"/>

            <xsl:text>&amp;keyword=</xsl:text><xsl:value-of select="$keyword"/>

            <xsl:text>#X</xsl:text>

          </xsl:attribute>

      </frame>

      </frameset>

    </frameset>

    <noframes>

      <h1>Sorry, this browser does not support frames.</h1>

    </noframes>

  </html>

</xsl:template>

 

<!-- ====================================================================== -->

<!-- TOC Template                                                           -->

<!-- ====================================================================== -->

 

<xsl:template name="toc">

  <html>

    <head>

      <title>The Salisbury Project: TOC</title>

    </head>

    <body bgcolor="#FFFFFF" link="#990000" alink="#990000" vlink="#663300">

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

    </body>

  </html>

</xsl:template>

 

<!-- ====================================================================== -->

<!-- Chunk Templates                                                        -->

<!-- ====================================================================== -->

 

<xsl:template name="chunk1">

  <html>

    <head>

      <title>The Salisbury Project: Image Archive</title>

    </head>

    <body bgcolor="#FFFFFF" link="#990000" alink="#990000" vlink="#663300">

      <xsl:apply-templates select="key('strucunit-id', $enlarge.id)" mode="enlarge"/>

    </body>

  </html>

</xsl:template>

 

<xsl:template name="chunk2">

  <html>

    <head>

      <title>The Salisbury Project: Image Archive</title>

    </head>

    <body bgcolor="#FFFFFF" link="#990000" alink="#990000" vlink="#663300">

      <xsl:choose>

      <xsl:when test="$compare.id != '0'">

        <xsl:apply-templates select="key('strucunit-id', $compare.id)" mode="compare"/>

      </xsl:when>

      <xsl:otherwise>

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

        <xsl:apply-templates select="key('strucunit-id', $chunk.id)"/>

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

      </xsl:otherwise>

      </xsl:choose>

    </body>

  </html>

</xsl:template>

 

<!-- ====================================================================== -->

<!-- Default Template                                                       -->

<!-- ====================================================================== -->

 

<xsl:template name="default">

  <xsl:choose>

    <xsl:when test="$doc.view='content2'">

      <html>

      <head>

        <title>The Salisbury Project: Image Archive</title>

      </head>

      <body bgcolor="#FFFFFF" link="#990000" alink="#990000" vlink="#663300">

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

        <h2 align="center">This is Frame D<br/><br/>Images will appear here</h2>

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

      </body>

      </html>

    </xsl:when>

    <xsl:when test="$doc.view='plan'">

      <html>

      <head>

        <title>The Salisbury Project: Plan View</title>

      </head>

      <body bgcolor="#FFFFFF" link="#990000" alink="#990000" vlink="#663300">

        <div align="center">

          <table width="100%" height="100%">

            <tr>

            <td align="center" valign="middle">

              <img>

                <xsl:attribute name="src">

                      <xsl:value-of select="$icon.path"/>

                      <xsl:value-of select="$plan.icon"/>

                    </xsl:attribute>

                <xsl:attribute name="border">0</xsl:attribute>

              </img>

            </td>

            </tr>

          </table>

        </div>

      </body>

      </html>

    </xsl:when>

    <xsl:otherwise>

      <html>

        <p>ERROR!</p>

      </html>

    </xsl:otherwise>

  </xsl:choose>

</xsl:template>

 

<!-- ====================================================================== -->

<!-- Plan View Template                                                     -->

<!-- ====================================================================== -->

 

<xsl:template name="plan">

  <html>

    <head>

      <title>The Salisbury Project: Plan View</title>

    </head>

    <body bgcolor="#FFFFFF" link="#990000" alink="#990000" vlink="#663300">

      <div align="center">

      <table width="100%" height="100%">

        <tr>

          <td align="center" valign="middle">

            <xsl:choose>

            <xsl:when test="$plan.id !='0'">

              <img>

                <xsl:attribute name="src">

                  <xsl:value-of select="$image.path"/>

                      <xsl:value-of select="key('strucunit-id',                       

                       $plan.id)/resource/identifier[@label='Plan']"/>

                  <xsl:value-of select="$plan.params"/>        

                </xsl:attribute>

              </img>

            </xsl:when>

            <xsl:otherwise>

              <xsl:choose>

                <xsl:when test="key('strucunit-id',

                 $chunk.id)/resource/identifier[@label='Plan']">

                  <img>

                  <xsl:attribute name="src">

                    <xsl:value-of select="$image.path"/>

                    <xsl:value-of select="key('strucunit-id',

                     $chunk.id)/resource/identifier[@label='Plan']"/>

                    <xsl:value-of select="$plan.params"/>      

                  </xsl:attribute>

                  </img>

                </xsl:when>

                <xsl:otherwise>

                  <img>

                  <xsl:attribute name="src">

                          <xsl:value-of select="$icon.path"/>

                          <xsl:value-of select="$plan.icon"/>

                        </xsl:attribute>

                  <xsl:attribute name="border">0</xsl:attribute>

                  </img>

                </xsl:otherwise>

              </xsl:choose>

            </xsl:otherwise>

            </xsl:choose>

          </td>

        </tr>

      </table>

      </div>

    </body>

  </html>

</xsl:template>

 

<!-- ====================================================================== -->

<!-- Header, Footer, and Navigator Templates                                -->

<!-- ====================================================================== -->

 

<xsl:template name="header">

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

  <p>

    <img>

      <xsl:attribute name="src">

        <xsl:value-of select="$icon.path"/>

        <xsl:value-of select="$line.icon"/>

      </xsl:attribute>

    </img>

  </p>

</xsl:template>

 

<xsl:template name="footer">

  <p>

    <img>

      <xsl:attribute name="src">

        <xsl:value-of select="$icon.path"/>

        <xsl:value-of select="$line.icon"/>

      </xsl:attribute>

    </img>

  </p>

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

</xsl:template>

 

<xsl:template name="navigator">

  <table cellpadding="2" cellspacing="2">

    <tr>

      <td>

      <xsl:choose>

        <xsl:when test="key('strucunit-id', $chunk.id)/preceding::strucunit">

          <xsl:variable name="chunk.prev"

                        select="key('strucunit-id', $chunk.id)/preceding::strucunit/@id"/>

          <a>

            <xsl:attribute name="href">

                <xsl:value-of select="$doc.path"/>

                <xsl:text>&amp;chunk.id=</xsl:text><xsl:value-of select="$chunk.prev"/>

                <xsl:text>&amp;toc.depth=</xsl:text><xsl:value-of select="$toc.depth"/>

                <xsl:text>&amp;toc.id=</xsl:text><xsl:value-of select="$toc.id"/>

              </xsl:attribute>

            <xsl:attribute name="target">_top</xsl:attribute>

            <img>

            <xsl:attribute name="src">

                  <xsl:value-of select="$icon.path"/>

                  <xsl:value-of select="$b_prev.icon"/>

                </xsl:attribute>

            <xsl:attribute name="border">0</xsl:attribute>

            </img>

          </a>

        </xsl:when>

        <xsl:otherwise>

          <img>

            <xsl:attribute name="src">

                <xsl:value-of select="$icon.path"/>

                <xsl:value-of select="$d_prev.icon"/>

              </xsl:attribute>

            <xsl:attribute name="border">0</xsl:attribute>

          </img>

        </xsl:otherwise>

      </xsl:choose>

      </td>

      <td>

        <xsl:choose>

          <xsl:when test="key('strucunit-id', $chunk.id)/following::strucunit">

            <xsl:variable name="chunk.next"

                          select="key('strucunit-id', $chunk.id)/following::strucunit/@id"/>

            <a>

              <xsl:attribute name="href">

                <xsl:value-of select="$doc.path"/>

                <xsl:text>&amp;chunk.id=</xsl:text><xsl:value-of select="$chunk.next"/>

                <xsl:text>&amp;toc.depth=</xsl:text><xsl:value-of select="$toc.depth"/>

                <xsl:text>&amp;toc.id=</xsl:text><xsl:value-of select="$toc.id"/>

              </xsl:attribute>

            <xsl:attribute name="target">_top</xsl:attribute>

            <img>

            <xsl:attribute name="src">

                  <xsl:value-of select="$icon.path"/>

                  <xsl:value-of select="$b_next.icon"/>

                </xsl:attribute>

            <xsl:attribute name="border">0</xsl:attribute>

            </img>

          </a>

        </xsl:when>

        <xsl:otherwise>

          <img>

            <xsl:attribute name="src">

                <xsl:value-of select="$icon.path"/>

                <xsl:value-of select="$d_next.icon"/>

              </xsl:attribute>

            <xsl:attribute name="border">0</xsl:attribute>

          </img>

        </xsl:otherwise>

      </xsl:choose>

      </td>

    </tr>

  </table>

</xsl:template>

 

</xsl:stylesheet>


 

14.3.2. Salisbury: parameter.xsl

<!-- ====================================================================== -->

<!-- Stylesheet: parameter.xsl                                              -->

<!-- Included in: dynaxml.xsl                                               -->

<!-- Version: 1.0 Date: 1/1/01                                              -->

<!-- Kirk V. Hastings                                                       -->

<!-- Institute for Advanced Technology in the Humanities                    -->

<!-- University of Virginia                                                 -->

<!-- ====================================================================== -->

 

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

 

<!-- ====================================================================== -->

<!-- Stylesheet Parameters                                                  -->

<!-- ====================================================================== -->

 

<!-- URL Strings -->

 

<xsl:param name="doc.path">http://dl.lib.virginia.edu/servlet/ObjectServlet3?

action=dissem&amp;doid=1007.lib.dl.test/text_gdms/salisbury&amp;

sigName=web_salisbury_gdms&amp;methName=get_dynaweb_view

</xsl:param>

 

<xsl:param name="image.path">http://dl.lib.virginia.edu/servlet/ObjectServlet3?

action=dissem&amp;doid=

</xsl:param>

 

<xsl:param name="icon.path">http://dl.lib.virginia.edu/data/image/salisbury/icons/

</xsl:param>

 

<xsl:param name="help.page">http://dl.lib.virginia.edu/servlet/ObjectServlet3?

action=dissem&amp;doid=1007.lib.dl.test/salisbury-project/salisbury/guide/howto.html&amp;

sigName=web_default&amp;methName=get_as_page

</xsl:param>

 

<xsl:param name="cathedral.page">http://dl.lib.virginia.edu/servlet/ObjectServlet3?

action=dissem&amp;doid=1007.lib.dl.test/salisbury-project/salisbury/cathedral.html&amp;

sigName=web_default&amp;methName=get_as_page

</xsl:param>

 

 

<!-- Icons -->

 

<xsl:param name="plan.icon">plan.model.gif</xsl:param>

 

<xsl:param name="b_prev.icon">b_prev.gif</xsl:param>

<xsl:param name="d_prev.icon">d_prev.gif</xsl:param>

<xsl:param name="b_next.icon">b_next.gif</xsl:param>

<xsl:param name="d_next.icon">d_next.gif</xsl:param>

 

<xsl:param name="b_up.icon">b_up.gif</xsl:param>

<xsl:param name="b_down.icon">b_down.gif</xsl:param>

 

<xsl:param name="images.icon">images.gif</xsl:param>

<xsl:param name="line.icon">line.gif</xsl:param>

<xsl:param name="list.icon">list.gif</xsl:param>

<xsl:param name="icon3.icon">icon3.gif</xsl:param>

<xsl:param name="icon4.icon">icon4.gif</xsl:param>

 

<!-- Parameter Strings -->

 

<xsl:param name="thumb.params">&amp;sigName=web_image&amp;methName=get_thumb</xsl:param>

<xsl:param name="enlarge.params">&amp;sigName=web_image&amp;methName=get_med</xsl:param>

<xsl:param name="plan.params">&amp;sigName=web_image&amp;methName=get_med</xsl:param>

 

<!-- Document View -->

 

<xsl:param name="doc.view"></xsl:param>

 

<!-- TOC Parameters -->

 

<xsl:param name="toc.depth">2</xsl:param>

<xsl:param name="toc.id">0</xsl:param>

 

<!-- Chunk Parameters -->

 

<xsl:param name="chunk.id">0</xsl:param>

<xsl:param name="chunk.next">0</xsl:param>

<xsl:param name="chunk.prev">0</xsl:param>

 

<!-- Image and Plan Parameters -->

 

<xsl:param name="compare.id">0</xsl:param>

<xsl:param name="enlarge.id">0</xsl:param>

<xsl:param name="plan.id">0</xsl:param>

 

<!-- Scrolling Anchor -->

 

<xsl:param name="anchor.id">0</xsl:param>

 

<!-- Search Term -->

 

<xsl:param name="keyword">0</xsl:param>

 

</xsl:stylesheet>


 

14.3.3. Salisbury: autotoc.xsl

<!-- ====================================================================== -->

<!-- Stylesheet: autotoc.xsl                                                -->

<!-- Included in: dynaxml.xsl                                               -->

<!-- Version: 1.0 Date: 1/1/01                                              -->

<!-- Kirk V. Hastings                                                       -->

<!-- Institute for Advanced Technology in the Humanities                    -->

<!-- University of Virginia                                                 -->

<!-- ====================================================================== -->

 

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

 

<!-- ====================================================================== -->

<!-- Root TOC Template                                                      -->

<!-- ====================================================================== -->

 

<xsl:template name="autotoc">

  <table cellpadding="0" cellspacing="0" border="0">

    <tr>

    <td>

      <a>

      <xsl:attribute name="href">

          <xsl:value-of select="$cathedral.page"/>

        </xsl:attribute>

      <xsl:attribute name="target">_top</xsl:attribute>

      <img>

        <xsl:attribute name="src">

            <xsl:value-of select="$icon.path"/>

            <xsl:value-of select="$icon4.icon"/>

          </xsl:attribute>

        <xsl:attribute name="border">0</xsl:attribute>

      </img>

      </a>

    </td>

    <td>

      <a>

      <xsl:attribute name="href">

          <xsl:value-of select="$help.page"/>

        </xsl:attribute>

      <xsl:attribute name="target">_top</xsl:attribute>

      <img>

        <xsl:attribute name="src">

            <xsl:value-of select="$icon.path"/>

            <xsl:value-of select="$icon3.icon"/>

          </xsl:attribute>

        <xsl:attribute name="border">0</xsl:attribute>

      </img>

      </a>

    </td>

    </tr>

  </table>

  <hr/>

  <img>

    <xsl:attribute name="src">

      <xsl:value-of select="$icon.path"/>

      <xsl:value-of select="$list.icon"/>

    </xsl:attribute>

    <xsl:attribute name="border">0</xsl:attribute>

  </img>

 

  <!-- Begin Creating TOC -->

 

  <xsl:apply-templates select="//strucunit[@n='1']" mode="toc"/>

 

  <!-- Search Form -->

 

  <div align="center">

    <form action="http://bodoni.village.virginia.edu/cgi-bin/dynaxml.pl" target="_top">

      <input type="text" name="keyword" size="15"/>

      <input type="hidden" name="doc.path">

      <xsl:attribute name="value">

        <xsl:value-of select="$doc.path"/>

      </xsl:attribute>

      </input>

      <input type="hidden" name="chunk.id">

      <xsl:attribute name="value">

        <xsl:value-of select="$chunk.id"/>

      </xsl:attribute>

      </input>

      <input type="hidden" name="toc.depth">

      <xsl:attribute name="value">

        <xsl:value-of select="$toc.depth"/>

      </xsl:attribute>

      </input>

      <input type="hidden" name="toc.id">

      <xsl:attribute name="value">

        <xsl:value-of select="$toc.id"/>

      </xsl:attribute>

      </input>

      <br/>

      <input type="submit" value="Search"/>

    </form>

  </div>

  <hr/>

</xsl:template>

 

<!-- ====================================================================== -->

<!-- Level 1 Template                                                       -->

<!-- ====================================================================== -->

 

<xsl:template match="strucunit[@n='1']" mode="toc">

  <xsl:variable name="title" select="strucdesc/title"/>

  <xsl:variable name="text">

    <xsl:copy-of select="descendant-or-self::strucunit/strucdesc/description"/>

  </xsl:variable>

  <xsl:if test="$title">

    <table cellpadding="0" cellspacing="0" width="1020">

      <tr>

      <xsl:choose>

        <xsl:when test="($keyword != '0') and (contains($text, $keyword))">

          <td width="15" align="right">

            <font color="red">

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

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

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

            </xsl:call-template>

            </font>

          </td>

        </xsl:when>

        <xsl:otherwise>

          <td width="15"></td>

        </xsl:otherwise>

      </xsl:choose>

      <xsl:choose>

        <xsl:when test="($toc.depth &lt; 2

                         and strucunit[@n='2']/strucdesc/title)

                         and ($toc.id != @id)">

          <td width="10" align="center" valign="baseline">

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

          </td>

        </xsl:when>

        <xsl:when test="($toc.depth > 1

                         and strucunit[@n='2']/strucdesc/title)

                         or ($toc.id = descendant-or-self::strucunit/@id)">

          <td width="10" align="center" valign="baseline">

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

          </td>

        </xsl:when>

        <xsl:otherwise>

          <td width="10" align="center" valign="baseline"></td>

        </xsl:otherwise>

      </xsl:choose>

      <td align="left" valign="top" width="800">

        <xsl:apply-templates select="strucdesc/title" mode="toc"/>

      </td>

      </tr>

    </table>

    <xsl:if test="($toc.depth > 1 

                   and strucunit[@n='2']/strucdesc/title)

                   or ($toc.id = descendant-or-self::strucunit/@id)">

      <xsl:apply-templates select="strucunit[@n='2']" mode="toc"/>

    </xsl:if>

  </xsl:if>

</xsl:template>

 

<!-- ====================================================================== -->

<!-- Level 2 Template                                                       -->

<!-- ====================================================================== -->

 

<xsl:template match="strucunit[@n='2']" mode="toc">

  <xsl:variable name="title" select="strucdesc/title"/>

  <xsl:variable name="text">

    <xsl:copy-of select="descendant-or-self::strucunit/strucdesc/description"/>

  </xsl:variable>

  <xsl:if test="$title">

    <table cellpadding="0" cellspacing="0" width="1020">

      <tr>

      <xsl:choose>

        <xsl:when test="($keyword != '0') and (contains($text, $keyword))">

          <td width="30" align="right">

            <font color="red">

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

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

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

            </xsl:call-template>

            </font>

          </td>

        </xsl:when>

        <xsl:otherwise>

          <td width="30"></td>

        </xsl:otherwise>

      </xsl:choose>

      <xsl:choose>

        <xsl:when test="($toc.depth &lt; 3

                         and strucunit[@n='3']/strucdesc/title)

                         and ($toc.id != @id)">

          <td width="10" align="center" valign="baseline">

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

          </td>

        </xsl:when>

        <xsl:when test="($toc.depth > 2

                         and strucunit[@n='3']/strucdesc/title)

                         or ($toc.id = descendant-or-self::strucunit/@id)">

          <td width="10" align="center" valign="baseline">

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

          </td>

        </xsl:when>

        <xsl:otherwise>

          <td width="10" align="center" valign="baseline"></td>

        </xsl:otherwise>

      </xsl:choose>

      <td align="left" valign="top" width="800">

        <font color="#990000"><xsl:number format="1.1.1 " level="multiple" 

                                          count="strucunit[@n='2']

                                          | strucunit[@n='3']

                                          | strucunit[@n='4'] 

                                          | strucunit[@n='5']

                                          | strucunit[@n='6']

                                          | strucunit[@n='7']

                                          | strucunit[@n='8']"/>

        </font>

        <xsl:apply-templates select="strucdesc/title" mode="toc"/>

      </td>

      </tr>

    </table>

    <xsl:if test="($toc.depth > 2

                   and strucunit[@n='3']/strucdesc/title)

                   or ($toc.id = descendant-or-self::strucunit/@id)">

      <xsl:apply-templates select="strucunit[@n='3']" mode="toc"/>

    </xsl:if>

  </xsl:if>

</xsl:template>

 

<!-- ====================================================================== -->

<!-- Level 3 Template                                                       -->

<!-- ====================================================================== -->

 

<xsl:template match="strucunit[@n='3']" mode="toc">

  <xsl:variable name="title" select="strucdesc/title"/>

  <xsl:variable name="text">

    <xsl:copy-of select="descendant-or-self::strucunit/strucdesc/description"/>

  </xsl:variable>

  <xsl:if test="$title">

    <table cellpadding="0" cellspacing="0" width="1020">

      <tr>

      <xsl:choose>

        <xsl:when test="($keyword != '0') and (contains($text, $keyword))">

          <td width="45" align="right">

            <font color="red">

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

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

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

            </xsl:call-template>

            </font>

          </td>

        </xsl:when>

        <xsl:otherwise>

          <td width="45"></td>

        </xsl:otherwise>

      </xsl:choose>

      <xsl:choose>

        <xsl:when test="($toc.depth &lt; 4

                         and strucunit[@n='4']/strucdesc/title)

                         and ($toc.id != @id)">

          <td width="10" align="center" valign="baseline">

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

          </td>

        </xsl:when>

        <xsl:when test="($toc.depth > 3

                         and strucunit[@n='4']/strucdesc/title)

                         or ($toc.id = descendant-or-self::strucunit/@id)">

          <td width="10" align="center" valign="baseline">

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

          </td>

        </xsl:when>

        <xsl:otherwise>

          <td width="10" align="center" valign="baseline"></td>

        </xsl:otherwise>

      </xsl:choose>

      <td align="left" valign="top" width="800">

        <font color="#990000"><xsl:number format="1.1.1 " level="multiple"

                                          count="strucunit[@n='2']

                                          | strucunit[@n='3']

                                          | strucunit[@n='4']

                                          | strucunit[@n='5']

                                          | strucunit[@n='6']

                                          | strucunit[@n='7']

                                          | strucunit[@n='8']"/></font>

        <xsl:apply-templates select="strucdesc/title" mode="toc"/>

      </td>

      </tr>

    </table>

    <xsl:if test="($toc.depth > 3 

                   and strucunit[@n='4']/strucdesc/title) 

                   or ($toc.id = descendant-or-self::strucunit/@id)">

      <xsl:apply-templates select="strucunit[@n='4']" mode="toc"/>

    </xsl:if>

  </xsl:if>

</xsl:template>

 

<!-- ====================================================================== -->

<!-- Level 4 Template                                                       -->

<!-- ====================================================================== -->

 

<xsl:template match="strucunit[@n='4']" mode="toc">

  <xsl:variable name="title" select="strucdesc/title"/>

  <xsl:variable name="text">

    <xsl:copy-of select="descendant-or-self::strucunit/strucdesc/description"/>

  </xsl:variable>

  <xsl:if test="$title">

    <table cellpadding="0" cellspacing="0" width="1020">

      <tr>

      <xsl:choose>

        <xsl:when test="($keyword != '0') and (contains($text, $keyword))">

          <td width="60" align="right">

            <font color="red">

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

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

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

            </xsl:call-template>

            </font>

          </td>

        </xsl:when>

        <xsl:otherwise>

          <td width="60"></td>

        </xsl:otherwise>

      </xsl:choose>

      <xsl:choose>

        <xsl:when test="($toc.depth &lt; 5

                         and strucunit[@n='5']/strucdesc/title)

                         and ($toc.id != @id)">

          <td width="10" align="center" valign="baseline">

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

          </td>

        </xsl:when>

        <xsl:when test="($toc.depth > 4

                         and strucunit[@n='5']/strucdesc/title)

                         or ($toc.id = descendant-or-self::strucunit/@id)">

          <td width="10" align="center" valign="baseline">

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

          </td>

        </xsl:when>

        <xsl:otherwise>

          <td width="10" align="center" valign="baseline"></td>

        </xsl:otherwise>

      </xsl:choose>

      <td align="left" valign="top" width="800">

        <font color="#990000"><xsl:number format="1.1.1 " level="multiple"

                                          count="strucunit[@n='2']

                                          | strucunit[@n='3']

                                          | strucunit[@n='4']

                                          | strucunit[@n='5']

                                          | strucunit[@n='6']

                                          | strucunit[@n='7']

                                          | strucunit[@n='8']"/></font>

        <xsl:apply-templates select="strucdesc/title" mode="toc"/>

      </td>

      </tr>

    </table>

    <xsl:if test="($toc.depth > 4

                   and strucunit[@n='5']/strucdesc/title)

                   or ($toc.id = descendant-or-self::strucunit/@id)">

      <xsl:apply-templates select="strucunit[@n='5']" mode="toc"/>

    </xsl:if>

  </xsl:if>

</xsl:template>

 

<!-- ====================================================================== -->

<!-- Level 5 Template                                                       -->

<!-- ====================================================================== -->

 

<xsl:template match="strucunit[@n='5']" mode="toc">

  <xsl:variable name="title" select="strucdesc/title"/>

  <xsl:variable name="text">

    <xsl:copy-of select="descendant-or-self::strucunit/strucdesc/description"/>

  </xsl:variable>

  <xsl:if test="$title">

    <table cellpadding="0" cellspacing="0" width="1020">

      <tr>

      <xsl:choose>

        <xsl:when test="($keyword != '0') and (contains($text, $keyword))">

          <td width="75" align="right">

            <font color="red">

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

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

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

            </xsl:call-template>

            </font>

          </td>

        </xsl:when>

        <xsl:otherwise>

          <td width="75"></td>

        </xsl:otherwise>

      </xsl:choose>

      <xsl:choose>

        <xsl:when test="($toc.depth &lt; 6

                         and strucunit[@n='6']/strucdesc/title)

                         and ($toc.id != @id)">

          <td width="10" align="center" valign="baseline">

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

          </td>

        </xsl:when>

        <xsl:when test="($toc.depth > 5

                         and strucunit[@n='6']/strucdesc/title)

                         or ($toc.id = descendant-or-self::strucunit/@id)">

          <td width="10" align="center" valign="baseline">

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

          </td>

        </xsl:when>

        <xsl:otherwise>

          <td width="10" align="center" valign="baseline"></td>

        </xsl:otherwise>

      </xsl:choose>

      <td align="left" valign="top" width="800">

        <font color="#990000"><xsl:number format="1.1.1 " level="multiple" 

                                          count="strucunit[@n='2'] 

                                          | strucunit[@n='3'] 

                                          | strucunit[@n='4'] 

                                          | strucunit[@n='5'] 

                                          | strucunit[@n='6'] 

                                          | strucunit[@n='7'] 

                                          | strucunit[@n='8']"/></font>

        <xsl:apply-templates select="strucdesc/title" mode="toc"/>

      </td>

      </tr>

    </table>

    <xsl:if test="($toc.depth > 5

                   and strucunit[@n='6']/strucdesc/title)

                   or ($toc.id = descendant-or-self::strucunit/@id)">

      <xsl:apply-templates select="strucunit[@n='6']" mode="toc"/>

    </xsl:if>

  </xsl:if>

</xsl:template>

 

<!-- ====================================================================== -->

<!-- Level 6 Template                                                       -->

<!-- ====================================================================== -->

 

<xsl:template match="strucunit[@n='6']" mode="toc">

  <xsl:variable name="title" select="strucdesc/title"/>

  <xsl:variable name="text">

    <xsl:copy-of select="descendant-or-self::strucunit/strucdesc/description"/>

  </xsl:variable>

  <xsl:if test="$title">

    <table cellpadding="0" cellspacing="0" width="1020">

      <tr>

      <xsl:choose>

        <xsl:when test="($keyword != '0') and (contains($text, $keyword))">

          <td width="90" align="right">

            <font color="red">

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

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

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

 

            </xsl:call-template>

            </font>

          </td>

        </xsl:when>

        <xsl:otherwise>

          <td width="90"></td>

        </xsl:otherwise>

      </xsl:choose>

      <xsl:choose>

        <xsl:when test="($toc.depth &lt; 7

                         and strucunit[@n='7']/strucdesc/title)

                         and ($toc.id != @id)">

          <td width="10" align="center" valign="baseline">

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

          </td>

        </xsl:when>

        <xsl:when test="($toc.depth > 6

                         and strucunit[@n='7']/strucdesc/title)

                         or ($toc.id = descendant-or-self::strucunit/@id)">

          <td width="10" align="center" valign="baseline">

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

          </td>

        </xsl:when>

        <xsl:otherwise>

          <td width="10" align="center" valign="baseline"></td>

        </xsl:otherwise>

      </xsl:choose>

      <td align="left" valign="top" width="800">

        <font color="#990000"><xsl:number format="1.1.1 " level="multiple"

                                          count="strucunit[@n='2']

                                          | strucunit[@n='3']

                                          | strucunit[@n='4']

                                          | strucunit[@n='5']

                                          | strucunit[@n='6']

                                          | strucunit[@n='7']

                                          | strucunit[@n='8']"/></font>

        <xsl:apply-templates select="strucdesc/title" mode="toc"/>

      </td>

      </tr>

    </table>

    <xsl:if test="($toc.depth > 6

                   and strucunit[@n='7']/strucdesc/title)

                   or ($toc.id = descendant-or-self::strucunit/@id)">

      <xsl:apply-templates select="strucunit[@n='7']" mode="toc"/>

    </xsl:if>

  </xsl:if>

</xsl:template>

 

<!-- ====================================================================== -->

<!-- Level 7 Template                                                       -->

<!-- ====================================================================== -->

 

<xsl:template match="strucunit[@n='7']" mode="toc">

  <xsl:variable name="title" select="strucdesc/title"/>

  <xsl:variable name="text">

    <xsl:copy-of select="descendant-or-self::strucunit/strucdesc/description"/>

  </xsl:variable>

  <xsl:if test="$title">

    <table cellpadding="0" cellspacing="0" width="1020">

      <tr>

      <xsl:choose>

        <xsl:when test="($keyword != '0') and (contains($text, $keyword))">

          <td width="105" align="right">

            <font color="red">

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

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

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

            </xsl:call-template>

            </font>

          </td>

        </xsl:when>

        <xsl:otherwise>

          <td width="105"></td>

        </xsl:otherwise>

      </xsl:choose>

      <xsl:choose>

        <xsl:when test="($toc.depth &lt; 8

                         and strucunit[@n='8']/strucdesc/title)

                         and ($toc.id != @id)">

          <td width="10" align="center" valign="baseline">

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

          </td>

        </xsl:when>

        <xsl:when test="($toc.depth > 7

                         and strucunit[@n='8']/strucdesc/title)

                         or ($toc.id = descendant-or-self::strucunit/@id)">

          <td width="10" align="center" valign="baseline">

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

          </td>

        </xsl:when>

        <xsl:otherwise>

          <td width="10" align="center" valign="baseline"></td>

        </xsl:otherwise>

      </xsl:choose>

      <td align="left" valign="top" width="800">

        <font color="#990000"><xsl:number format="1.1.1 " level="multiple"

                                          count="strucunit[@n='2']

                                          | strucunit[@n='3']

                                          | strucunit[@n='4']

                                          | strucunit[@n='5']

                                          | strucunit[@n='6']

                                          | strucunit[@n='7']

                                          | strucunit[@n='8']"/></font>

        <xsl:apply-templates select="strucdesc/title" mode="toc"/>

      </td>

      </tr>

    </table>

    <xsl:if test="($toc.depth > 7

                   and strucunit[@n='8']/strucdesc/title)

                   or ($toc.id = descendant-or-self::strucunit/@id)">

      <xsl:apply-templates select="strucunit[@n='8']" mode="toc"/>

    </xsl:if>

  </xsl:if>

</xsl:template>

 

<!-- ====================================================================== -->

<!-- Level 8 Template                                                   -->

<!-- ====================================================================== -->

 

<xsl:template match="strucunit[@n='8']" mode="toc">

  <xsl:variable name="title" select="strucdesc/title"/>

  <xsl:variable name="text">

    <xsl:copy-of select="descendant-or-self::strucunit/strucdesc/description"/>

  </xsl:variable>

  <xsl:if test="$title">

    <table cellpadding="0" cellspacing="0" width="1020">

      <tr>

      <xsl:choose>

        <xsl:when test="($keyword != '0') and (contains($text, $keyword))">

          <td width="120" align="right">

            <font color="red">

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

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

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

            </xsl:call-template>

            </font>

          </td>

        </xsl:when>

        <xsl:otherwise>

          <td width="120"></td>

        </xsl:otherwise>

      </xsl:choose>

      <td width="10" align="center" valign="baseline"></td>

      <td align="left" valign="top" width="800">

        <font color="#990000"><xsl:number format="1.1.1 " level="multiple"

                                          count="strucunit[@n='2']

                                          | strucunit[@n='3']

                                          | strucunit[@n='4']

                                          | strucunit[@n='5']

                                          | strucunit[@n='6']

                                          | strucunit[@n='7']

                                          | strucunit[@n='8']"/></font>

        <xsl:apply-templates select="strucdesc/title" mode="toc"/>

      </td>

      </tr>

    </table>

  </xsl:if>

</xsl:template>

 

<!-- ====================================================================== -->

<!-- TOC Title Template                                                     -->

<!-- ====================================================================== -->

 

<xsl:template match="strucdesc/title" mode="toc">

  <xsl:choose>

    <xsl:when test="($chunk.id = ancestor::strucunit[1]/@id) and ($toc.id = '0')">

      <a name="X"></a>

      <span style="background-color: #FFCC66;">

      <xsl:apply-templates/>

      </span>

    </xsl:when>

    <xsl:when test="($chunk.id = ancestor::strucunit[1]/@id) and ($toc.id != '0')">

      <span style="background-color: #FFCC66;">

      <xsl:apply-templates/>

      </span>

    </xsl:when>

    <xsl:when test="$toc.id = ancestor::strucunit[1]/@id">

      <a name="X"></a>

      <a>

      <xsl:attribute name="href">

          <xsl:value-of select="$doc.path"/>

          <xsl:text>&amp;chunk.id=</xsl:text><xsl:value-of select=

                                                           "ancestor::strucunit[1]/@id"/>

          <xsl:text>&amp;toc.depth=</xsl:text><xsl:value-of select="$toc.depth"/>

          <xsl:text>&amp;toc.id=</xsl:text><xsl:value-of select="$toc.id"/>

          <xsl:text>&amp;keyword=</xsl:text><xsl:value-of select="$keyword"/>

        </xsl:attribute>

      <xsl:attribute name="target">_top</xsl:attribute>

      <xsl:apply-templates/>

      </a>

    </xsl:when>

    <xsl:otherwise>

      <a>

      <xsl:attribute name="href">

          <xsl:value-of select="$doc.path"/>

          <xsl:text>&amp;chunk.id=</xsl:text><xsl:value-of select=

                                                           "ancestor::strucunit[1]/@id"/>

          <xsl:text>&amp;toc.depth=</xsl:text><xsl:value-of select="$toc.depth"/>

          <xsl:text>&amp;toc.id=</xsl:text><xsl:value-of select="$toc.id"/>

          <xsl:text>&amp;keyword=</xsl:text><xsl:value-of select="$keyword"/>

        </xsl:attribute>

      <xsl:attribute name="target">_top</xsl:attribute>

      <xsl:apply-templates/>

      </a>

    </xsl:otherwise>

  </xsl:choose>

</xsl:template>

 

<!-- ====================================================================== -->

<!-- Expand and Collapse Templates                                          -->

<!-- ====================================================================== -->

 

<xsl:template name="expand">

  <xsl:variable name="toc.id" select="@id"/>

  <a>

    <xsl:attribute name="href">

      <xsl:value-of select="$doc.path"/>

      <xsl:text>&amp;chunk.id=</xsl:text><xsl:value-of select="$chunk.id"/>

      <xsl:text>&amp;toc.id=</xsl:text><xsl:value-of select="$toc.id"/>

      <xsl:text>&amp;keyword=</xsl:text><xsl:value-of select="$keyword"/>

    </xsl:attribute>

    <xsl:attribute name="target">_top</xsl:attribute>

    <img>

      <xsl:attribute name="src">

        <xsl:value-of select="$icon.path"/>expand.gif</xsl:attribute>

      <xsl:attribute name="border">0</xsl:attribute>

    </img>

  </a>

</xsl:template>

 

 

<xsl:template name="collapse">

  <xsl:variable name="toc.id" select="@id"/>

  <a>

    <xsl:attribute name="href">

      <xsl:value-of select="$doc.path"/>

      <xsl:text>&amp;chunk.id=</xsl:text><xsl:value-of select="$chunk.id"/>

      <xsl:text>&amp;toc.id=</xsl:text><xsl:value-of select="ancestor::strucunit[1]/@id"/>

      <xsl:text>&amp;keyword=</xsl:text><xsl:value-of select="$keyword"/>

    </xsl:attribute>

    <xsl:attribute name="target">_top</xsl:attribute>

    <img>

      <xsl:attribute name="src">

        <xsl:value-of select="$icon.path"/>collapse.gif</xsl:attribute>

      <xsl:attribute name="border">0</xsl:attribute>

    </img>

  </a>

</xsl:template>

 

<!-- ====================================================================== -->

<!-- Hit Count Template                                                     -->

<!-- ====================================================================== -->

 

<xsl:template name="count">

  <xsl:param name="text"/>

  <xsl:param name="keyword"/>

  <xsl:choose>

    <xsl:when test="contains($text, $keyword)">

      <xsl:variable name="total">

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

        <xsl:with-param name="text" select="substring-after($text, $keyword)"/>

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

      </xsl:call-template>

      </xsl:variable>

      <xsl:value-of select="$total + '1'"/>

    </xsl:when>

    <xsl:otherwise>0</xsl:otherwise>

  </xsl:choose>

</xsl:template>

 

</xsl:stylesheet>


 

14.3.4. Salisbury: structure.xsl

<!-- ====================================================================== -->

<!-- Stylesheet: structure.xsl                                              -->

<!-- Included in: dynaxml.xsl                                               -->

<!-- Version: 1.0 Date: 1/1/01                                              -->

<!-- Kirk V. Hastings                                                       -->

<!-- Institute for Advanced Technology in the Humanities                    -->

<!-- University of Virginia                                                 -->

<!-- ====================================================================== -->

 

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

 

<!-- ====================================================================== -->

<!-- Principal Containing Elements                                          -->

<!-- ====================================================================== -->

 

<xsl:template match="gdms">

  <xsl:apply-templates/>

</xsl:template>

 

<xsl:template match="gdmseader"/>

 

<xsl:template match="strucdesc"/>

 

<xsl:template match="resource"/>

 

<!-- ====================================================================== -->

<!-- Strucunit Stylesheet                                                   -->

<!-- ====================================================================== -->

 

<xsl:template match="strucunit">

  <xsl:variable name="width" select="number(@n)*15"/>

  <xsl:if test="$anchor.id=@id">

    <a name="X"/>

  </xsl:if>

  <xsl:choose>

    <xsl:when test="@type='salisbury_view'">

      <table>

      <tr>

        <td>

          <xsl:attribute name="width">

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

            </xsl:attribute>

        </td>

        <td>

          <b>

              <xsl:number format="1.1.1 " level="multiple" count="strucunit[@n='2']

                                                           | strucunit[@n='3']

                                                           | strucunit[@n='4']

                                                           | strucunit[@n='5']

                                                           | strucunit[@n='6']

                                                           | strucunit[@n='7']

                                                           | strucunit[@n='8']"/>

            </b>

        </td>

        <td>

          <xsl:comment>Empty Cell reserved for Title</xsl:comment>

        </td>

      </tr>

      <tr>

        <td>

          <xsl:attribute name="width">

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

            </xsl:attribute>

        </td>

        <td>

          <table>

            <tr>

            <td>

              <img>

                <xsl:attribute name="src">

                  <xsl:value-of select="$image.path"/>

                  <xsl:value-of select="resource[1]/identifier"/>

                  <xsl:value-of select="$thumb.params"/>       

                </xsl:attribute>

              </img>

            </td>

            <td>

              <table height="100%">

                <tr>

                  <td align="center" valign="top">

                  <a>

                    <xsl:attribute name="href">

                            <xsl:value-of select="$doc.path"/>

                            <xsl:text>&amp;chunk.id=</xsl:text><xsl:value-of select=

                                                                           "$chunk.id"/>

                            <xsl:text>&amp;toc.depth=</xsl:text><xsl:value-of select=

                                                                           "$toc.depth"/>

                            <xsl:text>&amp;toc.id=</xsl:text><xsl:value-of select=

                                                                           "$toc.id"/>

                            <xsl:text>&amp;plan.id=</xsl:text><xsl:value-of select="@id"/>

                            <xsl:text>&amp;enlarge.id=</xsl:text><xsl:value-of select=

                                                                           "@id"/>

                            <xsl:text>&amp;compare.id=</xsl:text><xsl:value-of select=

                                                                           "$compare.id"/>

                            <xsl:text>&amp;anchor.id=</xsl:text><xsl:value-of select=

                                                                           "@id"/>

                          </xsl:attribute>

                    <xsl:attribute name="target">_top</xsl:attribute>

                    <img>

                      <xsl:attribute name="src">

                              <xsl:value-of select="$icon.path"/>

                              <xsl:value-of select="$b_up.icon"/>

                            </xsl:attribute>

                      <xsl:attribute name="border">0</xsl:attribute>

                    </img>

                  </a>

                  </td>

                </tr>

                <tr>

                  <td valign="middle">

                  <xsl:if test="resource[2]/identifier">

                    <a>

                      <xsl:attribute name="href">

                              <xsl:value-of select="$doc.path"/>

                              <xsl:text>&amp;chunk.id=</xsl:text><xsl:value-of select=

                                                                           "$chunk.id"/>

                              <xsl:text>&amp;toc.depth=</xsl:text><xsl:value-of select=

                                                                           "$toc.depth"/>

                              <xsl:text>&amp;toc.id=</xsl:text><xsl:value-of select=

                                                                           "$toc.id"/>

                              <xsl:text>&amp;plan.id=</xsl:text><xsl:value-of select=

                                                                           "@id"/>

                              <xsl:text>&amp;enlarge.id=</xsl:text><xsl:value-of select=

                                                                           "$enlarge.id"/>

                              <xsl:text>&amp;compare.id=</xsl:text><xsl:value-of select=

                                                                           "$compare.id"/>

                              <xsl:text>&amp;anchor.id=</xsl:text><xsl:value-of select=

                                                                           "@id"/>

                            </xsl:attribute>

                      <xsl:attribute name="target">_top</xsl:attribute>

                      <xsl:text>plan</xsl:text>

                    </a>

                  </xsl:if>

                  </td>

                </tr>

                <tr>

                  <td align="center" valign="bottom">

                  <a>

                    <xsl:attribute name="href">

                            <xsl:value-of select="$doc.path"/>

                            <xsl:text>&amp;chunk.id=</xsl:text><xsl:value-of select=

                                                                           "$chunk.id"/>

                            <xsl:text>&amp;toc.depth=</xsl:text><xsl:value-of select=

                                                                           "$toc.depth"/>

                            <xsl:text>&amp;toc.id=</xsl:text><xsl:value-of select=

                                                                           "$toc.id"/>

                            <xsl:text>&amp;plan.id=</xsl:text><xsl:value-of select="@id"/>

                            <xsl:text>&amp;enlarge.id=</xsl:text><xsl:value-of select=

                                                                           "$enlarge.id"/>

                            <xsl:text>&amp;compare.id=</xsl:text><xsl:value-of select=

                                                                           "@id"/>

                            <xsl:text>&amp;anchor.id=</xsl:text><xsl:value-of select=

                                                                           "@id"/>

                          </xsl:attribute>

                    <xsl:attribute name="target">_top</xsl:attribute>

                    <img>

                      <xsl:attribute name="src">

                              <xsl:value-of select="$icon.path"/>

                              <xsl:value-of select="$b_down.icon"/>

                            </xsl:attribute>

                      <xsl:attribute name="border">0</xsl:attribute>

                    </img>

                  </a>

                  </td>

                </tr>

              </table>

            </td>

            </tr>

          </table>

        </td>

        <td>

          <xsl:apply-templates select="strucdesc/description"/>

        </td>

      </tr>

      </table>

    </xsl:when>

    <xsl:otherwise>

      <table>

      <tr>

        <td>

          <xsl:attribute name="width">

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

            </xsl:attribute>

        </td>

        <td>

          <xsl:apply-templates select="strucdesc/title"/>

        </td>

      </tr>

      </table>

    </xsl:otherwise>

  </xsl:choose>

  <xsl:apply-templates/>

</xsl:template>

 

<!-- ====================================================================== -->

<!-- Enlarge Mode for Top Content Frame                                     -->

<!-- ====================================================================== -->

 

<xsl:template match="strucunit" mode="enlarge">

  <p>

    <img>

      <xsl:attribute name="src">

        <xsl:value-of select="$icon.path"/>

        <xsl:value-of select="$line.icon"/>

      </xsl:attribute>

      <xsl:attribute name="border">0</xsl:attribute>

    </img>

  </p>

  <table>

    <tr>

      <td>

      <h4><xsl:number format="1.1.1 " level="multiple" count="strucunit[@n='2']

                                                       | strucunit[@n='3']

                                                       | strucunit[@n='4']

                                                       | strucunit[@n='5']

                                                       | strucunit[@n='6']

                                                       | strucunit[@n='7']

                                                       | strucunit[@n='8']"/></h4>

      </td>

    </tr>

    <tr>

      <td>

      <img>

        <xsl:attribute name="src">

          <xsl:value-of select="$image.path"/>

          <xsl:value-of select="key('strucunit-id',

                                $enlarge.id)/resource/identifier[@label='Photograph']"/>

          <xsl:value-of select="$enlarge.params"/>       

        </xsl:attribute>

      </img>

      </td>

    </tr>

  </table>

  <p>

    <img>

      <xsl:attribute name="src">

        <xsl:value-of select="$icon.path"/>

        <xsl:value-of select="$line.icon"/>

      </xsl:attribute>

      <xsl:attribute name="border">0</xsl:attribute>

    </img>

  </p>

</xsl:template>

 

<!-- ====================================================================== -->

<!-- Compare Mode for Bottom Content Frame                                  -->

<!-- ====================================================================== -->

 

<xsl:template match="strucunit" mode="compare">

  <p>

    <img>

      <xsl:attribute name="src">

        <xsl:value-of select="$icon.path"/>

        <xsl:value-of select="$line.icon"/>

      </xsl:attribute>

      <xsl:attribute name="border">0</xsl:attribute>

    </img>

  </p>

  <table>

    <tr>

      <td>

      <h4><xsl:number format="1.1.1 " level="multiple" count="strucunit[@n='2']

                                                       | strucunit[@n='3']

                                                       | strucunit[@n='4']

                                                       | strucunit[@n='5']

                                                       | strucunit[@n='6']

                                                       | strucunit[@n='7']

                                                       | strucunit[@n='8']"/></h4>

      </td>

    </tr>

    <tr>

      <td>

      <img>

        <xsl:attribute name="src">

          <xsl:value-of select="$image.path"/>

          <xsl:value-of select="key('strucunit-id',

                                  $compare.id)/resource/identifier[@label='Photograph']"/>

          <xsl:value-of select="$enlarge.params"/>       

        </xsl:attribute>

      </img>

      </td>

    </tr>

  </table>

  <p>

    <img>

      <xsl:attribute name="src">

        <xsl:value-of select="$icon.path"/>

        <xsl:value-of select="$line.icon"/>

      </xsl:attribute>

      <xsl:attribute name="border">0</xsl:attribute>

    </img>

  </p>

</xsl:template>

 

<!-- ====================================================================== -->

<!-- Ttle and Description Templates                                         -->

<!-- ====================================================================== -->

 

<xsl:template match="strucdesc/title">

  <xsl:variable name="text" select="."/>

  <xsl:choose>

    <xsl:when test="($keyword != '0') and (contains($text, $keyword))">

      <b>

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

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

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

      </xsl:call-template>

      </b>

    </xsl:when>

    <xsl:otherwise>

      <b><xsl:apply-templates/></b>

    </xsl:otherwise>

  </xsl:choose>

</xsl:template>

 

<xsl:template match="strucdesc/description">

  <xsl:variable name="text" select="."/>

  <xsl:choose>

    <xsl:when test="($keyword != '0') and (contains($text, $keyword))">

      <p>

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

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

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

      </xsl:call-template>

      </p>

    </xsl:when>

    <xsl:otherwise>

      <p><xsl:apply-templates/></p>

    </xsl:otherwise>

  </xsl:choose>

</xsl:template>

 

<!-- ====================================================================== -->

<!-- Keyword Marking Template                                               -->

<!-- ====================================================================== -->

 

<xsl:template name="mark">

  <xsl:param name="text"/>

  <xsl:param name="keyword"/>

  <xsl:choose>

    <xsl:when test="contains($text, $keyword)">

      <xsl:value-of select="substring-before($text, $keyword)"/>

      <a name="X"/>

      <font size="+1" color="red">

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

      </font>

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

          <xsl:with-param name="text" select="substring-after($text, $keyword)"/>

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

        </xsl:call-template>

    </xsl:when>

    <xsl:otherwise>

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

    </xsl:otherwise>

  </xsl:choose>

</xsl:template>

 

</xsl:stylesheet>


 

14.3.5. Rossetti: rossetti.xsl

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

 

<xsl:output method="html"

            indent="yes"

            encoding="utf-8"

            media-type="text/html"

            doctype-public="-//W3C//DTD HTML 4.0//EN"/>

 

  <xsl:strip-space elements="*"/>

 

  <xsl:param name="path">http://dl.lib.virginia.edu/servlet/ObjectServlet3</xsl:param>

  <xsl:param name="query-string">?action=dissem&#038;doid=   

               1007.lib.dl.test/rossetti/</xsl:param>

  <xsl:param name=

              "web-path">http://icarus.lib.virginia.edu/servlet/ObjectServlet3</xsl:param>

  <xsl:param name="web-query-string">?action=dissem&#038;doid=

               1007.lib.dl.test/rossetti-project/rossetti/</xsl:param>

  <xsl:param name="doc">test/test.xml</xsl:param>

  <xsl:param name="target">0</xsl:param>

  <xsl:param name="anchorName"></xsl:param>

 

  <xsl:template match="/">

    <xsl:choose>

      <xsl:when test="$target != '0'">

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

      </xsl:when>

      <xsl:when test="ram[@archivetype='rad']">

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

      </xsl:when>

      <xsl:when test="ram[@archivetype='rap']">

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

      </xsl:when>

      <xsl:when test="ram[@archivetype='raw']">

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

      </xsl:when>

      <xsl:otherwise>

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

      </xsl:otherwise>

    </xsl:choose>

  </xsl:template>

 

  <xsl:template name="popUp">

    <html>

      <head><title></title></head>

      <body text="#600000" bgcolor="#FFF3DC" link="#0000FF" vlink="#FF0000">

        <div align="center"><table width="95%" border="0"><tr><td>

      <font face="Georgia, Times, Garamond">

        <hr/>

      <!-- Could set a target type attribute and use an element name rather than 'node()' Performance? KVH -->

        <xsl:apply-templates select="//node()[generate-id()=$target]"/>

        <center><p>

          <a>

            <xsl:attribute name="href"><xsl:value-of select="$web-path"/>

                <xsl:value-of select="$web-query-string"/>search.html&#038;sigName=

                     web_default&#038;methName=get_as_page</xsl:attribute>

            <img>

            <xsl:attribute name="src"><xsl:value-of select="$web-path"/>

               <xsl:value-of select="$web-query-string"/>searchlink.jpg&#038;sigName=

                web_default&#038;methName=get_as_page</xsl:attribute>

            </img>

          </a>

          <a>

            <xsl:attribute name="href"><xsl:value-of select="$web-path"/>

               <xsl:value-of select="$web-query-string"/>archive.html&#038;sigName=

                    web_default&#038;methName=get_as_page</xsl:attribute>

            <img>

            <xsl:attribute name="src"><xsl:value-of select="$web-path"/>

               <xsl:value-of select="$web-query-string"/>archivelink.jpg&#038;sigName=

                    web_default&#038;methName=get_as_page</xsl:attribute>

            </img>

          </a>

        </p></center>

        <hr/>

      </font>

        </td></tr></table></div>

      </body>

    </html>

  </xsl:template>

 

  <xsl:template name="processRAD">

    <html>

      <head><title><xsl:value-of select="//titlestmt/title[1]"/></title></head>

      <body text="#600000" bgcolor="#FFF3DC" link="#0000FF" vlink="#0000FF">

       <div align="center"><table width="95%" border="0"><tr><td><div align="left">

      <font face="Georgia, Times, Garamond">

        <center>

          <img>

            <xsl:attribute name="src"><xsl:value-of select="$web-path"/>

               <xsl:value-of select="$web-query-string"/>radrapbar.jpg&#038;sigName=

                    web_default&#038;methName=get_as_page</xsl:attribute>

          </img>

        </center>

        <xsl:apply-templates/>

        </font>

        </div></td></tr></table></div>

      </body>

    </html>

  </xsl:template>

 

  <xsl:template name="processRAP">

    <xsl:variable name="image1" select="ram/@image"/>

    <xsl:variable name="image2" select="substring-after($image1,'a.')"/>

    <xsl:variable name="image" select="substring-before($image2,'.tif')"/>

    <html>

      <head><title></title></head>

      <body text="#600000" bgcolor="#FFF3DC" link="#0000FF" vlink="#0000FF">

      <div align="center"><table width="95%" border="0"><tr><td><div align="left">

      <font face="Georgia, Times, Garamond">

        <xsl:choose>

          <xsl:when test="$image = ''">

            <img width="300" align="right">

            <xsl:attribute name="src"><xsl:value-of select="$web-path"/>

               <xsl:value-of select="$web-query-string"/>excluded.jpg&#038;sigName=

                    web_default&#038;methName=get_as_page</xsl:attribute>

            </img>

          </xsl:when>

          <xsl:otherwise>

            <br/><br/>

            <script src="http://icarus.lib.virginia.edu/rossetti/imagesizer/common.js">

            </script>

            <applet code="ImageSizer.class" width="600" height="600"

                   mayscript="true" align="right">

            <param name="CodeBase" value=

                   "http://icarus.lib.virginia.edu/rossetti/imagesizer"/>

            <param name="Calibrate" value=

                    "http://icarus.lib.virginia.edu/rossetti/imagesizer/calibrate.html"/>

            <param name="ImageResolution" value="150"/>

            <param name="ScreenResolution">

              <xsl:attribute name="value">getCookie("DPI")</xsl:attribute>

            </param>

            <param name="ImageLocation">

              <xsl:attribute name="value">

                <xsl:value-of select="$path"/><xsl:value-of select="$query-string"/>

                    <xsl:text>a.</xsl:text><xsl:value-of select="$image"/>

                    <xsl:text>.tif&#038;sigName=rossetti_image&#038;methName=get_med

                    </xsl:text>

              </xsl:attribute>

            </param>

            </applet>

          </xsl:otherwise>

        </xsl:choose>

        <xsl:apply-templates/>

      </font>

      </div></td></tr></table></div>

      </body>

    </html>

  </xsl:template>

 

  <xsl:template name="processRAW">

    <html>

      <head><title><xsl:value-of select="//titlestmt/title[1]"/></title></head>

      <body text="#600000" bgcolor="#FFF3DC" link="#0000FF" vlink="#0000FF">

      <div align="center"><table width="95%" border="0"><tr><td><div align="left">

      <font face="Georgia, Times, Garamond">

        <center>

          <img>

            <xsl:attribute name="src"><xsl:value-of select="$web-path"/>

               <xsl:value-of select="$web-query-string"/>rawbar.jpg&#038;sigName=

                web_default&#038;methName=get_as_page</xsl:attribute>

          </img>

        </center>

        <xsl:apply-templates/>

      </font>

        </div></td></tr></table></div>

      </body>

    </html>

  </xsl:template>

 

  <xsl:template name="generateError">

    <html>

      <head><title></title></head>

      <body>

      <p>Error!</p>

      </body>

    </html>

  </xsl:template>

 

  <xsl:template name="body">

    <xsl:apply-templates/>

  </xsl:template>

 

<!-- titlestmt -->

 

  <xsl:template match="titlestmt/author">

    <center><xsl:apply-templates/></center>

  </xsl:template>

 

  <xsl:template match="titlestmt/title">

    <xsl:choose>

      <xsl:when test="position() = 1">

      <center><h2><font color="#000080"><xsl:apply-templates/></font></h2></center>

      </xsl:when>

      <xsl:otherwise>

      <center><h4>Alternately titled: <font color="#000080"><xsl:apply-templates/>

          </font></h4></center>

      </xsl:otherwise>

    </xsl:choose>

  </xsl:template>

 

  <xsl:template match="titlestmt/editor">

    <center><xsl:apply-templates/><br/></center>

  </xsl:template>

 

  <xsl:template match="respstmt">

  </xsl:template>

 

  <xsl:template match="sponsor">

  </xsl:template>

 

  <xsl:template match="funder">

  </xsl:template>

 

<!-- editionstmt -->

 

  <xsl:template match="editionstmt">

    <xsl:apply-templates/>

  </xsl:template>

 

  <xsl:template match="editionstmt/edition">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Electronic Archive Edition: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="editionstmt/copyright">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Copyright: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="editionstmt/note">

    <xsl:variable name="content1" select="."/>

    <xsl:variable name="content" select="substring-after($content1,'Credit:')"/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Copyright: </b><xsl:value-of select="$content"/>

    </xsl:if>

  </xsl:template>

  

  <xsl:template match="extent">

  </xsl:template>

 

  <xsl:template match="publicationstmt">

  </xsl:template>

 

  <xsl:template match="seriesstmt">

  </xsl:template>

 

  <xsl:template match="notesstmt">

    <p><i><xsl:apply-templates/></i></p>

  </xsl:template>

 

  <!-- CITNSTRUCT -->

 

  <xsl:template match="citnstruct">

    <xsl:variable name="content" select="descendant::*"/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <hr/><br/><font size="+1"><b><u>Production Description</u></b></font><br/>

      <xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="citnstruct/artist">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Artist: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="citnstruct/author">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Author: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="citnstruct/corrector">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Corrector: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="citnstruct/editor">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Editor: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

<!-- IMPRINT -->

 

  <xsl:template match="citnstruct/imprint/authorization">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Authorization: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="citnstruct/imprint/city">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>City: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="citnstruct/imprint/collation">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Collation: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="citnstruct/imprint/date">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Date: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="citnstruct/imprint/date">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Date: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="citnstruct/imprint/edition">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Edition: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="citnstruct/imprint/issue">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Issue: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="citnstruct/imprint/note">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/>&#160;&#160;&#160;&#160;<b>Note on Publication: </b><xsl:apply-templates/><br/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="citnstruct/imprint/pagination">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Pagination: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="citnstruct/imprint/prepub">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Pre-Publication Information: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="citnstruct/imprint/printer">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Printer: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="citnstruct/imprint/publisher">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Publisher: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

 

<!-- MS PRODUCTION -->

 

  <xsl:template match="citnstruct/msprod/assign">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Person to Whom the Manuscript was Assigned: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="citnstruct/msprod/collation">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Collation: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="citnstruct/msprod/date">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Date: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="citnstruct/msprod/note">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Note: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="citnstruct/msprod/type">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Type of Manuscript: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="citnstruct/note">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Note: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <!-- PROVENANCE -->

 

  <xsl:template match="provenance">

    <xsl:variable name="content" select="descendant::*"/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/>

      <br/>

      <font size="+1"><u><b>Provenance</b></u></font>

      <br/>

      <xsl:apply-templates/>

      <br/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="provenance/archivehist">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Archival History: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="provenance/location">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Current Location: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="provenance/purchaseprice">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Purchase Price: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="provenance/recnum">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Catalog Number: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="provenance/note">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/>&#160;&#160;&#160;&#160;<b>Note: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="citnstruct/scribe">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Scribe: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="citnstruct/title">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Document Title: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

 

  <!-- IMAGEPROD -->

 

  <xsl:template match="imageprod/date">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Date: </b><xsl:apply-templates/><br/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="imageprod/copy">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Copy: </b><xsl:apply-templates/><br/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="imageprod/exhibition">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Exhibition History: </b><xsl:apply-templates/><br/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="imageprod/note">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/>&#160;&#160;&#160;<b>Note: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="imageprod/originalcost">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Original Cost: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="imageprod/patron">

    <xsl:apply-templates/>

  </xsl:template>

 

  <xsl:template match="imageprod/patron/date">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Date Commissioned: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="imageprod/patron/name">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Patron: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <!-- PHYSICALDESC  -->

 

  <xsl:template match="physicaldesc">

    <xsl:variable name="content" select="descendant::*"/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/>

      <font size="+1"><b><u>Physical Description</u></b></font>

      <br/>

      <xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="physicaldesc/binding">

    <xsl:apply-templates/>

  </xsl:template>

 

  <xsl:template match="physicaldesc/binding/cover">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Cover: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="physicaldesc/binding/endpapers">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Endpapers: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="physicaldesc/binding/note">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Note on binding: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="physicaldesc/dimensions">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Dimensions: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="physicaldesc/frame">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Frame: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="physicaldesc/frame/note">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/>&#160;&#160;&#160;<b>Note: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

 

  <xsl:template match="physicaldesc/internalevidence">

    <xsl:apply-templates/>

  </xsl:template>

 

  <xsl:template match="physicaldesc/internalevidence/assign">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Assignment: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="physicaldesc/internalevidence/date">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Date on Image: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="physicaldesc/internalevidence/note">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/>&#160;&#160;&#160;&#160;&#160;<b>Note: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="physicaldesc/internalevidence/signature">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Signature: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="physicaldesc/internalevidence/other">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Other production information determined from the object: </b>

      <xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="physicaldesc/medium">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Medium: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="physicaldesc/note">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Other Physical Features: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="physicaldesc/paper">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Paper: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="physicaldesc/restoration/date">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Restored: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="physicaldesc/restoration/name">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Restored by: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="physicaldesc/restoration/desc">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Restoration Description: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="physicaldesc/signature">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Signature: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="physicaldesc/size">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Dimensions of Document: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="physicaldesc/technique">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Technique: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="physicaldesc/typography/columns">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Columns: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="physicaldesc/typography/margin">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Margin <xsl:value-of select="@type"/>: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="physicaldesc/typography/pagelines/length">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Length of Lines: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="physicaldesc/typography/pagelines/number">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Lines per Page: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="physicaldesc/typography/typeface/font">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Font: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="physicaldesc/typography/typeface/point">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Point: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="physicaldesc/typography/note">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/>

      <b>Note on Typography: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

 

  <xsl:template match="physicaldesc/watermark">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Watermark: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

 

  <!-- COMMENTARIES -->

 

  <xsl:template match="commentaries">

    <xsl:variable name="content" select="section/p"/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <hr/><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="commentaries/head">

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

  </xsl:template>

 

  <xsl:template match="commentaries/section">

    <xsl:variable name="content" select="p"/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="commentaries/section/head">

    <h4><a Target="_blank"><xsl:value-of select="."/></a></h4>

  </xsl:template>

 

  <xsl:template match="commentaries/section/p">

    <div align="center"><table width="95%" border="0"><tr><td><div align="left">

      <xsl:apply-templates/>

    </div></td></tr></table></div>

  </xsl:template>

 

  <xsl:template match="commentaries/section/p/bibl/city">

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

  </xsl:template>

 

  <xsl:template match="commentaries/section/p/bibl/publisher">

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

  </xsl:template>

 

  <xsl:template match="commentaries/section/p/bibl/date">

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

  </xsl:template>

 

 

 

 

 

  <!-- REPRODUCTION -->

 

  <xsl:template match="reproduction">

    <xsl:variable name="content" select="repro/bibl"/>

    <xsl:variable name="contentxref" select="repro/bibl/xref"/>

    <xsl:choose>

     <xsl:when test="($content != '') and ($content != ' ')">

      <p><b>Reproductions: </b><xsl:apply-templates/></p>

     </xsl:when>

     <xsl:when test="($contentxref != '') and ($contentxref != ' ')">

      <p><b>Reproductions: </b><xsl:apply-templates/></p>

     </xsl:when>

    </xsl:choose>

  </xsl:template>

 

  <xsl:template match="repro">

    <xsl:variable name="image1" select="@image"/>

    <xsl:variable name="image2" select="substring-after($image1,'a.')"/>

    <xsl:variable name="image" select="substring-before($image2,'.tif')"/>

    <xsl:choose>

      <xsl:when test="@image='a.'">

        <p>

        <img>

          <xsl:attribute name="src"><xsl:value-of select="$web-path"/>

              <xsl:value-of select="$web-query-string"/>unavailable.jpg&#038;sigName=

               web_default&#038;methName=get_as_page</xsl:attribute>

        </img>

        &#160;&#160;<xsl:apply-templates/>&#160;

      </p>

      </xsl:when>

      <xsl:when test="$image = ''">

      <p>

        <img>

          <xsl:attribute name="src"><xsl:value-of select="$web-path"/>

              <xsl:value-of select="$web-query-string"/>unavailable.jpg&#038;sigName=

               web_default&#038;methName=get_as_page</xsl:attribute>

        </img>

        &#160;&#160;<xsl:apply-templates/>&#160;

      </p>

      </xsl:when>

      <xsl:otherwise>

      <p>

        <a>

          <xsl:attribute name="href"><xsl:value-of select="$path"/>            

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

                a.<xsl:value-of select="$image"/>.tif&#038;sigName=

                rossetti_image&#038;methName=get_med</xsl:attribute>

          <xsl:attribute name="target">new</xsl:attribute>

          <img alt="image">

            <xsl:attribute name="src"><xsl:value-of select="$path"/>

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

                a.<xsl:value-of select="$image"/>.tif&#038;sigName=

                rossetti_image&#038;methName=get_thumb</xsl:attribute>

          </img>

        </a>

        &#160;<xsl:apply-templates/>

      </p>

      </xsl:otherwise>

    </xsl:choose>

  </xsl:template>

 

  <xsl:template match="repro/note">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      &#160;&#160;&#160;<b>Image: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="repro/bibl/xptr">

    <xsl:variable name="doc" select="@doc"/>

    <xsl:variable name="type" select="substring(@doc, string-length(@doc)-3)"/>

    <xsl:choose>

      <xsl:when test="$type = '.tif'">

      <a>

        <xsl:attribute name="href"><xsl:value-of select="$path"/>

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

           <xsl:value-of select="$doc"/>&#038;sigName=rossetti_image&#038;methName=

           get_med</xsl:attribute>

        <img border="0">

          <xsl:attribute name="src"><xsl:value-of select="$web-path"/>

             <xsl:value-of select="$web-query-string"/>piclink.jpg&#038;sigName=

              web_default&#038;methName=get_as_page</xsl:attribute>

        </img>

      </a>

      </xsl:when>

      <xsl:otherwise>

      <a>

        <xsl:attribute name="href"><xsl:value-of select="$path"/>

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

            <xsl:value-of select="$doc"/>.sgml&#038;sigName=rossetti_text&#038;methName=

             get_text</xsl:attribute>

        <img border="0">

          <xsl:attribute name="src"><xsl:value-of select="$web-path"/>

              <xsl:value-of select="$web-query-string"/>piclink.jpg&#038;sigName=

               web_default&#038;methName=get_as_page</xsl:attribute>

        </img>

      </a>

      </xsl:otherwise>

    </xsl:choose>

  </xsl:template>

 

  <xsl:template match="repro/bibl/xref">

    <xsl:variable name="doc" select="@doc"/>

    <xsl:variable name="type" select="substring(@doc, string-length(@doc)-3)"/>

    <xsl:variable name="pagenumber1" select="@from"/>

    <xsl:choose>

      <xsl:when test="$type = '.tif'">

      <a>

        <xsl:attribute name="href"><xsl:value-of select="$path"/>

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

           <xsl:value-of select="$doc"/>&#038;sigName=rossetti_image&#038;methName=

            get_med</xsl:attribute>

        <xsl:apply-templates/>

      </a>

      </xsl:when>

      <xsl:otherwise>

      <a>

        <xsl:attribute name="href"><xsl:value-of select="$path"/>

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

            <xsl:value-of select="$doc"/>.sgml&#038;sigName=rossetti_text&#038;methName=

             get_text&#038;anchorName=a.r.p<xsl:choose>

            <xsl:when test="substring($pagenumber1, 1, 1)= '['">

            <xsl:variable name="pagenumber2" select="substring-after($pagenumber1,'[')"/>

            <xsl:variable name="pagenumber" select="substring-before($pagenumber2,']')"/>

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

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

            </xsl:otherwise></xsl:choose></xsl:attribute>

        <xsl:apply-templates/>

      </a>

      </xsl:otherwise>

    </xsl:choose>

  </xsl:template>

 

  <xsl:template match="repro/color">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      &#160;&#160;<b>Color: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="repro/size">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      &#160;&#160;<b>Size: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

 

  <!-- ENCODINGDESC -->

 

  <xsl:template match="encodingdesc">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

     <b>Encoding Procedures: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <!-- PROFILEDESC -->

 

  <xsl:template match="profiledesc">

    <xsl:variable name="content" select="descendant::*"/>

    <xsl:variable name="radraptest" select="ancestor::ram/@archivetype"/>

    <xsl:if test="($content != '')

                   and ($content != ' ')

                   and ($radraptest !='rad')

                   and ($radraptest !='rap')">

      <hr/>

      <h3><u>Description of the Work</u></h3>

      <xsl:apply-templates/><hr/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="profiledesc/addressee">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Addressee: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="profiledesc/classification/scheme">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Classification Scheme of Iconographical Features: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="profiledesc/classification/keyword">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Scheme Keyword: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="profiledesc/date">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Date: </b><xsl:apply-templates/><br/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="profiledesc/description">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Description: </b><br/><xsl:apply-templates/><br/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="profiledesc/form">

    <p><xsl:apply-templates/></p>

  </xsl:template>

 

  <xsl:template match="profiledesc/form/genre">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Genre: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="profiledesc/form/meter">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Meter: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="profiledesc/form/note">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/>&#160;&#160;&#160;<b>Note: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="profiledesc/form/rhyme">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <b>Rhyme: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="profiledesc/model">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <b>Model: </b><xsl:apply-templates/><br/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="profiledesc/model/note">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/>&#160;&#160;&#160;<b>Note: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="profiledesc/repainting">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><br/><b>Repainting: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="profiledesc/repainting/desc">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/>&#160;&#160;&#160;<xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

<!-- SOURCEDESC -->

 

  <xsl:template match="profiledesc/source">

    <xsl:variable name="content" select="descendant::*"/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <p><b>Sources of the Work:</b><br/><xsl:apply-templates/></p>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="profiledesc/source/listcitn/citnliterary/bibl">

    <xsl:variable name="content" select="descendant::*"/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/>&#160;&#160;&#160;<b>Literary Source: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="profiledesc/source/listcitn/citnliterary/note">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/>&#160;&#160;&#160;<xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="profiledesc/source/listcitn/citntranslationoriginal/bibl">

    <xsl:variable name="content" select="descendant::*"/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/>&#160;&#160;&#160;<b>Translated Work: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="profiledesc/source/listcitn/citntranslationoriginal/note">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/>&#160;&#160;&#160;<xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="profiledesc/source/listcitn/citnpictorial/title">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/>&#160;&#160;&#160;<b>Pictorial Object: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="profiledesc/source/listcitn/citnpictorial/artist">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/>&#160;&#160;&#160;&#160;<b>Artist: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="profiledesc/source/listcitn/citnpictorial/location">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/>&#160;&#160;&#160;&#160;<b>Location: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="profiledesc/source/listcitn/citnpictorial/bibl">

    <xsl:variable name="content" select="descendant::*"/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/>&#160;&#160;&#160;&#160;<b>Bibliographic Information: </b>

         <xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="profiledesc/source/listcitn/citnpictorial/note">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/>&#160;&#160;&#160;&#160;<b>Other Information: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="profiledesc/source/listcitn/citnmythic/name">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/>&#160;&#160;&#160;<b>Myth: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="profiledesc/source/listcitn/citnmythic/culture">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/>&#160;&#160;&#160;&#160;<b>Culture: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="profiledesc/source/listcitn/citnmythic/bibl">

    <xsl:variable name="content" select="descendant::*"/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/>&#160;&#160;&#160;&#160;<b>Bibliographic Information: </b>

         <xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="profiledesc/source/listcitn/citnmythic/note">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/>&#160;&#160;&#160;&#160;<b>Other Information: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="profiledesc/source/listcitn/citnhistorical/event">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/>&#160;&#160;&#160;<b>Historical Event: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="profiledesc/source/listcitn/citnhistorical/place">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/>&#160;&#160;&#160;&#160;<b>Place: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="profiledesc/source/listcitn/citnhistorical/date">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/>&#160;&#160;&#160;&#160;<b>Date: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="profiledesc/source/listcitn/citnhistorical/bibl">

    <xsl:variable name="content" select="descendant::*"/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/>&#160;&#160;&#160;&#160;<b>Bibliographic Information: </b>

         <xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="profiledesc/source/listcitn/citnhistorical/note">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/>&#160;&#160;&#160;&#160;<b>Other Information: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="profiledesc/source/listcitn/citnautobiographical/name">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/>&#160;&#160;&#160;<b>Autobiographical Event: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="profiledesc/source/listcitn/citnautobiographical/place">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/>&#160;&#160;&#160;&#160;<b>Place: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="profiledesc/source/listcitn/citnautobiographical/date">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/>&#160;&#160;&#160;&#160;<b>Date: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="profiledesc/source/listcitn/citnautobiographical/bibl">

    <xsl:variable name="content" select="descendant::*"/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/>&#160;&#160;&#160;&#160;<b>Bibliographic Information: </b>

         <xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="profiledesc/source/listcitn/citnautobiographical/note">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/>&#160;&#160;&#160;&#160;<b>Other Information: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="profiledesc/source/listcitn/citnscenic/place">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/>&#160;&#160;&#160;<b>Geographical Scene: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="profiledesc/source/listcitn/citnscenic/date">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/>&#160;&#160;&#160;&#160;<b>Date: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="profiledesc/source/listcitn/citnscenic/bibl">

    <xsl:variable name="content" select="descendant::*"/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/>&#160;&#160;&#160;&#160;<b>Bibliographic Information: </b>

         <xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="profiledesc/source/listcitn/citnscenic/note">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/>&#160;&#160;&#160;&#160;<b>Other Information: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="profiledesc/subject">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Subject: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <!-- TEXT -->

 

  <xsl:template match="text">

    <div align="left"><table width="700" border="0"><tr><td width="699">

      <br/><br/>

      <center>

      <img>

        <xsl:attribute name="src"><xsl:value-of select="$web-path"/>

           <xsl:value-of select="$web-query-string"/>radrapbar.jpg&#038;sigName=

            web_default&#038;methName=get_as_page</xsl:attribute>

      </img>

      </center>

      <br/>

      <xsl:apply-templates/>

    </td></tr></table></div>

   </xsl:template>

 

  <!-- FRONT -->

 

  <xsl:template match="titlepage">

    <center><xsl:apply-templates/></center>

  </xsl:template>

 

  <xsl:template match="titlepage/docauthor">

    <br/><xsl:apply-templates/>

  </xsl:template>

 

  <xsl:template match="docdate">

    <p><xsl:apply-templates/></p>

  </xsl:template>

 

  <xsl:template match="docedition">

    <p><xsl:apply-templates/></p>

  </xsl:template>

 

  <xsl:template match="doceditor">

    <p><xsl:apply-templates/></p>

  </xsl:template>

 

  <xsl:template match="docimprint">

    <xsl:apply-templates/>

  </xsl:template>

 

  <xsl:template match="docimprint/date">

    <xsl:apply-templates/>

  </xsl:template>

 

  <xsl:template match="docimprint/lb">

    <br/>

  </xsl:template>

 

  <xsl:template match="epigraph">

    <p><xsl:apply-templates/></p>

  </xsl:template>

 

  <xsl:template match="titlepart">

    <p><xsl:apply-templates/></p>

  </xsl:template>

 

  <xsl:template match="titlepart/lb">

    <br/>

  </xsl:template>

 

  <!-- Structural Divisions -->

 

  <xsl:template match="div0">

    <xsl:choose>

      <xsl:when test="@type='title'">

      <center><xsl:apply-templates/></center>

      </xsl:when>

      <xsl:when test="@type='half title'">

      <center><xsl:apply-templates/></center>

      </xsl:when>

      <xsl:when test="@type='advertisement'">

      <center><xsl:apply-templates/></center>

      </xsl:when>

      <xsl:when test="@type='dedication'">

      <center><xsl:apply-templates/></center>

      </xsl:when>

      <xsl:when test="@type='colophon'">

      <center><xsl:apply-templates/></center>

      </xsl:when>

      <xsl:otherwise>

      <p><xsl:apply-templates/></p>

      </xsl:otherwise>

    </xsl:choose>

  </xsl:template>

 

  <xsl:template match="div0/p">

    <p><spacer type="block" width="10"/><xsl:apply-templates/></p>

  </xsl:template>

 

  <xsl:template match="div1">

    <p><xsl:apply-templates/></p>

  </xsl:template>

 

  <xsl:template match="div1/p">

    <spacer type="block" width="10"/><p><xsl:apply-templates/></p>

  </xsl:template>

 

  <xsl:template match="div2">

    <p><xsl:apply-templates/></p>

  </xsl:template>

 

  <xsl:template match="div3">

    <p><xsl:apply-templates/></p>

  </xsl:template>

 

  <xsl:template match="div4">

    <p><xsl:apply-templates/></p>

  </xsl:template>

 

  <xsl:template match="div5">

    <p><xsl:apply-templates/></p>

  </xsl:template>

 

  <xsl:template match="div6">

    <p><xsl:apply-templates/></p>

  </xsl:template>

 

  <xsl:template match="divheader">

    <xsl:apply-templates/>

  </xsl:template>

 

  <xsl:template match="divheader/note">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/>&#160;&#160;&#160;&#160;&#160;&#160;<table border="1" >

      <tr><td><font color="orange"><b>Editorial Note: </b></font>

      <xsl:apply-templates/></td></tr></table><br/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="divheader/title">

    <br/><b>

      <a>

      <xsl:attribute name="name"><xsl:value-of select="@id"/></xsl:attribute>

      </a>

      &#160;&#160;&#160;&#160;&#160;&#160;&#160;<xsl:apply-templates/></b>

  </xsl:template>

 

  <xsl:template match="divheader/title/lb">

    <br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;<xsl:apply-templates/>

  </xsl:template>

 

  <xsl:template match="divheader/commentary">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <p>

      <table border="1" ><tr><td><font color="orange">Editorial Note</font>:

       <xsl:apply-templates/>

      </td></tr></table></p>

    </xsl:if>

  </xsl:template>

 

 

 

  <!-- Other Structural Divisions -->

 

  <xsl:template match="basis">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <p><b>Basis Text: </b><xsl:apply-templates/></p>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="gloss">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <font color="red">Gloss: </font>&#160;&#160;<xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="linenotes">

    <xsl:variable name="content" select="basis"/>

    <xsl:if test="($content !='') and ($content != ' ')">

      <hr/>

      <h3><u>Annotations to Verse</u></h3>

      <xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="lines">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content !='') and ($content != ' ')">

      <p><b>Line <xsl:value-of select="@n"/></b>&#160;&#160;<xsl:apply-templates/></p>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="gloss">

    <xsl:apply-templates/>

  </xsl:template>

 

  <xsl:template match="paranotes">

    <xsl:variable name="content" select="basis"/>

    <xsl:if test="($content !='') and ($content != ' ')">

      <hr/>

      <h3><u>Annotations to Prose</u></h3>

      <xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="paras">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content !='') and ($content != ' ')">

      <p><b><xsl:value-of select="@n"/></b>&#160;&#160;<xsl:apply-templates/></p>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="readingtext">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <center><b>Reading Text: </b><xsl:apply-templates/></center>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="textual">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <font color="red">Textual: </font>&#160;&#160;<xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="viewingimage">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <center><b>Viewing Image: </b><xsl:apply-templates/></center>

    </xsl:if>

  </xsl:template>

 

  <!-- Common Elements -->

 

  <xsl:template match="add">

    <font color="green">&#160;<xsl:apply-templates/></font>&#160;

  </xsl:template>

 

  <xsl:template match="bibl">

    <xsl:choose>

      <xsl:when test="ancestor::section[@type='biblio']">

      <li><xsl:apply-templates/></li>

      </xsl:when>

      <xsl:otherwise>

      <xsl:apply-templates/>

      </xsl:otherwise>

    </xsl:choose>

  </xsl:template>

 

  <xsl:template match="bibl/date">

    <xsl:apply-templates/>

  </xsl:template>

 

  <xsl:template match="bibl/note">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <table border="1" ><tr><td><font size="-1"><center><font color="orange">

       <b>Editorial Note: </b></font></center></font>

       <xsl:apply-templates/></td></tr></table>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="bibl/note/p">

    <br/><xsl:apply-templates/><br/>

  </xsl:template>

 

  <xsl:template match="bibliosig">

    <center><i>Sig. <xsl:apply-templates/></i></center>

  </xsl:template>

 

  <xsl:template match="del">

    <font color="red">&#160;<strike><xsl:apply-templates/></strike></font>

  </xsl:template>

 

 

  <xsl:template match="figure">

    <xsl:variable name="entity1" select="@entity"/>

    <xsl:variable name="entity2" select="substring-after($entity1,'a.')"/>

    <xsl:variable name="entity" select="substring-before($entity2,'.tif')"/>

    <xsl:variable name="idname" select="@id"/>

    <xsl:choose>

      <xsl:when test="($entity = '')">

        <a>

          <xsl:attribute name="name"><xsl:value-of select="$idname"/></xsl:attribute>

        </a>

      <p><center>

        <img>

          <xsl:attribute name="src"><xsl:value-of select="$web-path"/>

             <xsl:value-of select="$web-query-string"/>excluded.jpg&#038;sigName=

              web_default&#038;methName=get_as_page</xsl:attribute>

        </img>

          <br/>

          <xsl:apply-templates/>

      </center></p><br/>

      </xsl:when>

      <xsl:otherwise>

        <a>

          <xsl:attribute name="name"><xsl:value-of select="$idname"/></xsl:attribute>

        </a>

      <p><center>

        <img alt="image">

          <xsl:attribute name="src"><xsl:value-of select="$path"/>

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

              a.<xsl:value-of select="$entity"/>.tif&#038;sigName=

              rossetti_image&#038;methName=get_med</xsl:attribute>

        </img>

          <br/>

          <xsl:apply-templates/>

      </center></p><br/>

      </xsl:otherwise>

    </xsl:choose>

  </xsl:template>

 

  <xsl:template match="figure/figdesc">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <center><br/><table border="1" ><tr><td>

       <i><font color="orange">Editorial Description</font>: <xsl:apply-templates/>

       </i></td></tr></table></center>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="figure/head">

    <center><font color="orange">Transcription</font>: <xsl:apply-templates/></center>

  </xsl:template>

 

  <xsl:template match="gap">

    <font color="orange">~missing or illegible text~</font>

  </xsl:template>

 

  <xsl:template match="hi">

    <xsl:choose>

      <xsl:when test="@rend='b'">

      <b><xsl:apply-templates/></b>

      </xsl:when>

      <xsl:when test="@rend='c'">

      <xsl:apply-templates/>

      </xsl:when>

      <xsl:when test="@rend='center'">

      <center><xsl:apply-templates/></center>

      </xsl:when>

      <xsl:when test="@rend='i'">

      <i><xsl:apply-templates/></i>

      </xsl:when>

      <xsl:when test="@rend='sc'">

      <xsl:apply-templates/>

      </xsl:when>

      <xsl:when test="@rend='sup'">

      <sup><xsl:apply-templates/></sup>

      </xsl:when>

      <xsl:when test="@rend='u'">

      <u><xsl:apply-templates/></u>

      </xsl:when>

      <xsl:when test="@rend='ic'">

        <i><xsl:apply-templates/></i>

      </xsl:when>

      <xsl:when test="@rend='uc'">

        <u><xsl:apply-templates/></u>

      </xsl:when>

      <xsl:when test="@rend='bc'">

        <b><xsl:apply-templates/></b>

      </xsl:when>

      <xsl:when test="@rend='isc'">

        <i><xsl:apply-templates/></i>

      </xsl:when>

    </xsl:choose>

  </xsl:template>

 

  <xsl:template match="item">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <dd><xsl:apply-templates/></dd>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="lb">

    <br/><xsl:apply-templates/>

  </xsl:template>

 

  <xsl:template match="lg">

    <xsl:apply-templates/>

  </xsl:template>

 

  <xsl:template match="l">

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

    <xsl:variable name="indent" select="@indent"/>

    <xsl:variable name="part" select="@part"/>

 

<!-- line numbering every tenth line: test for line number length, if true then test for zero as last digit, if true then print line number attribute with spaces, otherwise print spaces -->

 

    <xsl:choose>

      <xsl:when test="string-length(@n)=2">

        <xsl:if test="substring(@n, 2, 1)='0'">

          <xsl:value-of select="@n"/>&#160;&#160;&#160;

        </xsl:if>

        <xsl:if test="substring(@n, 2, 1) > '0 '">

          &#160;&#160;&#160;&#160;&#160;&#160;&#160;

        </xsl:if>

      </xsl:when>

 

      <xsl:when test="string-length(@n)=3">

        <xsl:if test="substring(@n, 3, 1)='0'">

          <xsl:value-of select="@n"/>&#160;

        </xsl:if>

        <xsl:if test="substring(@n, 3, 1) > '0 '">

          &#160;&#160;&#160;&#160;&#160;&#160;&#160;

        </xsl:if>

      </xsl:when>

 

      <xsl:when test="string-length(@n)=4">

        <xsl:if test="substring(@n, 4, 1)='0'">

          <xsl:value-of select="@n"/>;&#160;

        </xsl:if>

        <xsl:if test="substring(@n, 4, 1) > '0 '">

            &#160;&#160;&#160;&#160;&#160;&#160;&#160;

        </xsl:if>

      </xsl:when>

      <xsl:otherwise>

        &#160;&#160;&#160;&#160;&#160;&#160;&#160;

      </xsl:otherwise>

    </xsl:choose>

     

<!-- indentation -->

      <xsl:choose>

        <xsl:when test="$indent='1'">&#160;&#160;&#160;&#160;</xsl:when>

        <xsl:when test="$indent='2'">

                        &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</xsl:when>

        <xsl:when test="$indent='3'">

                        &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</xsl:when>

        <xsl:when test="$indent='4'">

                        &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;

                        &#160;&#160;&#160;&#160;&#160;&#160;</xsl:when>

        <xsl:when test="$indent='5'">

                        &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;

                        &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;

                        </xsl:when>

        <xsl:when test="$indent='6'">

                        &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;

                        &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;

                        &#160;&#160;&#160;&#160;</xsl:when>

        <xsl:when test="$indent='7'">

                        &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;

                        &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;

                        &#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;</xsl:when>

        <xsl:otherwise/>

      </xsl:choose>

 

    <a>

      <xsl:attribute name="name"><xsl:value-of select="@id"/></xsl:attribute>

    </a>

 

<!-- greek fix plus apply templates -->

 

    <xsl:choose>

      <xsl:when test="@lang='greek'">

        <font face="Arial Unicode MS"><xsl:apply-templates/></font><br/>

      </xsl:when>

      <xsl:otherwise>

        <xsl:apply-templates/><br/>

      </xsl:otherwise>

    </xsl:choose>

  </xsl:template>

 

  <xsl:template match="l/note">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><center><table border="1" ><tr><td>

      <b><font color="orange">Editorial Note:&#160;</font>

      <xsl:apply-templates/></b></td></tr></table></center>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="label">

    <p><dt/><xsl:apply-templates/></p>

  </xsl:template>

 

  <xsl:template match="lg">

    <p><xsl:apply-templates/></p>

  </xsl:template>

 

  <xsl:template match="list">

    <p><dl><xsl:apply-templates/></dl></p>

  </xsl:template>

 

  <xsl:template match="lv">

    <xsl:variable name="indent" select="@indent"/>

    <xsl:variable name="lastdigit" select="substring(@n, string-length($indent)-1)"/>

    <spacer type="block" width="5"/><spacer type="block" width="$indent5"/>

    <xsl:if test="$lastdigit = '0'">

      <spacer type="horizontal" size="100"/><xsl:value-of select="@n"/>

    </xsl:if>

    <xsl:apply-templates/><br/>

  </xsl:template>

 

  <xsl:template match="msadds">

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

    <xsl:choose>

      <xsl:when test="$type = 'prtrdir'">

      <p><font size="-1"><table><tr><td colspan="2">

      <i><b>Manuscript Addition: Printing Directions</b></i></td></tr>

      <xsl:apply-templates/></table></font></p>

      </xsl:when>

      <xsl:otherwise>

      <p><font size="-1"><table><tr><td colspan="2">

      <i><b>Manuscript Addition</b></i></td></tr><xsl:apply-templates/></table></font></p>

      </xsl:otherwise>

    </xsl:choose>

  </xsl:template>

 

  <xsl:template match="msadds/desc">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <tr><td align="right" valign="top"><i><b>Description: </b></i></td>

      <td align="left" valign="top"><xsl:apply-templates/></td></tr>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="msadds/trans">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <tr><td align="right" valign="top"><i><b>Transcription: </b></i></td>

      <td align="left" valign="top"><xsl:apply-templates/></td></tr>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="msadds/note">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <tr><td align="right" valign="top"><i><b>Note: </b></i></td>

      <td align="left" valign="top"><xsl:apply-templates/></td></tr>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="note">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><table border="1" ><tr><td>

      <b><font color="orange">Editorial Note:</font> </b>

      <xsl:apply-templates/></td></tr></table>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="omit">

    <xsl:variable name="extent" select="@extent"/>

    <xsl:variable name="first1" select="substring($extent,1,1)"/>

    <xsl:variable name="rest" select="substring-after($extent,$first1)"/>

    <xsl:variable name="first" select=

      "translate($first1,'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ')"/>

    <center><i><b><xsl:value-of select="$first"/>

    <xsl:value-of select="$rest"/> not transcribed</b></i></center>

  </xsl:template>

 

  <xsl:template match="ornament">

    <p><table border="1" ><tr><td>

    <font color="orange">Editorial Note:</font>&#160;

    <xsl:apply-templates/></td></tr></table></p>

  </xsl:template>

 

  <xsl:template match="ornlb">

    <center>

      <img>

      <xsl:attribute name="src"><xsl:value-of select="$web-path"/>

       <xsl:value-of select="$web-query-string"/>ornlb.gif&#038;sigName=            

        web_default&#038;methName=get_as_page</xsl:attribute>

      </img>

  </center>

  </xsl:template>

 

  <xsl:template match="p">

    <p><xsl:apply-templates/></p>

  </xsl:template>

 

  <xsl:template match="page">

    <xsl:variable name="image1" select="@image"/>

    <xsl:variable name="image2" select="substring-after($image1,'a.')"/>

    <xsl:variable name="image" select="substring-before($image2,'.tif')"/>

    <xsl:variable name="pagenumber1" select="@n"/>

    <br/><br/>

    <hr align="center"  width="95%" size="1"/>

    <br/>

    <center>

    <xsl:choose>

      <xsl:when test="$image = ''">

      <xsl:apply-templates/>

      </xsl:when>

      <xsl:otherwise>

      <a>

        <xsl:attribute name="href"><xsl:value-of select="$path"/>

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

            <xsl:text>a.</xsl:text><xsl:value-of select="$image"/>

            <xsl:text>.tif&#038;sigName=rossetti_image&#038;methName=

             get_med</xsl:text></xsl:attribute>

        <xsl:attribute name="target">new</xsl:attribute>

        <img border="0">

          <xsl:attribute name="src"><xsl:value-of select="$web-path"/>

              <xsl:value-of select="$web-query-string"/>page.gif&#038;sigName=

                web_default&#038;methName=get_as_page</xsl:attribute>

        </img>

      </a>

      </xsl:otherwise>

    </xsl:choose>

    </center>

    <a>

      <xsl:attribute name="name">a.r.p<xsl:choose>

           <xsl:when test="substring($pagenumber1, 1, 1)= '['">

           <xsl:variable name="pagenumber2" select="substring-after($pagenumber1,'[')"/>

           <xsl:variable name="pagenumber" select="substring-before($pagenumber2,']')"/>

           <xsl:value-of select="$pagenumber"/></xsl:when><xsl:otherwise>

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

           </xsl:choose></xsl:attribute>

    </a>

    <center>

      [ <xsl:value-of select="@n"/> ]

    </center><br/>

  </xsl:template>

 

  <xsl:template match="pageheader">

    <xsl:apply-templates/>

  </xsl:template>

 

  <xsl:template match="pageheader/note">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <center><table border="1" ><tr><td><font size="-1"><font color="orange">

      <b>Editorial Note: </b></font>

      <xsl:apply-templates/></font></td></tr></table></center><br/><br/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="printer">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <br/><b>Printer: </b><xsl:apply-templates/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="ref">

    <xsl:apply-templates/>

    <a>

      <xsl:attribute name="href">#<xsl:value-of select="@target"/></xsl:attribute>

      <xsl:attribute name="style">text-decoration: none</xsl:attribute>

      <xsl:attribute name="title">link</xsl:attribute>

      <xsl:text>*</xsl:text>

    </a>

  </xsl:template>

 

  <xsl:template match="trans">

    <xsl:variable name="content" select="."/>

    <xsl:if test="($content != '') and ($content != ' ')">

      <b>Transcription: </b><xsl:apply-templates/><br/>

    </xsl:if>

  </xsl:template>

 

  <xsl:template match="xref">

    <xsl:variable name="doc" select="@doc"/>

    <xsl:variable name="type" select="substring(@doc, string-length(@doc)-3)"/>

    <xsl:variable name="pagenumber1" select="@from"/>

    <!-- Need to reapply the scrolling_link. How is this going to work under FEDORA? KVH -->

      <xsl:choose>

      <xsl:when test="$type = '.tif'">

        <a>

          <xsl:attribute name="href"><xsl:value-of select="$path"/>

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

          <xsl:value-of select="$doc"/>&#038;sigName=

           rossetti_image&#038;methName=get_med</xsl:attribute>

          <xsl:apply-templates/>

        </a>

      </xsl:when>

      <xsl:otherwise>

        <a>

          <xsl:attribute name="href"><xsl:value-of select="$path"/>

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

          <xsl:value-of select="$doc"/>.sgml&#038;sigName=rossetti_text&#038;methName=

           get_text&#038;anchorName=a.r.p<xsl:choose>

          <xsl:when test="substring($pagenumber1, 1, 1)= '['">

          <xsl:variable name="pagenumber2" select="substring-after($pagenumber1,'[')"/>

          <xsl:variable name="pagenumber" select="substring-before($pagenumber2,']')"/>

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

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

          </xsl:choose></xsl:attribute>

          <xsl:apply-templates/>

        </a>

      </xsl:otherwise>

      </xsl:choose>

  </xsl:template>

 

</xsl:stylesheet>

 


Back to Table of Contents