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.
|
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 |
|
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.
|
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 |
|
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>
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.
<!-- ====================================================================== -->
<!-- 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>&doc.view=toc</xsl:text>
<xsl:text>&chunk.id=</xsl:text><xsl:value-of select="$chunk.id"/>
<xsl:text>&toc.depth=</xsl:text><xsl:value-of select="$toc.depth"/>
<xsl:text>&toc.id=</xsl:text><xsl:value-of select="$toc.id"/>
<xsl:text>&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>&doc.view=plan</xsl:text>
<xsl:text>&chunk.id=</xsl:text><xsl:value-of select="$chunk.id"/>
<xsl:text>&toc.depth=</xsl:text><xsl:value-of select="$toc.depth"/>
<xsl:text>&toc.id=</xsl:text><xsl:value-of select="$toc.id"/>
<xsl:text>&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>&doc.view=content1</xsl:text>
<xsl:text>&chunk.id=</xsl:text><xsl:value-of select="$chunk.id"/>
<xsl:text>&toc.depth=</xsl:text><xsl:value-of select="$toc.depth"/>
<xsl:text>&toc.id=</xsl:text><xsl:value-of select="$toc.id"/>
<xsl:text>&plan.id=</xsl:text><xsl:value-of select="$plan.id"/>
<xsl:text>&enlarge.id=</xsl:text><xsl:value-of select="$enlarge.id"/>
<xsl:text>&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>&doc.view=content2</xsl:text>
<xsl:text>&chunk.id=</xsl:text><xsl:value-of select="$chunk.id"/>
<xsl:text>&toc.depth=</xsl:text><xsl:value-of select="$toc.depth"/>
<xsl:text>&toc.id=</xsl:text><xsl:value-of select="$toc.id"/>
<xsl:text>&plan.id=</xsl:text><xsl:value-of select="$plan.id"/>
<xsl:text>&enlarge.id=</xsl:text><xsl:value-of select="$enlarge.id"/>
<xsl:text>&compare.id=</xsl:text><xsl:value-of select="$compare.id"/>
<xsl:text>&anchor.id=</xsl:text><xsl:value-of select="$anchor.id"/>
<xsl:text>&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>&chunk.id=</xsl:text><xsl:value-of select="$chunk.prev"/>
<xsl:text>&toc.depth=</xsl:text><xsl:value-of select="$toc.depth"/>
<xsl:text>&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>&chunk.id=</xsl:text><xsl:value-of select="$chunk.next"/>
<xsl:text>&toc.depth=</xsl:text><xsl:value-of select="$toc.depth"/>
<xsl:text>&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>
<!-- ====================================================================== -->
<!-- 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&doid=1007.lib.dl.test/text_gdms/salisbury&
sigName=web_salisbury_gdms&methName=get_dynaweb_view
</xsl:param>
<xsl:param name="image.path">http://dl.lib.virginia.edu/servlet/ObjectServlet3?
action=dissem&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&doid=1007.lib.dl.test/salisbury-project/salisbury/guide/howto.html&
sigName=web_default&methName=get_as_page
</xsl:param>
<xsl:param name="cathedral.page">http://dl.lib.virginia.edu/servlet/ObjectServlet3?
action=dissem&doid=1007.lib.dl.test/salisbury-project/salisbury/cathedral.html&
sigName=web_default&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">&sigName=web_image&methName=get_thumb</xsl:param>
<xsl:param name="enlarge.params">&sigName=web_image&methName=get_med</xsl:param>
<xsl:param name="plan.params">&sigName=web_image&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>
<!-- ====================================================================== -->
<!-- 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 < 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 < 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 < 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 < 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 < 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 < 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 < 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>&chunk.id=</xsl:text><xsl:value-of select=
"ancestor::strucunit[1]/@id"/>
<xsl:text>&toc.depth=</xsl:text><xsl:value-of select="$toc.depth"/>
<xsl:text>&toc.id=</xsl:text><xsl:value-of select="$toc.id"/>
<xsl:text>&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>&chunk.id=</xsl:text><xsl:value-of select=
"ancestor::strucunit[1]/@id"/>
<xsl:text>&toc.depth=</xsl:text><xsl:value-of select="$toc.depth"/>
<xsl:text>&toc.id=</xsl:text><xsl:value-of select="$toc.id"/>
<xsl:text>&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>&chunk.id=</xsl:text><xsl:value-of select="$chunk.id"/>
<xsl:text>&toc.id=</xsl:text><xsl:value-of select="$toc.id"/>
<xsl:text>&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>&chunk.id=</xsl:text><xsl:value-of select="$chunk.id"/>
<xsl:text>&toc.id=</xsl:text><xsl:value-of select="ancestor::strucunit[1]/@id"/>
<xsl:text>&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>
<!-- ====================================================================== -->
<!-- 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>&chunk.id=</xsl:text><xsl:value-of select=
"$chunk.id"/>
<xsl:text>&toc.depth=</xsl:text><xsl:value-of select=
"$toc.depth"/>
<xsl:text>&toc.id=</xsl:text><xsl:value-of select=
"$toc.id"/>
<xsl:text>&plan.id=</xsl:text><xsl:value-of select="@id"/>
<xsl:text>&enlarge.id=</xsl:text><xsl:value-of select=
"@id"/>
<xsl:text>&compare.id=</xsl:text><xsl:value-of select=
"$compare.id"/>
<xsl:text>&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>&chunk.id=</xsl:text><xsl:value-of select=
"$chunk.id"/>
<xsl:text>&toc.depth=</xsl:text><xsl:value-of select=
"$toc.depth"/>
<xsl:text>&toc.id=</xsl:text><xsl:value-of select=
"$toc.id"/>
<xsl:text>&plan.id=</xsl:text><xsl:value-of select=
"@id"/>
<xsl:text>&enlarge.id=</xsl:text><xsl:value-of select=
"$enlarge.id"/>
<xsl:text>&compare.id=</xsl:text><xsl:value-of select=
"$compare.id"/>
<xsl:text>&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>&chunk.id=</xsl:text><xsl:value-of select=
"$chunk.id"/>
<xsl:text>&toc.depth=</xsl:text><xsl:value-of select=
"$toc.depth"/>
<xsl:text>&toc.id=</xsl:text><xsl:value-of select=
"$toc.id"/>
<xsl:text>&plan.id=</xsl:text><xsl:value-of select="@id"/>
<xsl:text>&enlarge.id=</xsl:text><xsl:value-of select=
"$enlarge.id"/>
<xsl:text>&compare.id=</xsl:text><xsl:value-of select=
"@id"/>
<xsl:text>&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>
<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&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&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&sigName=
web_default&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&sigName=
web_default&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&sigName=
web_default&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&sigName=
web_default&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&sigName=
web_default&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&sigName=
web_default&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&sigName=rossetti_image&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&sigName=
web_default&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/>    <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/>    <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/>   <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/>   <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/>     <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&sigName=
web_default&methName=get_as_page</xsl:attribute>
</img>
  <xsl:apply-templates/> 
</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&sigName=
web_default&methName=get_as_page</xsl:attribute>
</img>
  <xsl:apply-templates/> 
</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&sigName=
rossetti_image&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&sigName=
rossetti_image&methName=get_thumb</xsl:attribute>
</img>
</a>
 <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 != ' ')">
   <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"/>&sigName=rossetti_image&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&sigName=
web_default&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&sigName=rossetti_text&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&sigName=
web_default&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"/>&sigName=rossetti_image&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&sigName=rossetti_text&methName=
get_text&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">