Print

Print


Tanya,
   Your stylesheet can be greatly simplified if two conditions exist:  you
have assigned a level attribute for each component and you are willing to
have the display of each level of component (series, subseries, and file)
appear in a consistent way irrespective of its parentage.

   You ask, "what does that last part mean?"  Your example below suggests
that like most of us you use indention to show hierarchy.   However, the
hierarchy is not always consistent, that is, in the example below some
containers (I assume you mean files) are the level below a series and
sometimes the level below a subseries.  If the appearance of the example
below persists through the mail, you will notice that the first two
containers are indented two columns but the third and fourth by three
columns.   If you are willing to have all the series, all the subseries and
all the files intended the same amount, you can rewrite your stylesheet so
that your templates match the level attributes and not the components
levels.  But as I say, you need to have encoded the level attributes in your
EAD documents and you need to have a sufficiently flat arrangement of the
collection so that you have unique level values to differentiate all
descriptive levels.


Subgroup 1
   Series I
     container
   Series II
     container
   Series III
     Subseries 1
       container
     Subseries 2
       container
Subgroup 2

Michael

-----Original Message-----
From: Tanya Elder [mailto:[log in to unmask]]
Sent: Tuesday, July 30, 2002 9:59 AM
To: [log in to unmask]
Subject: Creating a c04 level in a stylesheet


Hello,

I tried to send this message yesterday, but for some reason, it did not
make it to the listserv. Apologies for any duplications, if any.

I am somewhat new to stylesheet creation, though I have recently taken the
SAA stylesheet course at Pratt (thanks to Kris and Michael for last week's
class!) Now that I'm back at work, we have run into a probelm between a
newly created finding aid and a stylesheet that does not go beyond the c03
level. My colleague is using the following in her finding aid:

Subgroup 1
   Series I
     container
   Series II
     container
   Series III
     Subseries 1
       container
     Subseries 2
       container
Subgroup 2


We attempted to create a EAD using the above, but our stylesheet (as stated
above), does not go beyond the c03 level, nor do we have a subgroup
declared. I believe I can update a copy of an existing stylesheet with your
help and advice.  Our stylesheet is based on a variation of NYU's. Please
find the coding below.

Thanks,
Tanya Elder
Archivist (NHPRC)
Center for Jewish History
15 W. 16th Street
New York, NY 10011
(212) 294-8301 x1013
[log in to unmask]

<!-- dsc totally rewritten by lmyrick -->

<xsl:template name="dsc">

<xsl:for-each select="ead/archdesc/dsc">
<h3><a name="a23">
<xsl:apply-templates select="head"/>
</a></h3>

<p style="margin-left: 25 pt"><i>
<xsl:apply-templates select="p"/>
</i></p>
</xsl:for-each>

<!--INNA's edit: added <xsl:text> to make links to series work - 12/14/2001-
->
<xsl:for-each select="ead/archdesc/dsc/c01">
<table cellpadding="5" border="0">
<a><xsl:attribute name="name">series<xsl:number/>
</xsl:attribute><xsl:text>&#160;</xsl:text>
</a>
<tr><td colspan="4"><p class="h2"><b><xsl:apply-templates
select="did/unittitle"/></b>
<!-- added 2001/11/06 -->
<xsl:for-each select="did/physdesc">&#x00A0;&#x00A0;<xsl:apply-templates />
</xsl:for-each>
</p></td></tr>

<tr><td colspan="4"><p class="seriesabstract"><xsl:apply-templates
select="did/abstract"/></p></td></tr>


<!-- added 2001/11/06 -->
<xsl:if test="./child::arrangement">
<tr><td colspan="4"><p class="h2scopecontent"><b>Arrangement: </b></p>
<xsl:for-each select="arrangement/p">
<p class="seriesscope"><xsl:apply-templates/></p>
</xsl:for-each>
</td></tr>
</xsl:if>
<!--switched around scopecontent and arrangement -Inna, 5/13/2002-->
<xsl:if test="./child::scopecontent">
<tr><td colspan="4"><p class="h2scopecontent"><b>Scope and Content: </b></p>
<xsl:for-each select="scopecontent/p">
<p class="seriesscope"><xsl:apply-templates/></p>
</xsl:for-each>
</td></tr>
</xsl:if>
<hr/>

<xsl:variable name="subseriestitle">
<xsl:value-of select="c02/did/unittitle"/>
</xsl:variable>

<xsl:for-each select="c02">
<xsl:choose>
<xsl:when test="contains($subseriestitle, 'Subseries')">
   <tr><td colspan="4"><p class="h3subseries"><b><xsl:apply-templates
select="did/unittitle"/></b></p></td></tr>
</xsl:when>
<xsl:otherwise>

<xsl:if test="@level='recordgrp'">
   <tr><td colspan="4"><p class="h3subseries"><b><xsl:apply-templates
select="did/unittitle"/></b></p></td></tr>
</xsl:if>

<!-- added for Inna 0809 -->
<!--<xsl:if test="@level='file'">
   <tr><td colspan="4"><p class="file"><b><xsl:apply-templates
select="did/unittitle"/></b></p></td></tr>
</xsl:if>-->

</xsl:otherwise>
</xsl:choose>

<xsl:for-each select="scopecontent">
<tr><td colspan="4"><p class="h2scopecontent"><b>Scope and Content: </b></p>
<xsl:for-each select="p">
<p class="seriesscope"><xsl:apply-templates/></p>
</xsl:for-each>
</td></tr>
</xsl:for-each>

<xsl:for-each select="did/container">
<xsl:variable name="box-number" select="self::container[@type='box']"/>
  <xsl:choose>
    <xsl:when test="@type='box'">
<xsl:choose>
<xsl:when test="not(../../preceding-sibling::c02/did[container[@type='box']
=$box-number]
  or ../../preceding-sibling::c02//did[container[@type='box']=$box-number])
  or ../preceding-sibling::c02//did[container[@type='volume']]">
       <xsl:if test="./following-sibling::container[@type='folder']">
    <xsl:copy-of select="$box-and-folder-heading"/>
       </xsl:if>
       <xsl:if test="./following-sibling::container[@type='volume']">
    <xsl:copy-of select="$box-and-volume-heading"/>
       </xsl:if>
       <xsl:if test= "not(./following-sibling::container[@type='folder']
or ./following-sibling::container[@type='volume'])">
    <xsl:copy-of select="$box-heading"/>
       </xsl:if>

<tr><td width="10%" valign="top"><xsl:apply-templates
select="self::container[@type='box']/text()"/></td><td width="10%"
valign="top"><xsl:apply-templates select="following-sibling::container/text
()"/></td>
<td width="50%"><xsl:apply-templates select="following-
sibling::unittitle"/></td>
<td width="30%" valign="top"><xsl:apply-templates select="following-
sibling::unitdate/text()"/></td></tr>

</xsl:when>
<xsl:otherwise>

<tr><td width="10%" valign="top"><xsl:apply-templates
select="self::container[@type='box']/text()"/></td><td width="10%"
valign="top"><xsl:apply-templates select="following-sibling::container/text
()"/></td><td width="50%"><xsl:apply-templates select="following-
sibling::unittitle"/></td><td width="30%" valign="top"><xsl:apply-templates
select="following-sibling::unitdate/text()"/></td></tr>

</xsl:otherwise>
</xsl:choose>

    </xsl:when>
    <xsl:when test="@type='folder'">
      <!--<td><xsl:apply-templates/></td>-->
    </xsl:when>

    <!--<xsl:when test="@type='volume'">
      <td><xsl:apply-templates/></td>
    </xsl:when>-->

    <xsl:when test="@type='volume'">
<xsl:variable name="volume-number" select="self::container
[@type='volume']"/>
<xsl:choose>
<xsl:when test="not(../../preceding-sibling::c02/did[container
[@type='volume']=$volume-number]
  or ../../preceding-sibling::c02//did[container[@type='volume']=$volume-
number])">
    <xsl:copy-of select="$volume-heading"/>
      <tr><td width="10%" valign="top"><xsl:apply-templates
select="self::container[@type='volume']/text()"/></td><td width="10%"
valign="top"></td><td width="50%"><xsl:apply-templates select="following-
sibling::unittitle"/></td><td width="30%" valign="top"><xsl:apply-templates
select="following-sibling::unitdate/text()"/></td></tr>
</xsl:when>
<xsl:otherwise>
<!-- do nothing -->
</xsl:otherwise>
</xsl:choose>
    </xsl:when>

    <xsl:when test="@type='reel'">
    <xsl:copy-of select="$reel-heading"/>
      <tr><td valign="top"><xsl:apply-templates select="self::container
[@type='reel']/text()"/></td><td><xsl:apply-templates select="following-
sibling::unittitle"/></td></tr>
    </xsl:when>
    <xsl:otherwise>
      <xsl:apply-templates/>
    </xsl:otherwise>
  </xsl:choose>

</xsl:for-each>

<xsl:for-each select="c03/did/container">


<xsl:variable name="box-number" select="self::container[@type='box']"/>
  <xsl:choose>
    <xsl:when test="@type='box'">
<xsl:choose>
<xsl:when test="not(../../preceding-sibling::c03/did[container[@type='box']
=$box-number]
  or ../../preceding-sibling::c03//did[container[@type='box']=$box-number])
  or ../../preceding-sibling::c03/did[container[@type='volume']]">
       <xsl:if test="./following-sibling::container[@type='folder']">
    <xsl:copy-of select="$box-and-folder-heading"/>
       </xsl:if>
       <xsl:if test= "not(./following-sibling::container[@type='folder'])">
    <xsl:copy-of select="$box-heading"/>
       </xsl:if>
      <tr><td width="10%" valign="top"><xsl:apply-templates
select="self::container[@type='box']/text()"/></td><td width="10%"
valign="top"><xsl:apply-templates select="following-sibling::container
[@type='folder']/text()"/></td>
<td width="50%"><xsl:apply-templates select="following-
sibling::unittitle"/></td><td width="30%" valign="top"><xsl:apply-templates
select="following-sibling::unitdate/text()"/></td></tr>
</xsl:when>
<xsl:otherwise>
<!-- replicate this above -->
      <tr><td width="10%" valign="top"><xsl:apply-templates
select="self::container[@type='box']/text()"/></td><td width="10%"
valign="top"><xsl:apply-templates select="following-sibling::container
[@type='folder']/text()"/></td>
<td width="50%"><xsl:apply-templates select="following-
sibling::unittitle"/></td>
<td width="30%" valign="top"><xsl:apply-templates select="following-
sibling::unitdate/text()"/></td></tr>
</xsl:otherwise>
</xsl:choose>

    </xsl:when>
    <xsl:when test="@type='folder'">
      <!--<td><xsl:apply-templates select="."/></td>-->
    </xsl:when>

    <xsl:when test="@type='volume'">
<xsl:variable name="volume-number" select="self::container
[@type='volume']"/>
<xsl:choose>
<xsl:when test="not(../../preceding-sibling::c03/did[container
[@type='volume']=$volume-number]
  or ../../preceding-sibling::c03//did[container[@type='volume']=$volume-
number])">
    <xsl:copy-of select="$volume-heading"/>
      <tr><td width="10%" valign="top"><xsl:apply-templates
select="self::container[@type='volume']/text()"/></td><td width="10%"
valign="top"></td><td width="50%"><xsl:apply-templates select="following-
sibling::unittitle"/></td><td width="30%" valign="top"><xsl:apply-templates
select="following-sibling::unitdate/text()"/></td></tr>
</xsl:when>
<xsl:otherwise>

      <tr><td width="10%" valign="top"><xsl:apply-templates
select="self::container[@type='volume']/text()"/></td><td width="10%"
valign="top"></td><td width="50%"><xsl:apply-templates select="following-
sibling::unittitle"/></td><td width="30%" valign="top"><xsl:apply-templates
select="following-sibling::unitdate/text()"/></td></tr>
</xsl:otherwise>
</xsl:choose>
    </xsl:when>

<!--Inna's edit 01/14/2002-->


    <xsl:when test="@type='reel'">
    <xsl:copy-of select="$reel-heading"/>
      <tr><td valign="top"><xsl:apply-templates select="self::container
[@type='reel']/text()"/></td><td><xsl:apply-templates select="following-
sibling::unittitle"/></td><td valign="top"><xsl:apply-templates
select="following-sibling::unitdate/text()"/></td></tr>
    </xsl:when>
    <xsl:otherwise>
      <xsl:apply-templates/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:for-each>

<xsl:for-each select="unittitle">
<!--<xsl:apply-templates/>-->
</xsl:for-each>

<xsl:for-each select="unitdate">
<!--<xsl:apply-templates/>-->
</xsl:for-each>