Mode:

Compact lists

Showing:

Documentation
Parameters
Used by
References
Supersedes
Included from
Source
Stylesheet common_tagdocs.xsl
Documentation

Description

TEI stylesheet for weaving TEI ODD documents

This software is dual-licensed: 1. Distributed under a Creative Commons Attribution-ShareAlike 3.0 Unported License http://creativecommons.org/licenses/by-sa/3.0/ 2. http://www.opensource.org/licenses/BSD-2-Clause Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. This software is provided by the copyright holders and contributors "as is" and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall the copyright holder or contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage.

Author: See AUTHORS

Copyright: 2013, TEI Consortium

Included from
Stylesheet version 3.0
Template tei:ptr | tei:refweave
Namespace No namespace
Match tei:ptr | tei:ref
Mode weave
References
Import precedence 15
Source
<xsl:template match="tei:ptr | tei:ref" mode="weave">
  <xsl:choose>
    <xsl:when test="ancestor::tei:remarks or ancestor::tei:listRef or ancestor::tei:valDesc">
      <xsl:choose>
        <xsl:when test="starts-with(@target, '#')">
          <xsl:variable name="Ancestor">
            <xsl:value-of select="id(substring(@target, 2))/ancestor::tei:div[last()]/@xml:id"/>
          </xsl:variable>
          <xsl:choose>
            <xsl:when test="id(substring(@target, 2))">
              <xsl:call-template name="makeInternalLink">
                <xsl:with-param name="target" select="substring(@target, 2)"/>
                <xsl:with-param name="ptr" select="                       if (self::tei:ptr)                       then                         true()                       else                         false()"/>
                <xsl:with-param name="dest">
                  <xsl:call-template name="generateEndLink">
                    <xsl:with-param name="where">
                      <xsl:value-of select="substring(@target, 2)"/>
                    </xsl:with-param>
                  </xsl:call-template>
                </xsl:with-param>
              </xsl:call-template>
            </xsl:when>
            <xsl:when test="                   index-of(('AB',                   'AI',                   'CC',                   'CE',                   'CH',                   'CO',                   'DI',                   'DR',                   'DS',                   'FS',                   'FT',                   'GD',                   'HD',                   'MS',                   'ND',                   'NH',                   'PH',                   'SA',                   'SG',                   'ST',                   'TC',                   'TD',                   'TS',                   'USE',                   'VE',                   'WD'), $Ancestor) > 0">
              <xsl:call-template name="makeExternalLink">
                <xsl:with-param name="ptr" select="                       if (self::tei:ptr)                       then                         true()                       else                         false()"/>
                <xsl:with-param name="dest">
                  <xsl:value-of select="$teiWeb"/>
                  <xsl:value-of select="tei:generateDocumentationLang(.)"/>
                  <xsl:text>/html/</xsl:text>
                  <xsl:value-of select="$Ancestor"/>
                  <xsl:text>.html</xsl:text>
                  <xsl:value-of select="@target"/>
                </xsl:with-param>
              </xsl:call-template>
            </xsl:when>
            <xsl:otherwise>
              <xsl:text>«</xsl:text>
              <xsl:value-of select="@target"/>
              <xsl:text>»</xsl:text>
            </xsl:otherwise>
          </xsl:choose>
        </xsl:when>
        <xsl:otherwise>
          <xsl:apply-imports/>
        </xsl:otherwise>
      </xsl:choose>
    </xsl:when>
    <xsl:otherwise>
      <xsl:apply-imports/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template tei:attDefsummary
Namespace No namespace
Match tei:attDef
Mode summary
References
Import precedence 15
Source
<xsl:template match="tei:attDef" mode="summary">
  <xsl:variable name="name" select="tei:createSpecName(.)"/>
  <xsl:element namespace="{$outputNS}" name="{$rowName}">
    <xsl:element namespace="{$outputNS}" name="{$cellName}">
      <xsl:attribute name="{$rendName}">
        <xsl:text>odd_label</xsl:text>
      </xsl:attribute>
      <xsl:element namespace="{$outputNS}" name="{$codeName}">
        <xsl:attribute name="{$rendName}">
          <xsl:text>att</xsl:text>
        </xsl:attribute>
        <xsl:value-of select="$name"/>
      </xsl:element>
    </xsl:element>
    <xsl:element namespace="{$outputNS}" name="{$cellName}">
      <xsl:attribute name="{$rendName}">
        <xsl:text>odd_value</xsl:text>
        <xsl:if test="tei:descOrGlossOutOfDate(.)">
          <xsl:text> outOfDateTranslation</xsl:text>
        </xsl:if>
      </xsl:attribute>
      <xsl:sequence select="tei:makeDescription(., true(), true())"/>
      <xsl:apply-templates select="tei:valList"/>
    </xsl:element>
  </xsl:element>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template tei:attRefsummary
Namespace No namespace
Match tei:attRef
Mode summary
Import precedence 15
Source
<xsl:template match="tei:attRef" mode="summary"/>
Stylesheet location ../../../common/common_tagdocs.xsl
Template tei:classSpec | tei:elementSpecsummary
Namespace No namespace
Match tei:classSpec | tei:elementSpec
Mode summary
References
Import precedence 15
Source
<xsl:template match="tei:classSpec | tei:elementSpec" mode="summary">
  <xsl:variable name="name" select="tei:createSpecName(.)"/>
  <xsl:variable name="linkname" select="concat(tei:createSpecPrefix(.), $name)"/>
  <xsl:element namespace="{$outputNS}" name="{$rowName}">
    <xsl:element namespace="{$outputNS}" name="{$cellName}">
      <xsl:attribute name="{$rendName}">
        <xsl:text>odd_label</xsl:text>
      </xsl:attribute>
      <xsl:element namespace="{$outputNS}" name="{$xrefName}">
        <xsl:attribute name="{$urlName}">
          <xsl:choose>
            <xsl:when test="number($splitLevel) = -1">
              <xsl:text>#</xsl:text>
              <xsl:value-of select="$idPrefix"/>
              <xsl:value-of select="$name"/>
            </xsl:when>
            <xsl:when test="$STDOUT = 'true'">
              <xsl:for-each select="key('IDENTS', $name)">
                <xsl:call-template name="getSpecURL">
                  <xsl:with-param name="name">
                    <xsl:value-of select="$name"/>
                  </xsl:with-param>
                  <xsl:with-param name="type">
                    <xsl:value-of select="substring-before(local-name(), 'Spec')"/>
                  </xsl:with-param>
                </xsl:call-template>
              </xsl:for-each>
            </xsl:when>
            <xsl:otherwise>
              <xsl:text>ref-</xsl:text>
              <xsl:value-of select="$linkname"/>
              <xsl:text>.html</xsl:text>
            </xsl:otherwise>
          </xsl:choose>
        </xsl:attribute>
        <xsl:value-of select="$name"/>
        <xsl:for-each select="key('IDENTS', $name)">
          <xsl:if test="tei:content/rng:empty">
            <xsl:text>/</xsl:text>
          </xsl:if>
        </xsl:for-each>
      </xsl:element>
    </xsl:element>
    <xsl:element namespace="{$outputNS}" name="{$cellName}">
      <xsl:attribute name="{$rendName}">
        <xsl:text>odd_value</xsl:text>
        <xsl:if test="tei:descOrGlossOutOfDate(.)">
          <xsl:text> outOfDateTranslation</xsl:text>
        </xsl:if>
      </xsl:attribute>
      <xsl:sequence select="tei:makeDescription(., false(), true())"/>
      <xsl:apply-templates select="tei:valList"/>
    </xsl:element>
  </xsl:element>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template tei:attDef
Documentation

Description

Process element attDef
Namespace No namespace
Match tei:attDef
Mode #default
References
Import precedence 15
Source
<xsl:template match="tei:attDef">
  <xsl:variable name="name" select="tei:createSpecName(.)"/>
  <xsl:element namespace="{$outputNS}" name="{$rowName}">
    <xsl:element namespace="{$outputNS}" name="{$cellName}">
      <xsl:attribute name="{$rendName}">
        <xsl:text>odd_label</xsl:text>
      </xsl:attribute>
      <xsl:value-of select="$name"/>
      <!-- Addition by Martin Holmes 2012-07-14 for ticket http://purl.org/tei/fr/3511134     -->
      <!-- Add a pilcrow with a link.      -->
      <xsl:call-template name="attDefHook">
        <xsl:with-param name="attName">
          <xsl:value-of select="$name"/>
        </xsl:with-param>
      </xsl:call-template>
    </xsl:element>
    <xsl:element namespace="{$outputNS}" name="{$cellName}">
      <xsl:attribute name="{$rendName}">
        <xsl:text>odd_value</xsl:text>
        <xsl:if test="tei:descOrGlossOutOfDate(.)">
          <xsl:text> outOfDateTranslation</xsl:text>
        </xsl:if>
      </xsl:attribute>
      <!-- MDH 2018-01-21: setting third param ($makeMiniList) to 
          false so we can stop building ugly and superfluous lists 
          in Guidelines ref pages. See issue #296. -->
      <xsl:sequence select="tei:makeDescription(., true(), false())"/>
      <xsl:element namespace="{$outputNS}" name="{$tableName}">
        <xsl:attribute name="{$rendName}">
          <xsl:text>attDef</xsl:text>
        </xsl:attribute>
        <xsl:if test="@corresp">
          <xsl:element namespace="{$outputNS}" name="{$rowName}">
            <xsl:element namespace="{$outputNS}" name="{$cellName}">
              <xsl:attribute name="{$rendName}">
                <xsl:text>odd_label</xsl:text>
              </xsl:attribute>
              <xsl:element namespace="{$outputNS}" name="{$hiName}">
                <xsl:attribute name="{$rendName}">
                  <xsl:text>label</xsl:text>
                </xsl:attribute>
                <xsl:attribute name="{$langAttributeName}">
                  <xsl:value-of select="$documentationLanguage"/>
                </xsl:attribute>
                <xsl:sequence select="tei:i18n('Derivedfrom')"/>
              </xsl:element>
            </xsl:element>
            <xsl:element namespace="{$outputNS}" name="{$cellName}">
              <xsl:attribute name="{$rendName}">
                <xsl:text>odd_value</xsl:text>
              </xsl:attribute>
              <xsl:call-template name="linkTogether">
                <xsl:with-param name="name" select="substring(@corresp, 2)"/>
                <xsl:with-param name="reftext">
                  <xsl:value-of select="substring(@corresp, 2)"/>
                </xsl:with-param>
              </xsl:call-template>
            </xsl:element>
          </xsl:element>
        </xsl:if>
        <xsl:call-template name="validUntil"/>
        <xsl:element namespace="{$outputNS}" name="{$rowName}">
          <xsl:element namespace="{$outputNS}" name="{$cellName}">
            <xsl:attribute name="{$rendName}">
              <xsl:text>odd_label</xsl:text>
            </xsl:attribute>
            <xsl:element namespace="{$outputNS}" name="{$hiName}">
              <xsl:attribute name="{$rendName}">
                <xsl:text>label</xsl:text>
              </xsl:attribute>
              <xsl:attribute name="{$langAttributeName}">
                <xsl:value-of select="$documentationLanguage"/>
              </xsl:attribute>
              <xsl:sequence select="tei:i18n('Status')"/>
            </xsl:element>
            <xsl:text> </xsl:text>
          </xsl:element>
          <xsl:element namespace="{$outputNS}" name="{$cellName}">
            <xsl:attribute name="{$rendName}">
              <xsl:text>odd_value</xsl:text>
            </xsl:attribute>
            <xsl:element namespace="{$outputNS}" name="{$segName}">
              <xsl:attribute name="{$langAttributeName}">
                <xsl:value-of select="$documentationLanguage"/>
              </xsl:attribute>
              <xsl:choose>
                <xsl:when test="@usage = 'mwa'">
                  <xsl:sequence select="tei:i18n('Mandatory when applicable')"/>
                </xsl:when>
                <xsl:when test="@usage = 'opt'">
                  <xsl:sequence select="tei:i18n('Optional')"/>
                </xsl:when>
                <xsl:when test="@usage = 'rec'">
                  <xsl:sequence select="tei:i18n('Recommended')"/>
                </xsl:when>
                <xsl:when test="@usage = 'req'">
                  <xsl:element namespace="{$outputNS}" name="{$hiName}">
                    <xsl:attribute name="{$rendName}">
                      <xsl:text>required</xsl:text>
                    </xsl:attribute>
                    <xsl:sequence select="tei:i18n('Required')"/>
                  </xsl:element>
                </xsl:when>
                <xsl:when test="@usage = 'rwa'">
                  <xsl:sequence select="tei:i18n('Recommended when applicable')"/>
                </xsl:when>
                <xsl:otherwise>
                  <xsl:sequence select="tei:i18n('Optional')"/>
                </xsl:otherwise>
              </xsl:choose>
            </xsl:element>
          </xsl:element>
        </xsl:element>
        <xsl:apply-templates mode="weave"/>
      </xsl:element>
    </xsl:element>
  </xsl:element>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template tei:attDef/tei:datatypeweave
Documentation

Description

Process element attDef/tei:datatype
Namespace No namespace
Match tei:attDef/tei:datatype
Mode weave
References
Import precedence 15
Source
<xsl:template match="tei:attDef/tei:datatype" mode="weave">
  <xsl:element namespace="{$outputNS}" name="{$rowName}">
    <xsl:element namespace="{$outputNS}" name="{$cellName}">
      <xsl:attribute name="{$rendName}">
        <xsl:text>odd_label</xsl:text>
      </xsl:attribute>
      <xsl:element namespace="{$outputNS}" name="{$hiName}">
        <xsl:attribute name="{$langAttributeName}">
          <xsl:value-of select="$documentationLanguage"/>
        </xsl:attribute>
        <xsl:attribute name="{$rendName}">
          <xsl:text>label</xsl:text>
        </xsl:attribute>
        <xsl:sequence select="tei:i18n('Datatype')"/>
      </xsl:element>
      <xsl:text> </xsl:text>
    </xsl:element>
    <xsl:element namespace="{$outputNS}" name="{$cellName}">
      <xsl:attribute name="{$rendName}">
        <xsl:text>odd_value</xsl:text>
      </xsl:attribute>
      <!-- Convert @minOccurs and @maxOccurs to integers, giving them -->
      <!-- a default of 1, and converting "unbounded" to -1. -->
      <!-- We should probably use the function tei:minOmaxO() instead. -->
      <xsl:variable name="minOccurs" select="( @minOccurs, '1' )[1] cast as xs:integer"/>
      <xsl:variable name="maxOccurs" as="xs:integer">
        <xsl:choose>
          <xsl:when test="normalize-space( @maxOccurs ) eq 'unbounded'">
            <xsl:value-of select="-1"/>
          </xsl:when>
          <xsl:when test="@maxOccurs">
            <xsl:value-of select="@maxOccurs cast as xs:integer"/>
          </xsl:when>
          <xsl:otherwise>
            <xsl:value-of select="1"/>
          </xsl:otherwise>
        </xsl:choose>
      </xsl:variable>
      <xsl:if test="( $minOccurs, $maxOccurs ) != 1">
        <xsl:text> </xsl:text>
        <xsl:value-of select="$minOccurs"/>
        <xsl:text></xsl:text>
        <xsl:value-of select="if ($maxOccurs eq -1) then '∞' else $maxOccurs"/>
        <xsl:text> </xsl:text>
        <xsl:element namespace="{$outputNS}" name="{$segName}">
          <xsl:attribute name="{$langAttributeName}">
            <xsl:value-of select="$documentationLanguage"/>
          </xsl:attribute>
          <xsl:sequence select="tei:i18n('occurrences of')"/>
        </xsl:element>
        <xsl:value-of select="$spaceCharacter"/>
      </xsl:if>
      <!-- <xsl:call-template name="schemaOut">
          <xsl:with-param name="grammar"/>
          <xsl:with-param name="element">code</xsl:with-param>
          <xsl:with-param name="content">
            <Wrapper>
              <xsl:copy-of select="rng:*"/>
            </Wrapper>
          </xsl:with-param>
        </xsl:call-template>-->
      <!-- we assume that datatype contains only a single dataRef -->
      <!-- (I don't like the above assumption, but I just tested, -->
      <!-- and as of now (2016-11-15) it's true for P5. -Syd)     -->
      <!-- MDH tweaked this again 2016-12-29 to deal with remaining
             rng:data elements not yet PURE-ified. -->
      <xsl:call-template name="showElement">
        <xsl:with-param name="name" select="if (tei:dataRef/@key) then tei:dataRef/@key else if (tei:dataRef/@name) then tei:dataRef/@name else if (rng:data/@type) then rng:data/@type else ''"/>
      </xsl:call-template>
      <xsl:if test="1 != ( $minOccurs, $maxOccurs )">
        <xsl:text> </xsl:text>
        <xsl:element namespace="{$outputNS}" name="{$segName}">
          <xsl:attribute name="{$langAttributeName}">
            <xsl:value-of select="$documentationLanguage"/>
          </xsl:attribute>
          <xsl:sequence select="tei:i18n('separated by whitespace')"/>
        </xsl:element>
      </xsl:if>
    </xsl:element>
  </xsl:element>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template tei:classSpec
Documentation

Description

Process element classSpec
Namespace No namespace
Match tei:classSpec
Mode #default
References
Import precedence 15
Source
<xsl:template match="tei:classSpec">
  <xsl:if test="parent::tei:specGrp">
    <xsl:element namespace="{$outputNS}" name="{$dtName}">
      <xsl:element namespace="{$outputNS}" name="{$hiName}">
        <xsl:attribute name="{$rendName}">
          <xsl:text>label</xsl:text>
        </xsl:attribute>
        <xsl:attribute name="{$langAttributeName}">
          <xsl:value-of select="$documentationLanguage"/>
        </xsl:attribute>
        <xsl:sequence select="tei:i18n('Class')"/>
      </xsl:element>:
      <xsl:value-of select="@ident"/>
    </xsl:element>
    <xsl:element namespace="{$outputNS}" name="{$ddName}">
      <xsl:apply-templates mode="tangle" select="."/>
      <xsl:text>(</xsl:text>
      <xsl:element namespace="{$outputNS}" name="{$segName}">
        <xsl:attribute name="{$langAttributeName}">
          <xsl:value-of select="$documentationLanguage"/>
        </xsl:attribute>
        <xsl:sequence select="tei:i18n('Members')"/>
      </xsl:element>
      <xsl:text>: </xsl:text>
      <xsl:call-template name="generateMembers"/>
      <xsl:text>)</xsl:text>
    </xsl:element>
  </xsl:if>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template tei:classSpecweavebody
Documentation

Description

Process element classSpec
Namespace No namespace
Match tei:classSpec
Mode weavebody
References
Import precedence 15
Source
<xsl:template match="tei:classSpec" mode="weavebody">
  <xsl:variable name="name" select="tei:createSpecName(.)"/>
  <xsl:element namespace="{$outputNS}" name="{$sectionName}">
    <xsl:call-template name="makeSectionHead">
      <xsl:with-param name="id">
        <xsl:value-of select="concat(tei:createSpecPrefix(.), $name)"/>
      </xsl:with-param>
      <xsl:with-param name="name">
        <xsl:value-of select="$name"/>
      </xsl:with-param>
    </xsl:call-template>
    <xsl:element namespace="{$outputNS}" name="{$tableName}">
      <xsl:attribute name="{$rendName}">
        <xsl:text>wovenodd</xsl:text>
      </xsl:attribute>
      <xsl:element namespace="{$outputNS}" name="{$rowName}">
        <xsl:element namespace="{$outputNS}" name="{$cellName}">
          <xsl:attribute name="{$colspan}">2</xsl:attribute>
          <xsl:attribute name="{$rendName}">
            <xsl:text>wovenodd-col2</xsl:text>
            <xsl:if test="tei:descOrGlossOutOfDate(.)">
              <xsl:text> outOfDateTranslation</xsl:text>
            </xsl:if>
          </xsl:attribute>
          <xsl:element namespace="{$outputNS}" name="{$hiName}">
            <xsl:attribute name="{$rendName}">
              <xsl:text>label</xsl:text>
            </xsl:attribute>
            <xsl:value-of select="$name"/>
          </xsl:element>
          <xsl:call-template name="specHook">
            <xsl:with-param name="name">
              <xsl:value-of select="$name"/>
            </xsl:with-param>
          </xsl:call-template>
          <xsl:text> </xsl:text>
          <xsl:sequence select="tei:makeDescription(., true(), true())"/>
        </xsl:element>
      </xsl:element>
      <xsl:if test="@generate">
        <xsl:element namespace="{$outputNS}" name="{$rowName}">
          <xsl:element namespace="{$outputNS}" name="{$cellName}">
            <xsl:attribute name="{$rendName}">
              <xsl:text>wovenodd-col1</xsl:text>
            </xsl:attribute>
            <xsl:element namespace="{$outputNS}" name="{$segName}">
              <xsl:attribute name="{$langAttributeName}">
                <xsl:value-of select="$documentationLanguage"/>
              </xsl:attribute>
              <xsl:sequence select="tei:i18n('Classes defined')"/>
            </xsl:element>
          </xsl:element>
          <xsl:element namespace="{$outputNS}" name="{$cellName}">
            <xsl:attribute name="{$rendName}">
              <xsl:text>wovenodd-col2</xsl:text>
            </xsl:attribute>
            <xsl:value-of select="@generate"/>
          </xsl:element>
        </xsl:element>
      </xsl:if>
      <xsl:call-template name="validUntil"/>
      <xsl:call-template name="moduleInfo"/>
      <xsl:if test="@type = 'model'">
        <xsl:element namespace="{$outputNS}" name="{$rowName}">
          <xsl:element namespace="{$outputNS}" name="{$cellName}">
            <xsl:attribute name="{$rendName}">
              <xsl:text>wovenodd-col1</xsl:text>
            </xsl:attribute>
            <xsl:element namespace="{$outputNS}" name="{$hiName}">
              <xsl:attribute name="{$rendName}">
                <xsl:text>label</xsl:text>
              </xsl:attribute>
              <xsl:attribute name="{$langAttributeName}">
                <xsl:value-of select="$documentationLanguage"/>
              </xsl:attribute>
              <xsl:sequence select="tei:i18n('Used by')"/>
            </xsl:element>
          </xsl:element>
          <xsl:element namespace="{$outputNS}" name="{$cellName}">
            <xsl:attribute name="{$rendName}">
              <xsl:text>wovenodd-col2</xsl:text>
            </xsl:attribute>
            <xsl:call-template name="generateModelParents">
              <xsl:with-param name="showElements">true</xsl:with-param>
            </xsl:call-template>
          </xsl:element>
        </xsl:element>
      </xsl:if>
      <xsl:element namespace="{$outputNS}" name="{$rowName}">
        <xsl:element namespace="{$outputNS}" name="{$cellName}">
          <xsl:attribute name="{$rendName}">
            <xsl:text>wovenodd-col1</xsl:text>
          </xsl:attribute>
          <xsl:element namespace="{$outputNS}" name="{$hiName}">
            <xsl:attribute name="{$rendName}">
              <xsl:text>label</xsl:text>
            </xsl:attribute>
            <xsl:attribute name="{$langAttributeName}">
              <xsl:value-of select="$documentationLanguage"/>
            </xsl:attribute>
            <xsl:sequence select="tei:i18n('Members')"/>
          </xsl:element>
        </xsl:element>
        <xsl:element namespace="{$outputNS}" name="{$cellName}">
          <xsl:attribute name="{$rendName}">
            <xsl:text>wovenodd-col2</xsl:text>
          </xsl:attribute>
          <xsl:call-template name="generateMembers"/>
        </xsl:element>
      </xsl:element>
      <xsl:if test="@type = 'atts'">
        <xsl:element namespace="{$outputNS}" name="{$rowName}">
          <xsl:element namespace="{$outputNS}" name="{$cellName}">
            <xsl:attribute name="{$rendName}">
              <xsl:text>wovenodd-col1</xsl:text>
            </xsl:attribute>
            <xsl:element namespace="{$outputNS}" name="{$hiName}">
              <xsl:attribute name="{$rendName}">
                <xsl:text>label</xsl:text>
              </xsl:attribute>
              <xsl:attribute name="{$langAttributeName}">
                <xsl:value-of select="$documentationLanguage"/>
              </xsl:attribute>
              <xsl:sequence select="tei:i18n('Attributes')"/>
            </xsl:element>
          </xsl:element>
          <xsl:element namespace="{$outputNS}" name="{$cellName}">
            <xsl:attribute name="{$rendName}">
              <xsl:text>wovenodd-col2</xsl:text>
            </xsl:attribute>
            <xsl:choose>
              <xsl:when test="not(tei:attList)">
                <xsl:element namespace="{$outputNS}" name="{$ulName}">
                  <xsl:attribute name="{$rendName}" select="'attList'"/>
                  <xsl:processing-instruction name="DEBUG">calling showAttClasses 01</xsl:processing-instruction>
                  <xsl:call-template name="showAttClasses"/>
                </xsl:element>
              </xsl:when>
              <xsl:otherwise>
                <xsl:for-each select="tei:attList">
                  <xsl:call-template name="displayAttList">
                    <xsl:with-param name="mode">all</xsl:with-param>
                  </xsl:call-template>
                </xsl:for-each>
              </xsl:otherwise>
            </xsl:choose>
          </xsl:element>
        </xsl:element>
      </xsl:if>
      <xsl:apply-templates mode="weave"/>
    </xsl:element>
  </xsl:element>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template tei:classesweave
Documentation

Description

Process element classes
Namespace No namespace
Match tei:classes
Mode weave
Import precedence 15
Source
<xsl:template match="tei:classes" mode="weave">
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template tei:elementSpec
Documentation

Description

Process element elementSpec
Namespace No namespace
Match tei:elementSpec
Mode #default
References
Import precedence 15
Source
<xsl:template match="tei:elementSpec">
  <xsl:if test="parent::tei:specGrp">
    <xsl:element namespace="{$outputNS}" name="{$dtName}">
      <xsl:element namespace="{$outputNS}" name="{$segName}">
        <xsl:attribute name="{$langAttributeName}">
          <xsl:value-of select="$documentationLanguage"/>
        </xsl:attribute>
        <xsl:sequence select="tei:i18n('Element')"/>
        <xsl:value-of select="$spaceCharacter"/>
        <xsl:value-of select="@ident"/>
      </xsl:element>
    </xsl:element>
    <xsl:element namespace="{$outputNS}" name="{$ddName}">
      <xsl:apply-templates mode="tangle" select="."/>
    </xsl:element>
  </xsl:if>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template tei:elementSpecweavebody
Documentation

Description

Process element elementSpec
Namespace No namespace
Match tei:elementSpec
Mode weavebody
References
Import precedence 15
Source
<xsl:template match="tei:elementSpec" mode="weavebody">
  <xsl:variable name="name" select="tei:createSpecName(.)"/>
  <xsl:element namespace="{$outputNS}" name="{$sectionName}">
    <xsl:call-template name="makeSectionHead">
      <xsl:with-param name="id">
        <xsl:value-of select="concat(tei:createSpecPrefix(.), $name)"/>
      </xsl:with-param>
      <xsl:with-param name="name">
        <xsl:text><</xsl:text>
        <xsl:choose>
          <xsl:when test="tei:content/rng:empty">
            <xsl:call-template name="emptySlash">
              <xsl:with-param name="name">
                <xsl:value-of select="$name"/>
              </xsl:with-param>
            </xsl:call-template>
          </xsl:when>
          <xsl:otherwise>
            <xsl:value-of select="$name"/>
          </xsl:otherwise>
        </xsl:choose>
        <xsl:text>></xsl:text>
      </xsl:with-param>
    </xsl:call-template>
    <xsl:call-template name="specHook">
      <xsl:with-param name="name">
        <xsl:value-of select="$name"/>
      </xsl:with-param>
    </xsl:call-template>
    <xsl:element namespace="{$outputNS}" name="{$tableName}">
      <xsl:attribute name="{$rendName}">
        <xsl:text>wovenodd</xsl:text>
      </xsl:attribute>
      <xsl:element namespace="{$outputNS}" name="{$rowName}">
        <xsl:element namespace="{$outputNS}" name="{$cellName}">
          <xsl:attribute name="{$colspan}">2</xsl:attribute>
          <xsl:attribute name="{$rendName}">
            <xsl:text>wovenodd-col2</xsl:text>
            <xsl:if test="tei:descOrGlossOutOfDate(.)">
              <xsl:text> outOfDateTranslation</xsl:text>
            </xsl:if>
          </xsl:attribute>
          <xsl:element namespace="{$outputNS}" name="{$hiName}">
            <xsl:attribute name="{$rendName}">
              <xsl:text>label</xsl:text>
            </xsl:attribute>
            <xsl:text><</xsl:text>
            <xsl:choose>
              <xsl:when test="tei:content/rng:empty">
                <xsl:call-template name="emptySlash">
                  <xsl:with-param name="name">
                    <xsl:value-of select="$name"/>
                  </xsl:with-param>
                </xsl:call-template>
              </xsl:when>
              <xsl:otherwise>
                <xsl:value-of select="$name"/>
              </xsl:otherwise>
            </xsl:choose>
            <xsl:text>> </xsl:text>
          </xsl:element>
          <xsl:sequence select="tei:makeDescription(., true(), true())"/>
        </xsl:element>
      </xsl:element>
      <xsl:call-template name="validUntil"/>
      <xsl:call-template name="moduleInfo"/>
      <xsl:variable name="myatts">
        <a>
          <xsl:choose>
            <xsl:when test="not(tei:attList)">
              <xsl:processing-instruction name="DEBUG"> calling showAttClasses 02 </xsl:processing-instruction>
              <xsl:call-template name="showAttClasses"/>
            </xsl:when>
            <xsl:otherwise>
              <xsl:for-each select="tei:attList">
                <xsl:call-template name="displayAttList">
                  <xsl:with-param name="mode">all</xsl:with-param>
                </xsl:call-template>
              </xsl:for-each>
            </xsl:otherwise>
          </xsl:choose>
        </a>
      </xsl:variable>
      <xsl:if test="count($myatts/a/*) > 0">
        <xsl:element namespace="{$outputNS}" name="{$rowName}">
          <xsl:element namespace="{$outputNS}" name="{$cellName}">
            <xsl:attribute name="{$rendName}">
              <xsl:text>wovenodd-col1</xsl:text>
            </xsl:attribute>
            <xsl:element namespace="{$outputNS}" name="{$hiName}">
              <xsl:attribute name="{$rendName}">
                <xsl:text>label</xsl:text>
              </xsl:attribute>
              <xsl:attribute name="{$langAttributeName}">
                <xsl:value-of select="$documentationLanguage"/>
              </xsl:attribute>
              <xsl:sequence select="tei:i18n('Attributes')"/>
            </xsl:element>
          </xsl:element>
          <xsl:element namespace="{$outputNS}" name="{$cellName}">
            <xsl:attribute name="{$rendName}">
              <xsl:text>wovenodd-col2</xsl:text>
            </xsl:attribute>
            <xsl:choose>
              <xsl:when test="not(tei:attList)">
                <xsl:element namespace="{$outputNS}" name="{$ulName}">
                  <xsl:attribute name="{$rendName}" select="'attList'"/>
                  <xsl:processing-instruction name="DEBUG">calling showAttClasses 03</xsl:processing-instruction>
                  <xsl:call-template name="showAttClasses"/>
                </xsl:element>
              </xsl:when>
              <xsl:otherwise>
                <xsl:for-each select="tei:attList">
                  <xsl:call-template name="displayAttList">
                    <xsl:with-param name="mode">all</xsl:with-param>
                  </xsl:call-template>
                </xsl:for-each>
              </xsl:otherwise>
            </xsl:choose>
            <!--
              <xsl:for-each select="$myatts/a">
                <xsl:copy-of select="*|text()"/>
              </xsl:for-each>
              -->
          </xsl:element>
        </xsl:element>
      </xsl:if>
      <xsl:variable name="memberclasses">
        <xsl:call-template name="generateModelParents">
          <xsl:with-param name="showElements">false</xsl:with-param>
        </xsl:call-template>
      </xsl:variable>
      <xsl:if test="count($memberclasses/*/*) > 0">
        <xsl:element namespace="{$outputNS}" name="{$rowName}">
          <xsl:element namespace="{$outputNS}" name="{$cellName}">
            <xsl:attribute name="{$rendName}">
              <xsl:text>wovenodd-col1</xsl:text>
            </xsl:attribute>
            <xsl:element namespace="{$outputNS}" name="{$hiName}">
              <xsl:attribute name="{$rendName}">
                <xsl:text>label</xsl:text>
              </xsl:attribute>
              <xsl:attribute name="{$langAttributeName}">
                <xsl:value-of select="$documentationLanguage"/>
              </xsl:attribute>
              <xsl:sequence select="tei:i18n('Member of')"/>
            </xsl:element>
          </xsl:element>
          <xsl:element namespace="{$outputNS}" name="{$cellName}">
            <xsl:attribute name="{$rendName}">
              <xsl:text>wovenodd-col2</xsl:text>
            </xsl:attribute>
            <xsl:copy-of select="$memberclasses"/>
          </xsl:element>
        </xsl:element>
      </xsl:if>
      <xsl:element namespace="{$outputNS}" name="{$rowName}">
        <xsl:element namespace="{$outputNS}" name="{$cellName}">
          <xsl:attribute name="{$rendName}">
            <xsl:text>wovenodd-col1</xsl:text>
          </xsl:attribute>
          <xsl:element namespace="{$outputNS}" name="{$hiName}">
            <xsl:attribute name="{$rendName}">
              <xsl:text>label</xsl:text>
            </xsl:attribute>
            <xsl:attribute name="{$langAttributeName}">
              <xsl:value-of select="$documentationLanguage"/>
            </xsl:attribute>
            <xsl:sequence select="tei:i18n('Contained by')"/>
          </xsl:element>
        </xsl:element>
        <xsl:element namespace="{$outputNS}" name="{$cellName}">
          <xsl:attribute name="{$rendName}">
            <xsl:text>wovenodd-col2</xsl:text>
          </xsl:attribute>
          <xsl:call-template name="generateIndirectParents"/>
        </xsl:element>
      </xsl:element>
      <xsl:element namespace="{$outputNS}" name="{$rowName}">
        <xsl:element namespace="{$outputNS}" name="{$cellName}">
          <xsl:attribute name="{$rendName}">
            <xsl:text>wovenodd-col1</xsl:text>
          </xsl:attribute>
          <xsl:element namespace="{$outputNS}" name="{$hiName}">
            <xsl:attribute name="{$rendName}">
              <xsl:text>label</xsl:text>
            </xsl:attribute>
            <xsl:attribute name="{$langAttributeName}">
              <xsl:value-of select="$documentationLanguage"/>
            </xsl:attribute>
            <xsl:sequence select="tei:i18n('May contain')"/>
          </xsl:element>
        </xsl:element>
        <xsl:element namespace="{$outputNS}" name="{$cellName}">
          <xsl:attribute name="{$rendName}">
            <xsl:text>wovenodd-col2</xsl:text>
          </xsl:attribute>
          <xsl:call-template name="generateChildren"/>
        </xsl:element>
      </xsl:element>
      <xsl:variable name="remarks">
        <xsl:apply-templates mode="weave" select="tei:remarks"/>
      </xsl:variable>
      <xsl:choose>
        <xsl:when test="string-length($remarks) = 0">
          <xsl:apply-templates mode="doc" select="tei:remarks[@xml:lang='en']"/>
        </xsl:when>
        <xsl:otherwise>
          <xsl:copy-of select="$remarks"/>
        </xsl:otherwise>
      </xsl:choose>
      <xsl:apply-templates mode="weave" select="tei:exemplum"/>
      <xsl:apply-templates mode="weave" select="tei:constraintSpec"/>
      <xsl:apply-templates mode="weave" select="tei:content"/>
      <xsl:if test="tei:model | tei:modeGrp | tei:modelSequence">
        <xsl:element namespace="{$outputNS}" name="{$rowName}">
          <xsl:element namespace="{$outputNS}" name="{$cellName}">
            <xsl:attribute name="{$rendName}">
              <xsl:text>wovenodd-col1</xsl:text>
            </xsl:attribute>
            <xsl:element namespace="{$outputNS}" name="{$hiName}">
              <xsl:attribute name="{$rendName}">
                <xsl:text>label</xsl:text>
              </xsl:attribute>
              <xsl:attribute name="{$langAttributeName}">
                <xsl:value-of select="$documentationLanguage"/>
              </xsl:attribute>
              <xsl:sequence select="tei:i18n('ProcessingModel')"/>
            </xsl:element>
          </xsl:element>
          <xsl:element namespace="{$outputNS}" name="{$cellName}">
            <xsl:attribute name="{$rendName}">
              <xsl:text>wovenodd-col2</xsl:text>
            </xsl:attribute>
            <xsl:call-template name="PMOut">
              <xsl:with-param name="content">
                <xsl:apply-templates select="tei:model | tei:modeGrp | tei:modelSequence" mode="PureODD"/>
              </xsl:with-param>
            </xsl:call-template>
          </xsl:element>
        </xsl:element>
      </xsl:if>
    </xsl:element>
  </xsl:element>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template tei:*PureODD
Namespace No namespace
Match tei:*
Mode PureODD
Import precedence 15
Source
<xsl:template match="tei:*" mode="PureODD">
  <xsl:element name="{local-name(.)}">
    <xsl:for-each select="@*">
      <xsl:copy/>
    </xsl:for-each>
    <xsl:apply-templates mode="PureODD"/>
  </xsl:element>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template tei:elementSpec/tei:contentweave
Documentation

Description

Process element elementSpec/tei:content
Namespace No namespace
Match tei:elementSpec/tei:content
Mode weave
References
Import precedence 15
Source
<xsl:template match="tei:elementSpec/tei:content" mode="weave">
  <xsl:variable name="name" select="tei:createSpecName(..)"/>
  <xsl:element namespace="{$outputNS}" name="{$rowName}">
    <xsl:element namespace="{$outputNS}" name="{$cellName}">
      <xsl:attribute name="{$rendName}">
        <xsl:text>wovenodd-col1</xsl:text>
      </xsl:attribute>
      <xsl:element namespace="{$outputNS}" name="{$hiName}">
        <xsl:attribute name="{$rendName}">
          <xsl:text>label</xsl:text>
        </xsl:attribute>
        <xsl:attribute name="{$langAttributeName}">
          <xsl:value-of select="$documentationLanguage"/>
        </xsl:attribute>
        <xsl:sequence select="tei:i18n('ContentModel')"/>
      </xsl:element>
    </xsl:element>
    <xsl:element namespace="{$outputNS}" name="{$cellName}">
      <xsl:attribute name="{$rendName}">
        <xsl:text>wovenodd-col2</xsl:text>
      </xsl:attribute>
      <xsl:call-template name="pureODDOut">
        <xsl:with-param name="grammar"/>
        <xsl:with-param name="content">
          <PureODD>
            <xsl:apply-templates select="." mode="PureODD"/>
          </PureODD>
        </xsl:with-param>
      </xsl:call-template>
      <xsl:for-each select="tei:valList[@type='closed']">
        <xsl:sequence select="tei:i18n('Legal values are')"/>
        <xsl:text>:</xsl:text>
        <xsl:call-template name="valListItems"/>
      </xsl:for-each>
    </xsl:element>
  </xsl:element>
  <xsl:element namespace="{$outputNS}" name="{$rowName}">
    <xsl:element namespace="{$outputNS}" name="{$cellName}">
      <xsl:attribute name="{$rendName}">
        <xsl:text>wovenodd-col1</xsl:text>
      </xsl:attribute>
      <xsl:element namespace="{$outputNS}" name="{$hiName}">
        <xsl:attribute name="{$rendName}">
          <xsl:text>label</xsl:text>
        </xsl:attribute>
        <xsl:attribute name="{$langAttributeName}">
          <xsl:value-of select="$documentationLanguage"/>
        </xsl:attribute>
        <xsl:sequence select="tei:i18n('Schema Declaration')"/>
      </xsl:element>
    </xsl:element>
    <xsl:element namespace="{$outputNS}" name="{$cellName}">
      <xsl:attribute name="{$rendName}">
        <xsl:text>wovenodd-col2</xsl:text>
      </xsl:attribute>
      <xsl:variable name="content">
        <Wrapper>
          <rng:element name="{$name}">
            <xsl:if test="not(key('SCHEMASPECS',1))">
              <xsl:if test="$autoGlobal='true'">
                <rng:ref name="att.global.attributes"/>
              </xsl:if>
              <xsl:for-each select="..">
                <xsl:call-template name="showClassAtts"/>
              </xsl:for-each>
            </xsl:if>
            <!--
                  We want the attributes here as the result of
                  tangling our sibling <attList>(s). However, we do
                  not want the <constraintSpec>s to be processed. See
                  https://github.com/TEIC/Stylesheets/issues/488
                  and
                  https://github.com/TEIC/TEI/issues/2115.
                  To do this, we pass a tunneled parameter to the tangle
                  mode templates so that they can suppress the constraintSpecs
                  when rendering the element content model.
                  —Syd, Martin, Nick, and Martina, 2021-02-25
              -->
            <xsl:apply-templates mode="tangle" select="../tei:attList">
              <xsl:with-param as="xs:boolean" name="includeConstraints" tunnel="yes" select="false()"/>
            </xsl:apply-templates>
            <xsl:for-each select="..">
              <xsl:call-template name="defineContent"/>
            </xsl:for-each>
          </rng:element>
        </Wrapper>
      </xsl:variable>
      <xsl:call-template name="schemaOut">
        <xsl:with-param name="grammar"/>
        <xsl:with-param name="content" select="$content"/>
      </xsl:call-template>
      <xsl:for-each select="tei:valList[@type = 'closed']">
        <xsl:sequence select="tei:i18n('Legal values are')"/>
        <xsl:text>:</xsl:text>
        <xsl:call-template name="valListItems"/>
      </xsl:for-each>
    </xsl:element>
  </xsl:element>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template tei:constraintSpec[parent::tei:schemaSpec or parent::tei:elementSpec or parent::tei:classSpec or parent::tei:dataSpec or parent::tei:attDef]weave
Namespace No namespace
Match tei:constraintSpec[parent::tei:schemaSpec or parent::tei:elementSpec or parent::tei:classSpec or parent::tei:dataSpec or parent::tei:attDef]
Mode weave
References
Import precedence 15
Source
<xsl:template match="       tei:constraintSpec[parent::tei:schemaSpec or parent::tei:elementSpec or       parent::tei:classSpec or parent::tei:dataSpec or parent::tei:attDef]" mode="weave">
  <xsl:element namespace="{$outputNS}" name="{$rowName}">
    <xsl:element namespace="{$outputNS}" name="{$cellName}">
      <xsl:attribute name="{$rendName}">
        <xsl:text>wovenodd-col1</xsl:text>
      </xsl:attribute>
      <xsl:element namespace="{$outputNS}" name="{$hiName}">
        <xsl:attribute name="{$rendName}">
          <xsl:text>label</xsl:text>
        </xsl:attribute>
        <xsl:attribute name="{$langAttributeName}">
          <xsl:value-of select="$documentationLanguage"/>
        </xsl:attribute>
        <xsl:text>Schematron</xsl:text>
      </xsl:element>
    </xsl:element>
    <xsl:element namespace="{$outputNS}" name="{$cellName}">
      <xsl:attribute name="{$rendName}">
        <xsl:text>wovenodd-col2</xsl:text>
        <xsl:if test="tei:descOrGlossOutOfDate(.)">
          <xsl:text> outOfDateTranslation</xsl:text>
        </xsl:if>
      </xsl:attribute>
      <xsl:sequence select="tei:makeDescription(., true(), true())"/>
      <xsl:for-each select="tei:constraint">
        <xsl:element namespace="{$outputNS}" name="{$divName}">
          <xsl:attribute name="xml:space">preserve</xsl:attribute>
          <xsl:attribute name="{$rendName}">
            <xsl:text>pre</xsl:text>
          </xsl:attribute>
          <xsl:apply-templates mode="verbatim"/>
        </xsl:element>
      </xsl:for-each>
    </xsl:element>
  </xsl:element>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template showClassAtts
Namespace No namespace
Used by
References
Key
Template
Import precedence 15
Source
<xsl:template name="showClassAtts">
  <xsl:for-each select="tei:classes/tei:memberOf">
    <xsl:for-each select="key('IDENTS', @key)">
      <xsl:if test="tei:attList">
        <rng:ref name="{@ident}.attributes"/>
      </xsl:if>
      <xsl:call-template name="showClassAtts"/>
    </xsl:for-each>
  </xsl:for-each>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template tei:elementSpec | tei:classSpec | tei:macroSpec | tei:dataSpecshow
Documentation

Description

Process the specification elements elements, classes and macros

Parameters

atts attributes we have been asked to display
Namespace No namespace
Match tei:elementSpec | tei:classSpec | tei:macroSpec | tei:dataSpec
Mode show
References
Parameters
QName Namespace
atts No namespace
Import precedence 15
Source
<xsl:template match="tei:elementSpec | tei:classSpec | tei:macroSpec | tei:dataSpec" mode="show">
  <xsl:param name="atts"/>
  <xsl:variable name="name" select="tei:createSpecName(.)"/>
  <xsl:variable name="linkname" select="concat(tei:createSpecPrefix(.), $name)"/>
  <xsl:element namespace="{$outputNS}" name="{$hiName}">
    <xsl:attribute name="{$rendName}">
      <xsl:text>specList-</xsl:text>
      <xsl:value-of select="local-name(.)"/>
    </xsl:attribute>
    <xsl:element namespace="{$outputNS}" name="{$xrefName}">
      <xsl:attribute name="{$urlName}">
        <xsl:choose>
          <xsl:when test="number($splitLevel) = -1">
            <xsl:text>#</xsl:text>
            <xsl:value-of select="$idPrefix"/>
            <xsl:value-of select="$name"/>
          </xsl:when>
          <xsl:when test="$STDOUT = 'true'">
            <xsl:for-each select="key('IDENTS', $name)">
              <xsl:call-template name="getSpecURL">
                <xsl:with-param name="name">
                  <xsl:value-of select="$name"/>
                </xsl:with-param>
                <xsl:with-param name="type">
                  <xsl:value-of select="substring-before(local-name(), 'Spec')"/>
                </xsl:with-param>
              </xsl:call-template>
            </xsl:for-each>
          </xsl:when>
          <xsl:otherwise>
            <xsl:text>ref-</xsl:text>
            <xsl:value-of select="$linkname"/>
            <xsl:text>.html</xsl:text>
          </xsl:otherwise>
        </xsl:choose>
      </xsl:attribute>
      <xsl:value-of select="$name"/>
      <xsl:for-each select="key('IDENTS', $name)">
        <xsl:if test="tei:content/rng:empty">
          <xsl:text>/</xsl:text>
        </xsl:if>
      </xsl:for-each>
    </xsl:element>
  </xsl:element>
  <xsl:call-template name="showSpace"/>
  <xsl:sequence select="tei:makeDescription(., false(), true())"/>
  <xsl:choose>
    <xsl:when test="self::tei:classSpec and @type = 'model'">
      <xsl:if test="key('CLASSMEMBERS-CLASSES', @ident)">
        <xsl:element namespace="{$outputNS}" name="{$tableName}">
          <xsl:attribute name="{$rendName}">
            <xsl:text>classList</xsl:text>
          </xsl:attribute>
          <xsl:apply-templates mode="summary" select="key('CLASSMEMBERS-CLASSES', @ident)">
            <xsl:sort select="lower-case(@ident)"/>
          </xsl:apply-templates>
        </xsl:element>
      </xsl:if>
      <xsl:if test="key('CLASSMEMBERS-ELEMENTS', @ident)">
        <xsl:element namespace="{$outputNS}" name="{$tableName}">
          <xsl:attribute name="{$rendName}">
            <xsl:text>elementList</xsl:text>
          </xsl:attribute>
          <xsl:apply-templates mode="summary" select="key('CLASSMEMBERS-ELEMENTS', @ident)">
            <xsl:sort select="lower-case(@ident)"/>
          </xsl:apply-templates>
        </xsl:element>
      </xsl:if>
    </xsl:when>
    <!-- 
           Note: the '-' in the following @test and the <xsl:when>
           clause for '+' (which is ~15 lines further down) are not
           supported features of the ODD language, and are in fact
           invalid values of the @atts attribute which is currently
           being processed. See
           https://github.com/TEIC/Stylesheets/issues/329. Per the
           Stylesheet groups discussion of that ticket earlier today,
           we are leaving the code here in case this is a feature we
           decide to add to ODD someday.
      -->
    <xsl:when test="$atts = '-' or $atts = ''"/>
    <xsl:when test="string-length($atts) > 0">
      <xsl:element namespace="{$outputNS}" name="{$tableName}">
        <xsl:attribute name="{$rendName}">
          <xsl:text>specDesc</xsl:text>
        </xsl:attribute>
        <xsl:variable name="HERE" select="."/>
        <xsl:for-each select="tokenize($atts, ' ')">
          <xsl:variable name="TOKEN" select="."/>
          <!-- Show a selected attribute where "$HERE" is the
                 starting node 
                 and $TOKEN is attribute we have been asked to display-->
          <xsl:for-each select="$HERE">
            <xsl:choose>
              <xsl:when test="$TOKEN = '+'">
                <!-- See above note (~15 lines up) about this clause for '+'. -->
                <xsl:element namespace="{$outputNS}" name="{$rowName}">
                  <xsl:element namespace="{$outputNS}" name="{$cellName}">
                    <xsl:attribute name="{$rendName}">
                      <xsl:text>odd_value</xsl:text>
                    </xsl:attribute>
                    <xsl:attribute name="{$colspan}">
                      <xsl:text>2</xsl:text>
                    </xsl:attribute>
                    <xsl:processing-instruction name="DEBUG">calling showAttClasses 04</xsl:processing-instruction>
                    <xsl:call-template name="showAttClasses">
                      <xsl:with-param name="minimal">true</xsl:with-param>
                    </xsl:call-template>
                  </xsl:element>
                </xsl:element>
              </xsl:when>
              <xsl:when test="tei:attList//tei:attDef[@ident = $TOKEN]">
                <xsl:for-each select="tei:attList//tei:attDef[@ident = $TOKEN]">
                  <xsl:call-template name="showAnAttribute"/>
                </xsl:for-each>
              </xsl:when>
              <xsl:otherwise>
                <!--Look for it in class hierarchy -->
                <xsl:call-template name="checkClassesForAttribute">
                  <xsl:with-param name="TOKEN" select="$TOKEN"/>
                </xsl:call-template>
              </xsl:otherwise>
            </xsl:choose>
          </xsl:for-each>
        </xsl:for-each>
      </xsl:element>
    </xsl:when>
    <xsl:otherwise>
      <xsl:if test="tei:attList//tei:attDef">
        <xsl:element namespace="{$outputNS}" name="{$tableName}">
          <xsl:attribute name="{$rendName}">
            <xsl:text>attList</xsl:text>
          </xsl:attribute>
          <xsl:apply-templates mode="summary" select="tei:attList//tei:attDef"/>
        </xsl:element>
      </xsl:if>
      <xsl:processing-instruction name="DEBUG">calling showAttClasses 05</xsl:processing-instruction>
      <xsl:call-template name="showAttClasses">
        <xsl:with-param name="minimal">true</xsl:with-param>
      </xsl:call-template>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template checkClassesForAttribute
Documentation

Description

Recursively check class membership, looking for the definition of an attribute
Namespace No namespace
Used by
References
Parameters
QName Namespace
TOKEN No namespace
Import precedence 15
Source
<xsl:template name="checkClassesForAttribute">
  <xsl:param name="TOKEN"/>
  <xsl:for-each select="tei:classes/tei:memberOf/key('IDENTS', @key)">
    <xsl:choose>
      <xsl:when test="tei:attList//tei:attDef[@ident = $TOKEN]">
        <xsl:for-each select="tei:attList//tei:attDef[@ident = $TOKEN]">
          <xsl:call-template name="showAnAttribute">
            <xsl:with-param name="showClass">true</xsl:with-param>
          </xsl:call-template>
        </xsl:for-each>
      </xsl:when>
      <xsl:otherwise>
        <xsl:call-template name="checkClassesForAttribute">
          <xsl:with-param name="TOKEN" select="$TOKEN"/>
        </xsl:call-template>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:for-each>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template showAnAttribute
Documentation

Description

Display of an attribute
Namespace No namespace
Used by
References
Parameters
QName Namespace
showClass No namespace
Import precedence 15
Source
<xsl:template name="showAnAttribute">
  <xsl:param name="showClass">false</xsl:param>
  <xsl:element namespace="{$outputNS}" name="{$rowName}">
    <xsl:element namespace="{$outputNS}" name="{$cellName}">
      <xsl:attribute name="{$rendName}">
        <xsl:text>Attribute</xsl:text>
      </xsl:attribute>
      <xsl:element namespace="{$outputNS}" name="{$hiName}">
        <xsl:attribute name="{$rendName}">
          <xsl:text>att</xsl:text>
        </xsl:attribute>
        <xsl:choose>
          <xsl:when test="tei:altIdent">
            <xsl:value-of select="tei:altIdent"/>
          </xsl:when>
          <xsl:otherwise>
            <xsl:value-of select="@ident"/>
          </xsl:otherwise>
        </xsl:choose>
        <xsl:if test="$showClass = 'true'">
          <xsl:text> [</xsl:text>
          <xsl:value-of select="ancestor::tei:classSpec/@ident"/>
          <xsl:text>]</xsl:text>
        </xsl:if>
      </xsl:element>
    </xsl:element>
    <xsl:element namespace="{$outputNS}" name="{$cellName}">
      <xsl:sequence select="tei:makeDescription(., true(), true())"/>
      <xsl:if test="$verboseSpecDesc = 'true' and tei:valList">
        <xsl:element namespace="{$outputNS}" name="{$tableName}">
          <xsl:attribute name="{$rendName}">
            <xsl:text>attDef</xsl:text>
          </xsl:attribute>
          <xsl:apply-templates select="tei:valList" mode="contents"/>
        </xsl:element>
      </xsl:if>
    </xsl:element>
  </xsl:element>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template tei:exemplumdoc
Documentation

Description

Process element exemplum
Namespace No namespace
Match tei:exemplum
Mode doc
References
Import precedence 15
Source
<xsl:template match="tei:exemplum" mode="doc">
  <xsl:variable name="documentationLanguage">
    <xsl:sequence select="tei:generateDocumentationLang(.)"/>
  </xsl:variable>
  <xsl:choose>
    <xsl:when test="parent::tei:exemplum">
      <xsl:call-template name="showExample"/>
    </xsl:when>
    <xsl:when test="not(@xml:lang)">
      <xsl:call-template name="showExample"/>
    </xsl:when>
    <xsl:when test="@xml:lang = 'und'">
      <xsl:call-template name="showExample"/>
    </xsl:when>
    <xsl:when test="@xml:lang = 'mul' and not($documentationLanguage = 'zh-TW')">
      <!-- will need to generalize this if other langs come along like
                chinese -->
      <xsl:call-template name="showExample"/>
    </xsl:when>
    <xsl:when test="@xml:lang = $documentationLanguage">
      <xsl:call-template name="showExample"/>
    </xsl:when>
    <xsl:when test="not(../tei:exemplum[@xml:lang = $documentationLanguage]) and (@xml:lang = 'en' or @xml:lang = 'und' or @xml:lang = 'mul')">
      <xsl:call-template name="showExample"/>
    </xsl:when>
  </xsl:choose>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template showExample
Documentation

Description

Process an example
Namespace No namespace
Used by
Template
References
Import precedence 15
Source
<xsl:template name="showExample">
  <xsl:choose>
    <xsl:when test="parent::tei:attDef">
      <xsl:element namespace="{$outputNS}" name="{$rowName}">
        <xsl:element namespace="{$outputNS}" name="{$cellName}">
          <xsl:attribute name="{$colspan}">
            <xsl:text>2</xsl:text>
          </xsl:attribute>
          <xsl:apply-templates/>
        </xsl:element>
      </xsl:element>
    </xsl:when>
    <xsl:otherwise>
      <xsl:element namespace="{$outputNS}" name="{$rowName}">
        <xsl:element namespace="{$outputNS}" name="{$cellName}">
          <xsl:attribute name="{$rendName}">
            <xsl:text>wovenodd-col1</xsl:text>
          </xsl:attribute>
          <xsl:element namespace="{$outputNS}" name="{$hiName}">
            <xsl:attribute name="{$rendName}">
              <xsl:text>label</xsl:text>
            </xsl:attribute>
            <xsl:attribute name="{$langAttributeName}">
              <xsl:value-of select="$documentationLanguage"/>
            </xsl:attribute>
            <xsl:sequence select="tei:i18n('Example')"/>
          </xsl:element>
        </xsl:element>
        <xsl:element namespace="{$outputNS}" name="{$cellName}">
          <xsl:attribute name="{$rendName}">
            <xsl:text>wovenodd-col2</xsl:text>
          </xsl:attribute>
          <xsl:apply-templates/>
        </xsl:element>
      </xsl:element>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template tei:macroSpec
Documentation

Description

Process element macroSpec
Namespace No namespace
Match tei:macroSpec
Mode #default
References
Parameters
Import precedence 15
Source
<xsl:template match="tei:macroSpec">
  <xsl:if test="parent::tei:specGrp">
    <xsl:element namespace="{$outputNS}" name="{$dtName}">
      <xsl:value-of select="@ident"/>
    </xsl:element>
    <xsl:element namespace="{$outputNS}" name="{$ddName}">
      <xsl:apply-templates mode="tangle" select="."/>
    </xsl:element>
  </xsl:if>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template tei:dataSpec
Documentation

Description

Process element dataSpec
Namespace No namespace
Match tei:dataSpec
Mode #default
References
Parameters
Import precedence 15
Source
<xsl:template match="tei:dataSpec">
  <xsl:if test="parent::tei:specGrp">
    <xsl:element namespace="{$outputNS}" name="{$dtName}">
      <xsl:value-of select="@ident"/>
    </xsl:element>
    <xsl:element namespace="{$outputNS}" name="{$ddName}">
      <xsl:apply-templates mode="tangle" select="."/>
    </xsl:element>
  </xsl:if>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template tei:macroSpecweavebody
Documentation

Description

Process element macroSpec in weavebody mode
Namespace No namespace
Match tei:macroSpec
Mode weavebody
References
Import precedence 15
Source
<xsl:template match="tei:macroSpec" mode="weavebody">
  <xsl:variable name="name" select="tei:createSpecName(.)"/>
  <xsl:element namespace="{$outputNS}" name="{$sectionName}">
    <xsl:call-template name="makeSectionHead">
      <xsl:with-param name="id">
        <xsl:value-of select="concat(tei:createSpecPrefix(.), $name)"/>
      </xsl:with-param>
      <xsl:with-param name="name">
        <xsl:value-of select="$name"/>
      </xsl:with-param>
    </xsl:call-template>
    <xsl:call-template name="specHook">
      <xsl:with-param name="name">
        <xsl:value-of select="$name"/>
      </xsl:with-param>
    </xsl:call-template>
    <xsl:element namespace="{$outputNS}" name="{$tableName}">
      <xsl:attribute name="{$rendName}">
        <xsl:text>wovenodd</xsl:text>
      </xsl:attribute>
      <xsl:element namespace="{$outputNS}" name="{$rowName}">
        <xsl:element namespace="{$outputNS}" name="{$cellName}">
          <xsl:attribute name="{$colspan}">2</xsl:attribute>
          <xsl:if test="tei:descOrGlossOutOfDate(.)">
            <xsl:attribute name="{$rendName}">
              <xsl:text>outOfDateTranslation</xsl:text>
            </xsl:attribute>
          </xsl:if>
          <xsl:element namespace="{$outputNS}" name="{$hiName}">
            <xsl:attribute name="{$rendName}">
              <xsl:text>label</xsl:text>
            </xsl:attribute>
            <xsl:value-of select="$name"/>
          </xsl:element>
          <xsl:text> </xsl:text>
          <xsl:sequence select="tei:makeDescription(., true(), true())"/>
        </xsl:element>
      </xsl:element>
      <xsl:call-template name="validUntil"/>
      <xsl:call-template name="moduleInfo"/>
      <xsl:element namespace="{$outputNS}" name="{$rowName}">
        <xsl:element namespace="{$outputNS}" name="{$cellName}">
          <xsl:attribute name="{$rendName}">
            <xsl:text>wovenodd-col1</xsl:text>
          </xsl:attribute>
          <xsl:element namespace="{$outputNS}" name="{$hiName}">
            <xsl:attribute name="{$rendName}">
              <xsl:text>label</xsl:text>
            </xsl:attribute>
            <xsl:attribute name="{$langAttributeName}">
              <xsl:value-of select="$documentationLanguage"/>
            </xsl:attribute>
            <xsl:sequence select="tei:i18n('Used by')"/>
          </xsl:element>
        </xsl:element>
        <xsl:element namespace="{$outputNS}" name="{$cellName}">
          <xsl:attribute name="{$rendName}">
            <xsl:text>wovenodd-col2</xsl:text>
            <xsl:if test="tei:descOrGlossOutOfDate(.)">
              <xsl:text> outOfDateTranslation</xsl:text>
            </xsl:if>
          </xsl:attribute>
          <xsl:call-template name="generateModelParents">
            <xsl:with-param name="showElements">true</xsl:with-param>
          </xsl:call-template>
        </xsl:element>
      </xsl:element>
      <xsl:apply-templates mode="weave"/>
    </xsl:element>
  </xsl:element>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template tei:dataSpecweavebody
Documentation

Description

Process element dataSpec in weavebody mode
Namespace No namespace
Match tei:dataSpec
Mode weavebody
References
Import precedence 15
Source
<xsl:template match="tei:dataSpec" mode="weavebody">
  <xsl:variable name="name" select="tei:createSpecName(.)"/>
  <xsl:element namespace="{$outputNS}" name="{$sectionName}">
    <xsl:call-template name="makeSectionHead">
      <xsl:with-param name="id">
        <xsl:value-of select="concat(tei:createSpecPrefix(.), $name)"/>
      </xsl:with-param>
      <xsl:with-param name="name">
        <xsl:value-of select="$name"/>
      </xsl:with-param>
    </xsl:call-template>
    <xsl:call-template name="specHook">
      <xsl:with-param name="name">
        <xsl:value-of select="$name"/>
      </xsl:with-param>
    </xsl:call-template>
    <xsl:element namespace="{$outputNS}" name="{$tableName}">
      <xsl:attribute name="{$rendName}">
        <xsl:text>wovenodd</xsl:text>
      </xsl:attribute>
      <xsl:element namespace="{$outputNS}" name="{$rowName}">
        <xsl:element namespace="{$outputNS}" name="{$cellName}">
          <xsl:attribute name="{$colspan}">2</xsl:attribute>
          <xsl:if test="tei:descOrGlossOutOfDate(.)">
            <xsl:attribute name="{$rendName}">
              <xsl:text>outOfDateTranslation</xsl:text>
            </xsl:attribute>
          </xsl:if>
          <xsl:element namespace="{$outputNS}" name="{$hiName}">
            <xsl:attribute name="{$rendName}">
              <xsl:text>label</xsl:text>
            </xsl:attribute>
            <xsl:value-of select="$name"/>
          </xsl:element>
          <xsl:text> </xsl:text>
          <xsl:sequence select="tei:makeDescription(., true(), true())"/>
        </xsl:element>
      </xsl:element>
      <xsl:call-template name="validUntil"/>
      <xsl:call-template name="moduleInfo"/>
      <xsl:element namespace="{$outputNS}" name="{$rowName}">
        <xsl:element namespace="{$outputNS}" name="{$cellName}">
          <xsl:attribute name="{$rendName}">
            <xsl:text>wovenodd-col1</xsl:text>
          </xsl:attribute>
          <xsl:element namespace="{$outputNS}" name="{$hiName}">
            <xsl:attribute name="{$rendName}">
              <xsl:text>label</xsl:text>
            </xsl:attribute>
            <xsl:attribute name="{$langAttributeName}">
              <xsl:value-of select="$documentationLanguage"/>
            </xsl:attribute>
            <xsl:sequence select="tei:i18n('Used by')"/>
          </xsl:element>
        </xsl:element>
        <xsl:element namespace="{$outputNS}" name="{$cellName}">
          <xsl:attribute name="{$rendName}">
            <xsl:text>wovenodd-col2</xsl:text>
          </xsl:attribute>
          <xsl:call-template name="generateModelParents">
            <xsl:with-param name="showElements">true</xsl:with-param>
          </xsl:call-template>
        </xsl:element>
      </xsl:element>
      <xsl:apply-templates mode="weave"/>
    </xsl:element>
  </xsl:element>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template tei:macroSpec/tei:contentweave
Documentation

Description

Process element macroSpec/tei:content
Namespace No namespace
Match tei:macroSpec/tei:content
Mode weave
References
Import precedence 15
Source
<xsl:template match="tei:macroSpec/tei:content" mode="weave">
  <!-- TODO: Macros aren't 100% "pure" yet. anyXML, e.g., still uses RNG -->
  <xsl:if test="tei:*">
    <xsl:element namespace="{$outputNS}" name="{$rowName}">
      <xsl:element namespace="{$outputNS}" name="{$cellName}">
        <xsl:attribute name="{$rendName}">
          <xsl:text>wovenodd-col1</xsl:text>
        </xsl:attribute>
        <xsl:element namespace="{$outputNS}" name="{$hiName}">
          <xsl:attribute name="{$rendName}">
            <xsl:text>label</xsl:text>
          </xsl:attribute>
          <xsl:attribute name="{$langAttributeName}">
            <xsl:value-of select="$documentationLanguage"/>
          </xsl:attribute>
          <xsl:sequence select="tei:i18n('ContentModel')"/>
        </xsl:element>
      </xsl:element>
      <xsl:element namespace="{$outputNS}" name="{$cellName}">
        <xsl:attribute name="{$rendName}">
          <xsl:text>wovenodd-col2</xsl:text>
        </xsl:attribute>
        <xsl:call-template name="pureODDOut">
          <xsl:with-param name="grammar">true</xsl:with-param>
          <xsl:with-param name="content">
            <PureODD>
              <xsl:apply-templates select="." mode="PureODD"/>
            </PureODD>
          </xsl:with-param>
        </xsl:call-template>
      </xsl:element>
    </xsl:element>
  </xsl:if>
  <xsl:element namespace="{$outputNS}" name="{$rowName}">
    <xsl:element namespace="{$outputNS}" name="{$cellName}">
      <xsl:attribute name="{$rendName}">
        <xsl:text>wovenodd-col1</xsl:text>
      </xsl:attribute>
      <xsl:element namespace="{$outputNS}" name="{$hiName}">
        <xsl:attribute name="{$rendName}">
          <xsl:text>label</xsl:text>
        </xsl:attribute>
        <xsl:attribute name="{$langAttributeName}">
          <xsl:value-of select="$documentationLanguage"/>
        </xsl:attribute>
        <xsl:sequence select="tei:i18n('Declaration')"/>
      </xsl:element>
    </xsl:element>
    <xsl:element namespace="{$outputNS}" name="{$cellName}">
      <xsl:attribute name="{$rendName}">
        <xsl:text>wovenodd-col2</xsl:text>
      </xsl:attribute>
      <xsl:apply-templates select="parent::*" mode="tangle"/>
    </xsl:element>
  </xsl:element>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template tei:dataSpec/tei:contentweave
Documentation

Description

Process element dataSpec/tei:content
Namespace No namespace
Match tei:dataSpec/tei:content
Mode weave
References
Import precedence 15
Source
<xsl:template match="tei:dataSpec/tei:content" mode="weave">
  <xsl:element namespace="{$outputNS}" name="{$rowName}">
    <xsl:element namespace="{$outputNS}" name="{$cellName}">
      <xsl:attribute name="{$rendName}">
        <xsl:text>wovenodd-col1</xsl:text>
      </xsl:attribute>
      <xsl:element namespace="{$outputNS}" name="{$hiName}">
        <xsl:attribute name="{$rendName}">
          <xsl:text>label</xsl:text>
        </xsl:attribute>
        <xsl:attribute name="{$langAttributeName}">
          <xsl:value-of select="$documentationLanguage"/>
        </xsl:attribute>
        <xsl:sequence select="tei:i18n('ContentModel')"/>
      </xsl:element>
    </xsl:element>
    <xsl:element namespace="{$outputNS}" name="{$cellName}">
      <xsl:attribute name="{$rendName}">
        <xsl:text>wovenodd-col2</xsl:text>
      </xsl:attribute>
      <xsl:call-template name="pureODDOut">
        <xsl:with-param name="grammar">true</xsl:with-param>
        <xsl:with-param name="content">
          <PureODD>
            <xsl:apply-templates select="." mode="PureODD"/>
          </PureODD>
        </xsl:with-param>
      </xsl:call-template>
    </xsl:element>
  </xsl:element>
  <xsl:element namespace="{$outputNS}" name="{$rowName}">
    <xsl:element namespace="{$outputNS}" name="{$cellName}">
      <xsl:attribute name="{$rendName}">
        <xsl:text>wovenodd-col1</xsl:text>
      </xsl:attribute>
      <xsl:element namespace="{$outputNS}" name="{$hiName}">
        <xsl:attribute name="{$rendName}">
          <xsl:text>label</xsl:text>
        </xsl:attribute>
        <xsl:attribute name="{$langAttributeName}">
          <xsl:value-of select="$documentationLanguage"/>
        </xsl:attribute>
        <xsl:sequence select="tei:i18n('Declaration')"/>
      </xsl:element>
    </xsl:element>
    <xsl:element namespace="{$outputNS}" name="{$cellName}">
      <xsl:attribute name="{$rendName}">
        <xsl:text>wovenodd-col2</xsl:text>
      </xsl:attribute>
      <xsl:apply-templates select="parent::*" mode="tangle"/>
    </xsl:element>
  </xsl:element>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template tei:moduleSpec
Documentation

Description

Process element moduleSpec
Namespace No namespace
Match tei:moduleSpec
Mode #default
References
Import precedence 15
Source
<xsl:template match="tei:moduleSpec">
  <xsl:element namespace="{$outputNS}" name="{$dlName}">
    <xsl:attribute name="{$rendName}">
      <xsl:text>moduleSpec</xsl:text>
    </xsl:attribute>
    <xsl:element namespace="{$outputNS}" name="{$labelName}">
      <xsl:attribute name="{$rendName}">
        <xsl:text>moduleSpecHead</xsl:text>
        <xsl:if test="tei:descOrGlossOutOfDate(.)">
          <xsl:text> outOfDateTranslation</xsl:text>
        </xsl:if>
      </xsl:attribute>
      <xsl:element namespace="{$outputNS}" name="{$segName}">
        <xsl:attribute name="{$langAttributeName}">
          <xsl:value-of select="$documentationLanguage"/>
        </xsl:attribute>
        <xsl:sequence select="tei:i18n('Module')"/>
      </xsl:element>
      <xsl:value-of select="$spaceCharacter"/>
      <xsl:value-of select="@ident"/>
      <xsl:text>: </xsl:text>
      <xsl:sequence select="tei:makeDescription(., true(), true())"/>
    </xsl:element>
    <xsl:element namespace="{$outputNS}" name="{$ddName}">
      <xsl:element namespace="{$outputNS}" name="{$ulName}">
        <xsl:if test="key('ElementModule', @ident)">
          <xsl:element namespace="{$outputNS}" name="{$itemName}">
            <xsl:element namespace="{$outputNS}" name="{$hiName}">
              <xsl:attribute name="{$langAttributeName}">
                <xsl:value-of select="$documentationLanguage"/>
              </xsl:attribute>
              <xsl:sequence select="tei:i18n('Elements defined')"/>
            </xsl:element>
            <xsl:text>: </xsl:text>
            <xsl:variable name="list">
              <List>
                <xsl:for-each select="key('ElementModule', @ident)">
                  <xsl:sort select="@ident"/>
                  <Item>
                    <xsl:call-template name="linkTogether">
                      <xsl:with-param name="name" select="concat(@prefix, @ident)"/>
                      <xsl:with-param name="reftext">
                        <xsl:value-of select="tei:createSpecName(.)"/>
                      </xsl:with-param>
                    </xsl:call-template>
                  </Item>
                </xsl:for-each>
              </List>
            </xsl:variable>
            <xsl:for-each select="$list/List/Item">
              <xsl:if test="position() > 1">
                <xsl:call-template name="showSpaceBetweenItems"/>
              </xsl:if>
              <xsl:copy-of select="* | text()"/>
            </xsl:for-each>
          </xsl:element>
        </xsl:if>
        <xsl:if test="key('ClassModule', @ident)">
          <xsl:element namespace="{$outputNS}" name="{$itemName}">
            <xsl:element namespace="{$outputNS}" name="{$hiName}">
              <xsl:attribute name="{$langAttributeName}">
                <xsl:value-of select="$documentationLanguage"/>
              </xsl:attribute>
              <xsl:sequence select="tei:i18n('Classes defined')"/>
            </xsl:element>
            <xsl:text>: </xsl:text>
            <xsl:variable name="list">
              <List>
                <xsl:for-each select="key('ClassModule', @ident)">
                  <xsl:sort select="@ident"/>
                  <Item>
                    <xsl:call-template name="linkTogether">
                      <xsl:with-param name="name" select="@ident"/>
                      <xsl:with-param name="reftext">
                        <xsl:value-of select="tei:createSpecName(.)"/>
                      </xsl:with-param>
                    </xsl:call-template>
                  </Item>
                </xsl:for-each>
              </List>
            </xsl:variable>
            <xsl:for-each select="$list/List/Item">
              <xsl:if test="position() > 1">
                <xsl:call-template name="showSpaceBetweenItems"/>
              </xsl:if>
              <xsl:copy-of select="* | text()"/>
            </xsl:for-each>
          </xsl:element>
        </xsl:if>
        <xsl:if test="key('MacroModule', @ident)">
          <xsl:element namespace="{$outputNS}" name="{$itemName}">
            <xsl:element namespace="{$outputNS}" name="{$segName}">
              <xsl:attribute name="{$langAttributeName}">
                <xsl:value-of select="$documentationLanguage"/>
              </xsl:attribute>
              <xsl:sequence select="tei:i18n('Macros defined')"/>
            </xsl:element>
            <xsl:text>: </xsl:text>
            <xsl:variable name="list">
              <List>
                <xsl:for-each select="key('MacroModule', @ident)">
                  <xsl:sort select="@ident"/>
                  <Item>
                    <xsl:call-template name="linkTogether">
                      <xsl:with-param name="name" select="@ident"/>
                      <xsl:with-param name="reftext">
                        <xsl:value-of select="tei:createSpecName(.)"/>
                      </xsl:with-param>
                    </xsl:call-template>
                  </Item>
                </xsl:for-each>
              </List>
            </xsl:variable>
            <xsl:for-each select="$list/List/Item">
              <xsl:if test="position() > 1">
                <xsl:call-template name="showSpaceBetweenItems"/>
              </xsl:if>
              <xsl:copy-of select="* | text()"/>
            </xsl:for-each>
          </xsl:element>
        </xsl:if>
      </xsl:element>
    </xsl:element>
  </xsl:element>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template tei:remarksdoc
Documentation

Description

Process tei:remarks
Namespace No namespace
Match tei:remarks
Mode doc
References
Import precedence 15
Source
<xsl:template match="tei:remarks" mode="doc">
  <xsl:if test="string-length(.) > 0">
    <xsl:element namespace="{$outputNS}" name="{$rowName}">
      <xsl:element namespace="{$outputNS}" name="{$cellName}">
        <xsl:attribute name="{$rendName}">
          <xsl:text>wovenodd-col1</xsl:text>
        </xsl:attribute>
        <xsl:element namespace="{$outputNS}" name="{$hiName}">
          <xsl:attribute name="{$rendName}">
            <xsl:text>label</xsl:text>
          </xsl:attribute>
          <xsl:attribute name="{$langAttributeName}">
            <xsl:value-of select="$documentationLanguage"/>
          </xsl:attribute>
          <xsl:sequence select="tei:i18n('Note')"/>
        </xsl:element>
      </xsl:element>
      <xsl:element namespace="{$outputNS}" name="{$cellName}">
        <xsl:attribute name="{$rendName}">
          <xsl:text>wovenodd-col2</xsl:text>
          <xsl:if test="preceding-sibling::tei:remarks[@xml:lang='en']/@versionDate gt @versionDate">
            <xsl:text> outOfDateTranslation</xsl:text>
          </xsl:if>
        </xsl:attribute>
        <xsl:comment> </xsl:comment>
        <xsl:apply-templates/>
      </xsl:element>
    </xsl:element>
  </xsl:if>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template tei:specDesc
Documentation

Description

Process a specDesc
Namespace No namespace
Match tei:specDesc
Mode #default
References
Import precedence 15
Source
<xsl:template match="tei:specDesc">
  <xsl:element namespace="{$outputNS}" name="{$itemName}">
    <xsl:variable name="name">
      <xsl:value-of select="@key"/>
    </xsl:variable>
    <xsl:variable name="atts">
      <xsl:choose>
        <xsl:when test="tei:match(@rend, 'noatts')">-</xsl:when>
        <xsl:otherwise>
          <xsl:value-of select="normalize-space(@atts)"/>
        </xsl:otherwise>
      </xsl:choose>
    </xsl:variable>
    <xsl:choose>
      <xsl:when test="$name = ''">
        <xsl:message>ERROR: no key attribute on specDesc</xsl:message>
      </xsl:when>
      <xsl:when test="key('IDENTS', $name)">
        <xsl:apply-templates mode="show" select="key('IDENTS', $name)">
          <xsl:with-param name="atts" select="$atts"/>
        </xsl:apply-templates>
      </xsl:when>
      <xsl:when test="not($localsource = '')">
        <xsl:for-each select="document($localsource)/tei:TEI">
          <xsl:apply-templates mode="show" select="tei:*[@ident = $name]">
            <xsl:with-param name="atts" select="$atts"/>
          </xsl:apply-templates>
        </xsl:for-each>
      </xsl:when>
      <xsl:otherwise>
        <xsl:text>UNKNOWN ELEMENT </xsl:text>
        <xsl:value-of select="$name"/>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:element>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template tei:specGrp
Documentation

Description

Process a specGrp
Namespace No namespace
Match tei:specGrp
Mode #default
Import precedence 15
Source
<xsl:template match="tei:specGrp"/>
Stylesheet location ../../../common/common_tagdocs.xsl
Template tei:specGrpRef
Documentation

Description

Process a specGrpRef
Namespace No namespace
Match tei:specGrpRef
Mode #default
Import precedence 15
Source
<xsl:template match="tei:specGrpRef"/>
Stylesheet location ../../../common/common_tagdocs.xsl
Template tei:specList
Documentation

Description

Process a specList
Namespace No namespace
Match tei:specList
Mode #default
References
Parameters
Import precedence 15
Source
<xsl:template match="tei:specList">
  <xsl:element namespace="{$outputNS}" name="{$ulName}">
    <xsl:attribute name="{$rendName}">specList</xsl:attribute>
    <xsl:apply-templates/>
  </xsl:element>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template tei:valDescweave
Documentation

Description

Process a valDesc
Namespace No namespace
Match tei:valDesc
Mode weave
References
Import precedence 15
Source
<xsl:template match="tei:valDesc" mode="weave">
  <xsl:variable name="documentationLanguage">
    <xsl:sequence select="tei:generateDocumentationLang(.)"/>
  </xsl:variable>
  <xsl:choose>
    <xsl:when test="@xml:lang and not(@xml:lang = $documentationLanguage)">
    </xsl:when>
    <xsl:when test="not(@xml:lang) and not($documentationLanguage = 'en') and ../tei:valDesc[@xml:lang = $documentationLanguage]">
    </xsl:when>
    <xsl:otherwise>
      <xsl:element namespace="{$outputNS}" name="{$rowName}">
        <xsl:element namespace="{$outputNS}" name="{$cellName}">
          <xsl:attribute name="{$rendName}">
            <xsl:text>odd_label</xsl:text>
          </xsl:attribute>
          <xsl:element namespace="{$outputNS}" name="{$hiName}">
            <xsl:attribute name="{$rendName}">
              <xsl:text>label</xsl:text>
            </xsl:attribute>
            <xsl:attribute name="{$langAttributeName}">
              <xsl:value-of select="$documentationLanguage"/>
            </xsl:attribute>
            <xsl:sequence select="tei:i18n('Values')"/>
          </xsl:element>
          <xsl:text> </xsl:text>
        </xsl:element>
        <xsl:element namespace="{$outputNS}" name="{$cellName}">
          <xsl:attribute name="{$rendName}">
            <xsl:text>attribute</xsl:text>
          </xsl:attribute>
          <xsl:apply-templates/>
        </xsl:element>
      </xsl:element>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template tei:val
Documentation

Description

Process element val
Namespace No namespace
Match tei:val
Mode #default
References
Parameters
Import precedence 15
Source
<xsl:template match="tei:val">
  <xsl:element namespace="{$outputNS}" name="{$hiName}">
    <xsl:attribute name="{$rendName}">
      <xsl:text>val</xsl:text>
    </xsl:attribute>
    <xsl:apply-templates/>
  </xsl:element>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template tei:att
Documentation

Description

Process element att
Namespace No namespace
Match tei:att
Mode #default
References
Parameters
Import precedence 15
Source
<xsl:template match="tei:att">
  <xsl:element namespace="{$outputNS}" name="{$hiName}">
    <xsl:attribute name="{$rendName}">
      <xsl:text>att</xsl:text>
    </xsl:attribute>
    <xsl:apply-templates/>
  </xsl:element>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template tei:tag
Documentation

Description

Process element tag
Namespace No namespace
Match tei:tag
Mode #default
References
Parameters
Supersedes
Template
Import precedence 15
Source
<xsl:template match="tei:tag">
  <xsl:element namespace="{$outputNS}" name="{$hiName}">
    <xsl:attribute name="{$rendName}">
      <xsl:text>tag</xsl:text>
    </xsl:attribute>
    <xsl:text><</xsl:text>
    <xsl:apply-templates/>
    <xsl:text>></xsl:text>
  </xsl:element>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template tei:valListcontents
Documentation

Description

Process element valList
Namespace No namespace
Match tei:valList
Mode contents
References
Import precedence 15
Source
<xsl:template match="tei:valList" mode="contents">
  <xsl:element namespace="{$outputNS}" name="{$rowName}">
    <xsl:element namespace="{$outputNS}" name="{$cellName}">
      <xsl:attribute name="{$rendName}">
        <xsl:text>odd_label</xsl:text>
      </xsl:attribute>
      <xsl:element namespace="{$outputNS}" name="{$hiName}">
        <xsl:attribute name="{$rendName}">
          <xsl:text>label</xsl:text>
        </xsl:attribute>
        <xsl:attribute name="{$langAttributeName}">
          <xsl:value-of select="$documentationLanguage"/>
        </xsl:attribute>
        <xsl:choose>
          <xsl:when test="@type = 'semi'">
            <xsl:sequence select="tei:i18n('Suggested values include')"/>
            <xsl:text>:</xsl:text>
          </xsl:when>
          <xsl:when test="@type = 'open'">
            <xsl:sequence select="tei:i18n('Sample values include')"/>
            <xsl:text>:</xsl:text>
          </xsl:when>
          <xsl:when test="@type = 'closed'">
            <xsl:sequence select="tei:i18n('Legal values are')"/>
            <xsl:text>:</xsl:text>
          </xsl:when>
          <xsl:otherwise>Sample values include</xsl:otherwise>
        </xsl:choose>
      </xsl:element>
    </xsl:element>
    <xsl:element namespace="{$outputNS}" name="{$cellName}">
      <xsl:attribute name="{$rendName}">
        <xsl:text>odd_value</xsl:text>
      </xsl:attribute>
      <xsl:call-template name="valListItems"/>
    </xsl:element>
  </xsl:element>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template valListItems
Documentation

Description

[odds] all the values in a valList
Namespace No namespace
Used by
References
Import precedence 15
Source
<xsl:template name="valListItems">
  <xsl:variable name="defaultVal_validUntil" select="../tei:defaultVal/@validUntil"/>
  <!-- above variable, and the use of it below, added 2016-07-22 by Syd and Martin -->
  <!-- to address issue #158. -->
  <xsl:element namespace="{$outputNS}" name="{$dlName}">
    <xsl:attribute name="{$rendName}">
      <xsl:text>valList</xsl:text>
    </xsl:attribute>
    <xsl:for-each select="tei:valItem">
      <xsl:variable name="name" select="( tei:altIdent, @ident )[1]"/>
      <xsl:element namespace="{$outputNS}" name="{$dtName}">
        <xsl:attribute name="{$rendName}">
          <xsl:text>odd_label</xsl:text>
        </xsl:attribute>
        <xsl:value-of select="$name"/>
        <xsl:call-template name="validUntil">
          <xsl:with-param name="inline" select="true()"/>
        </xsl:call-template>
      </xsl:element>
      <xsl:element namespace="{$outputNS}" name="{$ddName}">
        <xsl:attribute name="{$rendName}">
          <xsl:text>odd_value</xsl:text>
          <xsl:if test="tei:descOrGlossOutOfDate(.)">
            <xsl:text> outOfDateTranslation</xsl:text>
          </xsl:if>
        </xsl:attribute>
        <xsl:if test="tei:paramList">
          <xsl:text>(</xsl:text>
          <xsl:value-of select="tei:paramList/tei:paramSpec/@ident" separator=", "/>
          <xsl:text>) </xsl:text>
        </xsl:if>
        <xsl:sequence select="tei:makeDescription(., true(), true())"/>
        <xsl:if test="@ident = ../../tei:defaultVal">
          <xsl:element namespace="{$outputNS}" name="{$hiName}">
            <xsl:attribute name="{$rendName}">
              <xsl:text>defaultVal</xsl:text>
              <xsl:if test="$defaultVal_validUntil">
                <xsl:text> deprecated</xsl:text>
              </xsl:if>
            </xsl:attribute>
            <xsl:attribute name="{$langAttributeName}">
              <xsl:value-of select="$documentationLanguage"/>
            </xsl:attribute>
            <xsl:value-of select="concat(' [',tei:i18n('Default'),'] ' )"/>
            <xsl:if test="$defaultVal_validUntil">
              <xsl:variable name="duck">
                <tei:seg>
                  <xsl:sequence select="tei:i18n('deprecated')"/>
                </tei:seg>
              </xsl:variable>
              <xsl:for-each select="$duck">
                <xsl:call-template name="makeExternalLink">
                  <xsl:with-param name="ptr" select="false()"/>
                  <xsl:with-param name="dest">
                    <xsl:text>https://tei-c.org/documentation/tcw27/</xsl:text>
                  </xsl:with-param>
                </xsl:call-template>
              </xsl:for-each>
              <xsl:value-of select="concat('. ',tei:i18n('defaultValValidUntil'), ' ', $defaultVal_validUntil,'.' )"/>
            </xsl:if>
          </xsl:element>
        </xsl:if>
      </xsl:element>
    </xsl:for-each>
  </xsl:element>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template moduleInfo
Documentation

Description

[odds]
Namespace No namespace
Used by
References
Import precedence 15
Source
<xsl:template name="moduleInfo">
  <xsl:if test="@ns">
    <xsl:element namespace="{$outputNS}" name="{$rowName}">
      <xsl:element namespace="{$outputNS}" name="{$cellName}">
        <xsl:attribute name="{$rendName}">
          <xsl:text>wovenodd-col1</xsl:text>
        </xsl:attribute>
        <xsl:element namespace="{$outputNS}" name="{$hiName}">
          <xsl:attribute name="{$rendName}">
            <xsl:text>label</xsl:text>
          </xsl:attribute>
          <xsl:attribute name="{$langAttributeName}">
            <xsl:value-of select="$documentationLanguage"/>
          </xsl:attribute>
          <xsl:sequence select="tei:i18n('Namespace')"/>
        </xsl:element>
      </xsl:element>
      <xsl:element namespace="{$outputNS}" name="{$cellName}">
        <xsl:attribute name="{$rendName}">
          <xsl:text>wovenodd-col2</xsl:text>
        </xsl:attribute>
        <xsl:value-of select="@ns"/>
      </xsl:element>
    </xsl:element>
  </xsl:if>
  <xsl:if test="@module and not($oddWeaveLite = 'true')">
    <xsl:element namespace="{$outputNS}" name="{$rowName}">
      <xsl:element namespace="{$outputNS}" name="{$cellName}">
        <xsl:attribute name="{$rendName}">
          <xsl:text>wovenodd-col1</xsl:text>
        </xsl:attribute>
        <xsl:element namespace="{$outputNS}" name="{$hiName}">
          <xsl:attribute name="{$rendName}">
            <xsl:text>label</xsl:text>
          </xsl:attribute>
          <xsl:attribute name="{$langAttributeName}">
            <xsl:value-of select="$documentationLanguage"/>
          </xsl:attribute>
          <xsl:sequence select="tei:i18n('Module')"/>
        </xsl:element>
      </xsl:element>
      <xsl:element namespace="{$outputNS}" name="{$cellName}">
        <xsl:attribute name="{$rendName}">
          <xsl:text>wovenodd-col2</xsl:text>
        </xsl:attribute>
        <xsl:call-template name="makeTagsetInfo"/>
      </xsl:element>
    </xsl:element>
  </xsl:if>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template showAttRefs
Documentation

Description

[odds] display list of referenced attributes
Namespace No namespace
Used by
References
Function
Parameters
Template
Variable
Parameters
QName Namespace Select
endspace No namespace true()
Import precedence 15
Source
<xsl:template name="showAttRefs">
  <xsl:param name="endspace" select="true()"/>
  <xsl:for-each-group select=".//tei:attRef[not(tei:match(@rend, 'none'))]" group-by="@class">
    <xsl:element namespace="{$outputNS}" name="{$itemName}">
      <xsl:attribute name="{$rendName}" select="'attRefItem'"/>
      <xsl:call-template name="linkTogether">
        <xsl:with-param name="name" select="current-grouping-key()"/>
        <xsl:with-param name="reftext">
          <xsl:value-of select="current-grouping-key()"/>
        </xsl:with-param>
      </xsl:call-template>
      <!-- set a variable that contains all the <attDef> elements from Original that are children of the referenced <classSpec> -->
      <xsl:variable name="theseAttDefs" select="$Original//tei:classSpec[@ident = current-grouping-key()]/tei:attList/tei:attDef" as="element(tei:attDef)*"/>
      <!-- subset of those that have been deleted or over-ridden -->
      <xsl:variable name="theUnusedAttDefs" select="$theseAttDefs[ not( @ident = current-group()/@name ) ]" as="element(tei:attDef)*"/>
      <xsl:element namespace="{$outputNS}" name="{$ulName}">
        <xsl:attribute name="{$rendName}" select="'classSpecAttDefs'"/>
        <!-- display unused attrs with a special class
                so they can be displayed as unavailable -->
        <xsl:for-each select="$theUnusedAttDefs">
          <xsl:element namespace="{$outputNS}" name="{$itemName}">
            <xsl:element namespace="{$outputNS}" name="{$segName}">
              <xsl:attribute name="{$rendName}">unusedattribute</xsl:attribute>
              <xsl:value-of select="@ident"/>
            </xsl:element>
          </xsl:element>
        </xsl:for-each>
        <xsl:for-each select="current-group()">
          <xsl:element namespace="{$outputNS}" name="{$itemName}">
            <xsl:element namespace="{$outputNS}" name="{$segName}">
              <xsl:attribute name="{$rendName}">attribute</xsl:attribute>
              <xsl:sequence select="concat('@', @name )"/>
            </xsl:element>
          </xsl:element>
        </xsl:for-each>
      </xsl:element>
    </xsl:element>
  </xsl:for-each-group>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template displayAttList
Documentation

Description

[odds] display attribute list

Description

 Note: As far as I can tell, this is called when an <attList> is
       the context node. —Syd, 2023-03-02. 
Namespace No namespace
Used by
References
Parameters
QName Namespace
mode No namespace
Import precedence 15
Source
<xsl:template name="displayAttList">
  <xsl:param name="mode"/>
  <xsl:variable name="attribute_list_items">
    <xsl:processing-instruction name="DEBUG">calling showAttClasses 06</xsl:processing-instruction>
    <xsl:call-template name="showAttClasses"/>
    <xsl:if test=".//tei:attRef">
      <xsl:call-template name="showAttRefs"/>
    </xsl:if>
  </xsl:variable>
  <xsl:if test="normalize-space( string( $attribute_list_items ) ) ne ''">
    <xsl:element namespace="{$outputNS}" name="{$ulName}">
      <xsl:attribute name="{$rendName}" select="'attList'"/>
      <xsl:sequence select="$attribute_list_items"/>
    </xsl:element>
  </xsl:if>
  <xsl:if test=".//tei:attDef">
    <xsl:element namespace="{$outputNS}" name="{$tableName}">
      <xsl:attribute name="{$rendName}" select="'attList'"/>
      <xsl:choose>
        <xsl:when test="$mode = 'all'">
          <!--ISSUE 328 (martindholmes and joeytakeda): Added predicate
                          to suppress copying tei:attRef, which were invalid in TEI lite-->
          <xsl:apply-templates select="node()[not(self::tei:attRef)]"/>
        </xsl:when>
        <xsl:otherwise>
          <xsl:apply-templates mode="summary"/>
        </xsl:otherwise>
      </xsl:choose>
    </xsl:element>
  </xsl:if>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template generateModelParents
Documentation

Description

[odds] display list of model parents
Namespace No namespace
Used by
References
Parameters
QName Namespace
showElements No namespace
Import precedence 15
Source
<xsl:template name="generateModelParents">
  <xsl:param name="showElements">true</xsl:param>
  <xsl:variable name="here" select="."/>
  <xsl:element namespace="{$outputNS}" name="{$divName}">
    <xsl:attribute name="{$rendName}">parent</xsl:attribute>
    <xsl:variable name="Parents">
      <xsl:for-each select="key('REFS', concat(@prefix, @ident))/ancestor::tei:content/parent::*">
        <Element prefix="{@prefix}" type="{local-name()}" name="{tei:createSpecName(.)}" module="{@module}"/>
      </xsl:for-each>
      <xsl:for-each select="tei:classes/tei:memberOf">
        <xsl:for-each select="key('CLASSES', @key)">
          <xsl:if test="@type = 'model'">
            <Element prefix="{@prefix}" type="classSpec" module="{@module}" name="{tei:createSpecName(.)}"/>
          </xsl:if>
        </xsl:for-each>
      </xsl:for-each>
    </xsl:variable>
    <xsl:if test="count($Parents/*) > 0">
      <xsl:for-each-group select="$Parents/*" group-by="@name">
        <xsl:sort select="@name"/>
        <xsl:variable name="name" select="concat(@prefix, @name)"/>
        <xsl:variable name="display" select="@name"/>
        <xsl:variable name="type" select="@type"/>
        <xsl:if test="not(@type = 'elementSpec' and $showElements = 'false')">
          <xsl:for-each select="$here">
            <xsl:call-template name="linkTogether">
              <xsl:with-param name="name" select="$name"/>
              <xsl:with-param name="reftext" select="$display"/>
              <xsl:with-param name="class">link_odd_
                <xsl:value-of select="$type"/>
              </xsl:with-param>
            </xsl:call-template>
          </xsl:for-each>
          <xsl:if test="not(position() = last())">
            <xsl:call-template name="showSpaceBetweenItems"/>
          </xsl:if>
        </xsl:if>
      </xsl:for-each-group>
    </xsl:if>
    <xsl:call-template name="generateParentsByAttribute"/>
  </xsl:element>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template generateIndirectParents
Documentation

Description

[odds] display list of generated parents (via models)
Namespace No namespace
Used by
References
Import precedence 15
Source
<xsl:template name="generateIndirectParents">
  <xsl:element namespace="{$outputNS}" name="{$divName}">
    <xsl:attribute name="{$rendName}">parent</xsl:attribute>
    <xsl:variable name="Parents">
      <xsl:call-template name="ProcessDirectRefs"/>
      <!-- now look at class membership -->
      <xsl:for-each select="tei:classes/tei:memberOf">
        <xsl:for-each select="key('CLASSES', @key)">
          <xsl:if test="@type = 'model'">
            <xsl:call-template name="ProcessClass"/>
          </xsl:if>
        </xsl:for-each>
      </xsl:for-each>
    </xsl:variable>
    <xsl:call-template name="displayElementsByModule">
      <xsl:with-param name="context">parents</xsl:with-param>
      <xsl:with-param name="List">
        <xsl:copy-of select="$Parents"/>
      </xsl:with-param>
    </xsl:call-template>
  </xsl:element>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template ProcessDirectRefs
Namespace No namespace
Used by
References
Import precedence 15
Source
<xsl:template name="ProcessDirectRefs">
  <!-- direct parents -->
  <xsl:for-each select="key('REFS', concat(@prefix, @ident))/ancestor::tei:content/parent::tei:*">
    <xsl:choose>
      <xsl:when test="self::tei:elementSpec">
        <Element prefix="{@prefix}" type="{local-name()}" module="{@module}" name="{tei:createSpecName(.)}"/>
      </xsl:when>
      <xsl:when test="self::tei:macroSpec">
        <xsl:call-template name="ProcessDirectRefs"/>
      </xsl:when>
      <xsl:when test="self::tei:dataSpec">
        <xsl:call-template name="ProcessDirectRefs"/>
      </xsl:when>
    </xsl:choose>
  </xsl:for-each>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template ProcessClass
Namespace No namespace
Used by
References
Import precedence 15
Source
<xsl:template name="ProcessClass">
  <xsl:for-each select="key('REFS', concat(@prefix, @ident))/ancestor::tei:content/parent::tei:*">
    <xsl:choose>
      <xsl:when test="self::tei:elementSpec">
        <Element prefix="{@prefix}" type="{local-name()}" module="{@module}" name="{tei:createSpecName(.)}"/>
      </xsl:when>
      <xsl:when test="self::tei:macroSpec | self::tei:dataSpec">
        <xsl:call-template name="ProcessDirectRefs"/>
      </xsl:when>
    </xsl:choose>
  </xsl:for-each>
  <xsl:for-each select="tei:classes/tei:memberOf">
    <xsl:for-each select="key('CLASSES', @key)">
      <xsl:if test="@type = 'model'">
        <xsl:call-template name="ProcessClass"/>
      </xsl:if>
    </xsl:for-each>
  </xsl:for-each>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template generateMembers
Namespace No namespace
Used by
References
Parameters
QName Namespace
depth No namespace
me No namespace
Import precedence 15
Source
<xsl:template name="generateMembers">
  <xsl:param name="depth">1</xsl:param>
  <xsl:param name="me"/>
  <xsl:variable name="this" select="@ident"/>
  <xsl:if test="not($this = $me) and key('CLASSMEMBERS', $this, $top )">
    <xsl:element namespace="{$outputNS}" name="{$hiName}">
      <xsl:attribute name="{$rendName}">
        <xsl:text>showmembers</xsl:text>
        <xsl:value-of select="$depth"/>
      </xsl:attribute>
      <xsl:if test="$depth > 1">[</xsl:if>
      <xsl:variable name="list">
        <ClassList>
          <xsl:for-each select="key('CLASSMEMBERS', $this, $top )">
            <Item type="{local-name()}" ident="{@ident}">
              <xsl:call-template name="linkTogether">
                <xsl:with-param name="name" select="concat(@prefix, @ident)"/>
                <xsl:with-param name="reftext">
                  <xsl:value-of select="tei:createSpecName(.)"/>
                </xsl:with-param>
                <xsl:with-param name="class">
                  <xsl:text>link_odd_</xsl:text>
                  <xsl:value-of select="local-name()"/>
                </xsl:with-param>
              </xsl:call-template>
              <xsl:call-template name="generateMembers">
                <xsl:with-param name="depth">
                  <xsl:value-of select="$depth + 1"/>
                </xsl:with-param>
              </xsl:call-template>
            </Item>
          </xsl:for-each>
        </ClassList>
      </xsl:variable>
      <xsl:for-each select="$list/ClassList/Item">
        <xsl:sort select="@type"/>
        <xsl:sort select="@ident"/>
        <xsl:if test="position() > 1">
          <xsl:call-template name="showSpaceBetweenItems"/>
        </xsl:if>
        <xsl:copy-of select="* | text()"/>
      </xsl:for-each>
      <xsl:if test="$depth > 1">]</xsl:if>
    </xsl:element>
  </xsl:if>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template generateParentsByAttribute
Namespace No namespace
Used by
References
Import precedence 15
Source
<xsl:template name="generateParentsByAttribute">
  <xsl:variable name="this" select="@ident"/>
  <xsl:variable name="list">
    <PattList>
      <xsl:for-each select="key('REFSTO-CLASS', $this)">
        <xsl:sort select="ancestor::tei:classSpec/@ident"/>
        <xsl:sort select="@ident"/>
        <xsl:element namespace="{$outputNS}" name="{$itemName}">
          <xsl:for-each select="ancestor::tei:classSpec">
            <Item>
              <xsl:call-template name="linkTogether">
                <xsl:with-param name="name">
                  <xsl:value-of select="@ident"/>
                </xsl:with-param>
                <xsl:with-param name="class">
                  <xsl:text>link_odd_classSpec</xsl:text>
                </xsl:with-param>
              </xsl:call-template>
            </Item>
          </xsl:for-each>
          <xsl:text>/@</xsl:text>
          <xsl:value-of select="ancestor::tei:attDef/@ident"/>
        </xsl:element>
      </xsl:for-each>
    </PattList>
  </xsl:variable>
  <xsl:if test="count($list/PattList/Item) > 0">
    <xsl:element namespace="{$outputNS}" name="{$segName}">
      <xsl:attribute name="{$langAttributeName}">
        <xsl:value-of select="$documentationLanguage"/>
      </xsl:attribute>
      <xsl:sequence select="tei:i18n('Class')"/>
    </xsl:element>
    <xsl:text>: </xsl:text>
    <xsl:element namespace="{$outputNS}" name="{$ulName}">
      <xsl:for-each select="$list/PattList/Item">
        <xsl:copy-of select="* | text()"/>
      </xsl:for-each>
    </xsl:element>
  </xsl:if>
  <xsl:variable name="list2">
    <PattList>
      <xsl:for-each select="key('REFSTO-ELEMENT', $this)">
        <xsl:sort select="ancestor::tei:elementSpec/@ident"/>
        <xsl:sort select="@ident"/>
        <Item>
          <xsl:element namespace="{$outputNS}" name="{$itemName}">
            <xsl:for-each select="ancestor::tei:elementSpec">
              <xsl:call-template name="linkTogether">
                <xsl:with-param name="name">
                  <xsl:value-of select="concat(@prefix, @ident)"/>
                </xsl:with-param>
                <xsl:with-param name="reftext">
                  <xsl:value-of select="tei:createSpecName(.)"/>
                </xsl:with-param>
                <xsl:with-param name="class">
                  <xsl:text>link_odd_elementSpec</xsl:text>
                </xsl:with-param>
              </xsl:call-template>
            </xsl:for-each>
            <xsl:text>/@</xsl:text>
            <xsl:for-each select="ancestor::tei:attDef">
              <xsl:value-of select="(tei:altIdent | @ident)[last()]"/>
            </xsl:for-each>
          </xsl:element>
        </Item>
      </xsl:for-each>
    </PattList>
  </xsl:variable>
  <xsl:if test="count($list2/PattList/Item) > 0">
    <xsl:element namespace="{$outputNS}" name="{$segName}">
      <xsl:attribute name="{$langAttributeName}">
        <xsl:value-of select="$documentationLanguage"/>
      </xsl:attribute>
      <xsl:sequence select="tei:i18n('Element')"/>
      <xsl:text>: </xsl:text>
    </xsl:element>
    <xsl:element namespace="{$outputNS}" name="{$ulName}">
      <xsl:for-each select="$list2/PattList/Item">
        <xsl:copy-of select="* | text()"/>
      </xsl:for-each>
    </xsl:element>
  </xsl:if>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template tei:classSpec | tei:elementSpec | tei:macroSpec | tei:dataSpecweave
Namespace No namespace
Match tei:classSpec | tei:elementSpec | tei:macroSpec | tei:dataSpec
Mode weave
References
Template
Import precedence 15
Source
<xsl:template match="tei:classSpec | tei:elementSpec | tei:macroSpec | tei:dataSpec" mode="weave">
  <xsl:call-template name="refdoc"/>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template tei:divGen[@type = 'modelclasscat']
Namespace No namespace
Match tei:divGen[@type = 'modelclasscat']
Mode #default
References
Import precedence 15
Source
<xsl:template match="tei:divGen[@type = 'modelclasscat']">
  <xsl:apply-templates mode="weave" select="key('MODELCLASSDOCS', 1)">
    <xsl:sort select="lower-case(@ident)"/>
  </xsl:apply-templates>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template tei:divGen[@type = 'attclasscat']
Namespace No namespace
Match tei:divGen[@type = 'attclasscat']
Mode #default
References
Import precedence 15
Source
<xsl:template match="tei:divGen[@type = 'attclasscat']">
  <xsl:apply-templates mode="weave" select="key('ATTCLASSDOCS', 1)">
    <xsl:sort select="lower-case(@ident)"/>
  </xsl:apply-templates>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template tei:divGen[@type = 'macrocat']
Namespace No namespace
Match tei:divGen[@type = 'macrocat']
Mode #default
References
Key
Import precedence 15
Source
<xsl:template match="tei:divGen[@type = 'macrocat']">
  <xsl:apply-templates mode="weave" select="key('MACRODOCS', 1)">
    <xsl:sort select="lower-case(@ident)"/>
  </xsl:apply-templates>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template tei:divGen[@type = 'elementcat']
Namespace No namespace
Match tei:divGen[@type = 'elementcat']
Mode #default
References
Import precedence 15
Source
<xsl:template match="tei:divGen[@type = 'elementcat']">
  <xsl:apply-templates mode="weave" select="key('ELEMENTDOCS', 1)">
    <xsl:sort select="lower-case(@ident)"/>
  </xsl:apply-templates>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template tei:divGen[@type = 'attcat']
Namespace No namespace
Match tei:divGen[@type = 'attcat']
Mode #default
References
Import precedence 15
Source
<xsl:template match="tei:divGen[@type = 'attcat']">
  <xsl:element namespace="{$outputNS}" name="{$tableName}">
    <xsl:attribute name="{$rendName}">
      <xsl:text>attcat</xsl:text>
    </xsl:attribute>
    <xsl:for-each select="key('ATTDOCS', 1)">
      <xsl:sort select="lower-case(@ident)"/>
      <xsl:variable name="this" select="@ident"/>
      <xsl:if test="generate-id() = generate-id(key('ATTRIBUTES', $this)[1])">
        <xsl:element namespace="{$outputNS}" name="{$rowName}">
          <xsl:call-template name="identifyElement">
            <xsl:with-param name="id">
              <xsl:value-of select="translate($this, ':', '_')"/>
            </xsl:with-param>
          </xsl:call-template>
          <xsl:element namespace="{$outputNS}" name="{$cellName}">
            <xsl:attribute name="{$rendName}">
              <xsl:text>attcat-col1</xsl:text>
            </xsl:attribute>
            <xsl:value-of select="$this"/>
          </xsl:element>
          <xsl:element namespace="{$outputNS}" name="{$cellName}">
            <xsl:attribute name="{$rendName}">
              <xsl:text>attcat-col2</xsl:text>
            </xsl:attribute>
            <xsl:for-each select="key('ATTRIBUTES-CLASS', $this)">
              <xsl:sort select="ancestor::tei:classSpec/@ident"/>
              <xsl:for-each select="ancestor::tei:classSpec | ancestor::elementSpec">
                <xsl:call-template name="linkTogether">
                  <xsl:with-param name="name">
                    <xsl:value-of select="concat(@prefix, @ident)"/>
                  </xsl:with-param>
                  <xsl:with-param name="reftext">
                    <xsl:value-of select="tei:createSpecName(.)"/>
                  </xsl:with-param>
                  <xsl:with-param name="class">
                    <xsl:text>link_odd</xsl:text>
                  </xsl:with-param>
                </xsl:call-template>
              </xsl:for-each>
              <xsl:text> </xsl:text>
            </xsl:for-each>
            <xsl:for-each select="key('ATTRIBUTES-ELEMENT', $this)">
              <xsl:sort select="ancestor::tei:elementSpec/@ident"/>
              <xsl:for-each select="ancestor::tei:elementSpec">
                <xsl:call-template name="linkTogether">
                  <xsl:with-param name="name">
                    <xsl:value-of select="concat(@prefix, @ident)"/>
                  </xsl:with-param>
                  <xsl:with-param name="reftext">
                    <xsl:value-of select="tei:createSpecName(.)"/>
                  </xsl:with-param>
                  <xsl:with-param name="class">
                    <xsl:text>link_odd</xsl:text>
                  </xsl:with-param>
                </xsl:call-template>
              </xsl:for-each>
              <xsl:value-of select="$spaceCharacter"/>
              <xsl:text> </xsl:text>
            </xsl:for-each>
          </xsl:element>
        </xsl:element>
      </xsl:if>
    </xsl:for-each>
  </xsl:element>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template tei:divGen[@type = 'deprecationcat']
Documentation

Description

 MDH & SB working on ticket #1657 2018-09-10. 
Namespace No namespace
Match tei:divGen[@type = 'deprecationcat']
Mode #default
References
Import precedence 15
Source
<xsl:template match="tei:divGen[@type = 'deprecationcat']">
  <xsl:element namespace="{$outputNS}" name="{$ulName}">
    <xsl:attribute name="{$rendName}">
      <xsl:text>deprecationcat</xsl:text>
    </xsl:attribute>
    <xsl:for-each select="//tei:*[@validUntil]">
      <xsl:sort select="@validUntil"/>
      <xsl:element namespace="{$outputNS}" name="{$itemName}">
        <xsl:apply-templates select="descendant::tei:desc[@type='deprecationInfo'][1]"/>
        <xsl:text> </xsl:text>
        <xsl:value-of select="tei:i18n('validuntil')"/>
        <xsl:text> </xsl:text>
        <xsl:element namespace="{$outputNS}" name="{$segName}">
          <xsl:attribute name="{$rendName}">deprecationdate</xsl:attribute>
          <xsl:value-of select="@validUntil"/>
        </xsl:element>.</xsl:element>
    </xsl:for-each>
  </xsl:element>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template tei:exemplumweave
Namespace No namespace
Match tei:exemplum
Mode weave
Import precedence 15
Source
<xsl:template match="tei:exemplum" mode="weave">
  <xsl:if test="teix:egXML/* or teix:egXML/text() or text()">
    <xsl:apply-templates select="." mode="doc"/>
  </xsl:if>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template tei:desc | tei:glossweave
Documentation

Description

No-op processing of elements tei:gloss and tei:desc in normal modes, as they will always be called explicitly if needed.
Namespace No namespace
Match tei:desc | tei:gloss
Mode weave
Import precedence 15
Source
<xsl:template match="tei:desc | tei:gloss" mode="weave"/>
Stylesheet location ../../../common/common_tagdocs.xsl
Template tei:remarksweave
Namespace No namespace
Match tei:remarks
Mode weave
References
Import precedence 15
Source
<xsl:template match="tei:remarks" mode="weave">
  <xsl:variable name="langs">
    <xsl:value-of select="concat(normalize-space(tei:generateDocumentationLang(.)), ' ')"/>
  </xsl:variable>
  <xsl:variable name="firstLang">
    <xsl:value-of select="substring-before($langs, ' ')"/>
  </xsl:variable>
  <xsl:choose>
    <xsl:when test="@xml:lang = $firstLang">
      <xsl:apply-templates select="." mode="doc"/>
    </xsl:when>
    <xsl:when test="not(@xml:lang) and tei:generateDocumentationLang(.) = 'en'">
      <xsl:apply-templates select="." mode="doc"/>
    </xsl:when>
    <xsl:otherwise>
      <xsl:variable name="currentLang" select="tei:findLanguage(.)"/>
      <xsl:if test="$currentLang = ($langs)">
        <xsl:apply-templates select="." mode="doc"/>
      </xsl:if>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template tei:valListweave
Documentation

Description

Process element valList
Namespace No namespace
Match tei:valList
Mode weave
Import precedence 15
Source
<xsl:template match="tei:valList" mode="weave">
  <xsl:apply-templates mode="contents" select="."/>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template tei:attListweave
Documentation

Description

Process element attList
Namespace No namespace
Match tei:attList
Mode weave
Import precedence 15
Source
<xsl:template match="tei:attList" mode="weave"/>
Stylesheet location ../../../common/common_tagdocs.xsl
Template tei:defaultValweave
Documentation

Description

Process element defaultVal
Namespace No namespace
Match tei:defaultVal
Mode weave
References
Import precedence 15
Source
<xsl:template match="tei:defaultVal" mode="weave">
  <xsl:if test="not(../tei:valList)">
    <xsl:element namespace="{$outputNS}" name="{$rowName}">
      <xsl:element namespace="{$outputNS}" name="{$cellName}">
        <xsl:attribute name="{$rendName}">
          <xsl:text>odd_label</xsl:text>
        </xsl:attribute>
        <xsl:element namespace="{$outputNS}" name="{$hiName}">
          <xsl:attribute name="{$langAttributeName}">
            <xsl:value-of select="$documentationLanguage"/>
          </xsl:attribute>
          <xsl:attribute name="{$rendName}">
            <xsl:text>label</xsl:text>
          </xsl:attribute>
          <xsl:sequence select="tei:i18n('Default')"/>
        </xsl:element>
        <xsl:text> </xsl:text>
      </xsl:element>
      <xsl:element namespace="{$outputNS}" name="{$cellName}">
        <xsl:attribute name="{$rendName}">
          <xsl:text>odd_value</xsl:text>
        </xsl:attribute>
        <xsl:value-of select="."/>
        <xsl:if test="@validUntil">
          <!-- This clause added 2016-07-22 by Syd and Martin so that -->
          <!-- default values can be deprecated. See issue #158.      -->
          <xsl:element namespace="{$outputNS}" name="{$tableName}">
            <xsl:call-template name="validUntil"/>
          </xsl:element>
        </xsl:if>
      </xsl:element>
    </xsl:element>
  </xsl:if>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template tei:desc[ parent::tei:attDef |parent::tei:classSpec |parent::tei:constraintSpec |parent::tei:dataSpec |parent::tei:elementSpec |parent::tei:listRef |parent::tei:macroSpec |parent::tei:model |parent::tei:modelGrp |parent::tei:modelSequence |parent::tei:moduleSpec |parent::tei:paramSpec |parent::tei:schemaSpec |parent::tei:valItem ]
Documentation

Description

Process element desc iff it is the child of a specification element. We only process specification element descriptions (which become just plain text in the RELAX NG annotations, as markup is not allowed in a RELAX NG annotation) here, as a description that is not the child of a specification element (which becomes a <desc> element in the output TEI Lite) are processed elsewhere.

Description

 This template changed 2021-06-24 by Stylesheets group in
       response to ticket #444 in the Stylesheets repo, which
       complained that a <desc> inside a <graphic> was doing the wrong
       thing (to wit, copying only the content of the <desc> into the
       TEI Lite, not the entire <desc> element, because it was being
       processed by this template without the predicate). 
Namespace No namespace
Match tei:desc[ parent::tei:attDef |parent::tei:classSpec |parent::tei:constraintSpec |parent::tei:dataSpec |parent::tei:elementSpec |parent::tei:listRef |parent::tei:macroSpec |parent::tei:model |parent::tei:modelGrp |parent::tei:modelSequence |parent::tei:moduleSpec |parent::tei:paramSpec |parent::tei:schemaSpec |parent::tei:valItem ]
Mode #default
Import precedence 15
Source
<xsl:template match="tei:desc[                         parent::tei:attDef                        |parent::tei:classSpec                        |parent::tei:constraintSpec                        |parent::tei:dataSpec                        |parent::tei:elementSpec                        |parent::tei:listRef                        |parent::tei:macroSpec                        |parent::tei:model                        |parent::tei:modelGrp                        |parent::tei:modelSequence                        |parent::tei:moduleSpec                        |parent::tei:paramSpec                        |parent::tei:schemaSpec                        |parent::tei:valItem ] ">
  <xsl:apply-templates/>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template nckeep
Documentation

Description

 pretty printing of RNC 
Namespace No namespace
Match nc
Mode keep
References
Template
Import precedence 15
Source
<xsl:template match="nc" mode="keep">
  <xsl:call-template name="showRNC">
    <xsl:with-param name="style">
      <xsl:text>rnc_nc</xsl:text>
    </xsl:with-param>
    <xsl:with-param name="contents">
      <xsl:value-of select="."/>
    </xsl:with-param>
  </xsl:call-template>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template declarationkeep
Namespace No namespace
Match declaration
Mode keep
References
Template
Import precedence 15
Source
<xsl:template match="declaration" mode="keep">
  <xsl:call-template name="showRNC">
    <xsl:with-param name="style">
      <xsl:text>rnc_decl</xsl:text>
    </xsl:with-param>
    <xsl:with-param name="contents">
      <xsl:value-of select="."/>
    </xsl:with-param>
  </xsl:call-template>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template prefixkeep
Namespace No namespace
Match prefix
Mode keep
References
Template
Import precedence 15
Source
<xsl:template match="prefix" mode="keep">
  <xsl:call-template name="showRNC">
    <xsl:with-param name="style">
      <xsl:text>rnc_prefix</xsl:text>
    </xsl:with-param>
    <xsl:with-param name="contents">
      <xsl:value-of select="."/>
    </xsl:with-param>
  </xsl:call-template>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template paramkeep
Namespace No namespace
Match param
Mode keep
References
Template
Import precedence 15
Source
<xsl:template match="param" mode="keep">
  <xsl:call-template name="showRNC">
    <xsl:with-param name="style">
      <xsl:text>rnc_param</xsl:text>
    </xsl:with-param>
    <xsl:with-param name="contents">
      <xsl:value-of select="."/>
    </xsl:with-param>
  </xsl:call-template>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template opkeep
Namespace No namespace
Match op
Mode keep
Import precedence 15
Source
<xsl:template match="op" mode="keep">
  <xsl:value-of select="translate(., ' ', ' ')"/>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template atomkeep
Namespace No namespace
Match atom
Mode keep
References
Template
Import precedence 15
Source
<xsl:template match="atom" mode="keep">
  <xsl:call-template name="showRNC">
    <xsl:with-param name="style">
      <xsl:text>rnc_atom</xsl:text>
    </xsl:with-param>
    <xsl:with-param name="contents">
      <xsl:value-of select="."/>
    </xsl:with-param>
  </xsl:call-template>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template tkeep
Namespace No namespace
Match t
Mode keep
References
Template
Import precedence 15
Source
<xsl:template match="t" mode="keep">
  <xsl:choose>
    <xsl:when test=". = '[' or . = ']'">
      <xsl:call-template name="showRNC">
        <xsl:with-param name="style">
          <xsl:text>rnc_annot</xsl:text>
        </xsl:with-param>
        <xsl:with-param name="contents">
          <xsl:value-of select="."/>
        </xsl:with-param>
      </xsl:call-template>
    </xsl:when>
    <xsl:otherwise>
      <xsl:value-of select="."/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template dockeep
Namespace No namespace
Match doc
Mode keep
References
Template
Import precedence 15
Source
<xsl:template match="doc" mode="keep">
  <xsl:call-template name="showRNC">
    <xsl:with-param name="style">
      <xsl:text>rnc_comment</xsl:text>
    </xsl:with-param>
    <xsl:with-param name="contents">
      <xsl:value-of select="."/>
    </xsl:with-param>
  </xsl:call-template>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template annotkeep
Namespace No namespace
Match annot
Mode keep
References
Template
Import precedence 15
Source
<xsl:template match="annot" mode="keep">
  <xsl:call-template name="showRNC">
    <xsl:with-param name="style">
      <xsl:text>rnc_annot</xsl:text>
    </xsl:with-param>
    <xsl:with-param name="contents">
      <xsl:value-of select="."/>
    </xsl:with-param>
  </xsl:call-template>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template typekeep
Namespace No namespace
Match type
Mode keep
References
Template
Import precedence 15
Source
<xsl:template match="type" mode="keep">
  <xsl:call-template name="showRNC">
    <xsl:with-param name="style">
      <xsl:text>rnc_type</xsl:text>
    </xsl:with-param>
    <xsl:with-param name="contents">
      <xsl:value-of select="."/>
    </xsl:with-param>
  </xsl:call-template>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template keywordkeep
Namespace No namespace
Match keyword
Mode keep
References
Template
Import precedence 15
Source
<xsl:template match="keyword" mode="keep">
  <xsl:call-template name="showRNC">
    <xsl:with-param name="style">
      <xsl:text>rnc_keyword</xsl:text>
    </xsl:with-param>
    <xsl:with-param name="contents">
      <xsl:value-of select="."/>
    </xsl:with-param>
  </xsl:call-template>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template tei:attList[@org = 'choice']
Namespace No namespace
Match tei:attList[@org = 'choice']
Mode #default
Import precedence 15
Source
<xsl:template match="tei:attList[@org = 'choice']">
  <xsl:apply-templates/>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template showAttClasses
Namespace No namespace
Used by
References
Parameters
QName Namespace
minimal No namespace
Import precedence 15
Source
<xsl:template name="showAttClasses">
  <xsl:param name="minimal">false</xsl:param>
  <xsl:variable name="clatts">
    <xsl:for-each select="ancestor-or-self::tei:elementSpec | ancestor-or-self::tei:classSpec">
      <xsl:call-template name="attClassDetails"/>
    </xsl:for-each>
  </xsl:variable>
  <xsl:choose>
    <xsl:when test="$minimal = 'true' and not($clatts = '')">
      <xsl:text> [+ </xsl:text>
      <xsl:copy-of select="$clatts"/>
      <xsl:text>]</xsl:text>
    </xsl:when>
    <xsl:when test="not($clatts = '')">
      <xsl:if test="ancestor::tei:schemaSpec and key('CLASSES', 'att.global')">
        <xsl:variable name="word">
          <xsl:choose>
            <xsl:when test="not($autoGlobal = 'true')"/>
            <xsl:when test=".//tei:attDef">In addition to global attributes and those inherited from</xsl:when>
            <xsl:otherwise>Global attributes and those inherited from</xsl:otherwise>
          </xsl:choose>
        </xsl:variable>
        <xsl:if test="normalize-space($word) ne ''">
          <xsl:element namespace="{$outputNS}" name="{$segName}">
            <xsl:attribute name="{$langAttributeName}">
              <xsl:value-of select="$documentationLanguage"/>
            </xsl:attribute>
            <xsl:sequence select="tei:i18n($word) || $spaceCharacter"/>
          </xsl:element>
        </xsl:if>
      </xsl:if>
      <xsl:copy-of select="$clatts"/>
    </xsl:when>
    <xsl:when test="ancestor::tei:schemaSpec and not(key('CLASSES', 'att.global'))">
    </xsl:when>
    <xsl:otherwise>
      <xsl:variable name="word">
        <xsl:choose>
          <xsl:when test="not($autoGlobal = 'true')"/>
          <xsl:when test=".//tei:attDef">In addition to global attributes</xsl:when>
          <xsl:otherwise>Global attributes only</xsl:otherwise>
        </xsl:choose>
      </xsl:variable>
      <xsl:sequence select="tei:i18n($word)"/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template attClassDetails
Namespace No namespace
Used by
References
Import precedence 15
Source
<xsl:template name="attClassDetails">
  <xsl:for-each select="tei:classes/tei:memberOf">
    <xsl:variable name="key" select="@key"/>
    <!--
          Note: following line does not use "key('ATTCLASSES', @key)",
          which would arguable be mildly faster, because ATTCLASSES is
          not defined in this or any imported file, and importing the
          file in which it is defined (odds/classatts.xsl) requires
          importing other files, which in turn importing other files,
          etc.  —Syd, 2023-11-03
      -->
    <xsl:variable name="thisClassSpec" select="//tei:classSpec[@type eq 'atts'][@ident eq $key]" as="element(tei:classSpec)?"/>
    <xsl:choose>
      <xsl:when test="$thisClassSpec">
        <xsl:element namespace="{$outputNS}" name="{$itemName}">
          <xsl:attribute name="{$rendName}" select="'classSpecItem'"/>
          <!-- Set the context node to be the <classSpec> this <memberOf> points to -->
          <xsl:for-each select="$thisClassSpec[@type eq 'atts']">
            <xsl:call-template name="linkTogether">
              <xsl:with-param name="name" select="@ident"/>
            </xsl:call-template>
            <xsl:if test=".//tei:attDef">
              <xsl:element namespace="{$outputNS}" name="{$ulName}">
                <xsl:attribute name="{$rendName}" select="'classSpecAttDefs'"/>
                <xsl:for-each select=".//tei:attDef">
                  <xsl:element namespace="{$outputNS}" name="{$itemName}">
                    <xsl:call-template name="emphasize">
                      <xsl:with-param name="class">attribute</xsl:with-param>
                      <xsl:with-param name="content">
                        <xsl:value-of select="'@'||tei:createSpecName(.)"/>
                      </xsl:with-param>
                    </xsl:call-template>
                  </xsl:element>
                </xsl:for-each>
              </xsl:element>
            </xsl:if>
            <xsl:if test=".//tei:attRef">
              <xsl:element namespace="{$outputNS}" name="{$ulName}">
                <xsl:attribute name="{$rendName}" select="'classSpecAttRefs'"/>
                <xsl:call-template name="showAttRefs"/>
              </xsl:element>
            </xsl:if>
            <xsl:if test="tei:classes/tei:memberOf">
              <xsl:element namespace="{$outputNS}" name="{$ulName}">
                <xsl:attribute name="{$rendName}" select="'classSpecMemberOfs'"/>
                <xsl:call-template name="attClassDetails"/>
              </xsl:element>
            </xsl:if>
          </xsl:for-each>
        </xsl:element>
      </xsl:when>
    </xsl:choose>
  </xsl:for-each>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template showElement
Namespace No namespace
Used by
References
Parameters
QName Namespace
name No namespace
Import precedence 15
Source
<xsl:template name="showElement">
  <xsl:param name="name"/>
  <xsl:variable name="linkname" select="concat(tei:createSpecPrefix(.), $name)"/>
  <xsl:choose>
    <xsl:when test="$oddmode = 'tei'">
      <xsl:choose>
        <xsl:when test="starts-with($name, 'teidata')">
          <tei:ref target="#{concat($idPrefix, $name)}">
            <xsl:value-of select="$name"/>
          </tei:ref>
        </xsl:when>
        <xsl:otherwise>
          <tei:ref target="{concat('https://www.w3.org/TR/xmlschema-2/#', $name)}">
            <xsl:value-of select="$name"/>
          </tei:ref>
        </xsl:otherwise>
      </xsl:choose>
    </xsl:when>
    <xsl:when test="$oddmode = 'html'">
      <xsl:choose>
        <xsl:when test="key('IDENTS', $name) and number($splitLevel) = -1">
          <a xmlns="http://www.w3.org/1999/xhtml" class="link_element" href="#{$name}">
            <xsl:value-of select="$name"/>
          </a>
        </xsl:when>
        <xsl:when test="key('IDENTS', $name) and $STDOUT = 'true'">
          <a xmlns="http://www.w3.org/1999/xhtml" class="link_element">
            <xsl:attribute name="href">
              <xsl:call-template name="getSpecURL">
                <xsl:with-param name="name">
                  <xsl:value-of select="$name"/>
                </xsl:with-param>
                <xsl:with-param name="type">
                  <xsl:value-of select="substring-before(local-name(), 'Spec')"/>
                </xsl:with-param>
              </xsl:call-template>
            </xsl:attribute>
            <xsl:value-of select="$name"/>
          </a>
        </xsl:when>
        <xsl:when test="key('IDENTS', $name)">
          <a xmlns="http://www.w3.org/1999/xhtml" class="link_element" href="ref-{$linkname}{$outputSuffix}">
            <xsl:value-of select="$name"/>
          </a>
        </xsl:when>
        <xsl:otherwise>
          <xsl:value-of select="$name"/>
        </xsl:otherwise>
      </xsl:choose>
    </xsl:when>
    <xsl:when test="$oddmode = 'pdf'">
      <fo:inline font-style="italic">
        <xsl:value-of select="$name"/>
      </fo:inline>
    </xsl:when>
    <xsl:otherwise>
      <xsl:value-of select="$name"/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template processatts
Namespace No namespace
References
Key
Parameters
QName Namespace
values No namespace
Import precedence 15
Source
<xsl:template name="processatts">
  <xsl:param name="values"/>
  <xsl:variable name="here" select="."/>
  <xsl:for-each select="tokenize($values, ' ')">
    <xsl:variable name="v" select="."/>
    <xsl:for-each select="$here">
      <xsl:apply-templates select="key('IDENTS', .)"/>
    </xsl:for-each>
  </xsl:for-each>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template tei:attListshow
Documentation

Description

Process element attList
Namespace No namespace
Match tei:attList
Mode show
References
Template
Import precedence 15
Source
<xsl:template match="tei:attList" mode="show">
  <xsl:call-template name="displayAttList">
    <xsl:with-param name="mode">summary</xsl:with-param>
  </xsl:call-template>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template makeTagsetInfo
Namespace No namespace
Used by
Template
References
Key
Template
Import precedence 15
Source
<xsl:template name="makeTagsetInfo">
  <xsl:value-of select="@module"/>
  <xsl:for-each select="key('MODULES', @module)/ancestor::tei:div[last()]">
    <xsl:if test="@xml:id">
      <xsl:text></xsl:text>
      <xsl:call-template name="makeInternalLink">
        <xsl:with-param name="dest" select="@xml:id"/>
        <xsl:with-param name="ptr" select="true()"/>
        <xsl:with-param name="body">
          <xsl:value-of select="tei:head"/>
        </xsl:with-param>
      </xsl:call-template>
    </xsl:if>
  </xsl:for-each>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template generateChildren
Namespace No namespace
Used by
References
Import precedence 15
Source
<xsl:template name="generateChildren">
  <xsl:variable name="name" select="concat(@prefix, @ident)"/>
  <xsl:choose>
    <xsl:when test="tei:content//rng:ref[@name = 'macro.anyXML']">
      <xsl:element namespace="{$outputNS}" name="{$segName}">
        <xsl:attribute name="{$langAttributeName}">
          <xsl:value-of select="$documentationLanguage"/>
        </xsl:attribute>
        <xsl:text>ANY</xsl:text>
      </xsl:element>
    </xsl:when>
    <xsl:when test="tei:content//tei:anyElement">
      <xsl:element namespace="{$outputNS}" name="{$segName}">
        <xsl:attribute name="{$langAttributeName}">
          <xsl:value-of select="$documentationLanguage"/>
        </xsl:attribute>
        <xsl:text>ANY</xsl:text>
      </xsl:element>
    </xsl:when>
    <xsl:when test="tei:content/tei:textNode and count(tei:content/*) = 1">
      <xsl:element namespace="{$outputNS}" name="{$segName}">
        <xsl:attribute name="{$langAttributeName}">
          <xsl:value-of select="$documentationLanguage"/>
        </xsl:attribute>
        <xsl:sequence select="tei:i18n('Character data only')"/>
      </xsl:element>
    </xsl:when>
    <xsl:when test="tei:content/rng:text and count(tei:content/rng:*) = 1">
      <xsl:element namespace="{$outputNS}" name="{$segName}">
        <xsl:attribute name="{$langAttributeName}">
          <xsl:value-of select="$documentationLanguage"/>
        </xsl:attribute>
        <xsl:sequence select="tei:i18n('Character data only')"/>
      </xsl:element>
    </xsl:when>
    <xsl:when test="tei:content/rng:empty">
      <xsl:element namespace="{$outputNS}" name="{$segName}">
        <xsl:attribute name="{$langAttributeName}">
          <xsl:value-of select="$documentationLanguage"/>
        </xsl:attribute>
        <xsl:sequence select="tei:i18n('Empty element')"/>
      </xsl:element>
    </xsl:when>
    <xsl:otherwise>
      <xsl:variable name="Children">
        <xsl:for-each select="tei:content">
          <xsl:call-template name="followRef"/>
        </xsl:for-each>
      </xsl:variable>
      <xsl:call-template name="displayElementsByModule">
        <xsl:with-param name="context">children</xsl:with-param>
        <xsl:with-param name="List">
          <xsl:copy-of select="$Children"/>
        </xsl:with-param>
      </xsl:call-template>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template displayElementsByModule
Namespace No namespace
Used by
References
Parameters
QName Namespace
List No namespace
context No namespace
Import precedence 15
Source
<xsl:template name="displayElementsByModule">
  <xsl:param name="List"/>
  <xsl:param name="context"/>
  <xsl:variable name="here" select="."/>
  <xsl:for-each select="$List">
    <xsl:choose>
      <xsl:when test="$context = 'parents' and count(Element) = 0">
        <xsl:text></xsl:text>
      </xsl:when>
      <xsl:when test="Element[@type = 'TEXT'] and count(Element) = 1">
        <xsl:element namespace="{$outputNS}" name="{$segName}">
          <xsl:attribute name="{$langAttributeName}">
            <xsl:value-of select="$documentationLanguage"/>
          </xsl:attribute>
          <xsl:sequence select="tei:i18n('Character data only')"/>
        </xsl:element>
      </xsl:when>
      <xsl:when test="count(Element) = 0">
        <xsl:element namespace="{$outputNS}" name="{$segName}">
          <xsl:attribute name="{$langAttributeName}">
            <xsl:value-of select="$documentationLanguage"/>
          </xsl:attribute>
          <xsl:sequence select="tei:i18n('Empty element')"/>
        </xsl:element>
      </xsl:when>
      <xsl:otherwise>
        <xsl:element namespace="{$outputNS}" name="{$divName}">
          <xsl:attribute name="{$rendName}" select="'specChildren'"/>
          <xsl:for-each-group select="*" group-by="@module">
            <xsl:sort select="@module"/>
            <xsl:element namespace="{$outputNS}" name="{$divName}">
              <xsl:attribute name="{$rendName}">
                <xsl:text>specChild</xsl:text>
              </xsl:attribute>
              <xsl:choose>
                <xsl:when test="@type='TEXT'">
                  <xsl:sequence select="tei:i18n('character data')"/>
                </xsl:when>
                <!-- Stylesheets group has concerns about if, and how, the
                    following should be internationalized. For now, just keep
                    it so simple it does not need translation.
                    — 2020-03-17 -->
                <xsl:when test="@type eq 'XSD'">
                  <xsl:sequence select="concat('XSD ', @name)"/>
                </xsl:when>
                <xsl:when test="@type='ANYXML'">
                  <xsl:for-each select="$here">
                    <xsl:call-template name="linkTogether">
                      <xsl:with-param name="name">macro.anyXML</xsl:with-param>
                      <xsl:with-param name="class">link_odd</xsl:with-param>
                    </xsl:call-template>
                  </xsl:for-each>
                </xsl:when>
                <xsl:otherwise>
                  <xsl:if test="string-length(current-grouping-key()) > 0">
                    <xsl:element namespace="{$outputNS}" name="{$segName}">
                      <xsl:attribute name="{$rendName}">
                        <xsl:text>specChildModule</xsl:text>
                      </xsl:attribute>
                      <xsl:value-of select="current-grouping-key()"/>
                      <xsl:text>: </xsl:text>
                    </xsl:element>
                  </xsl:if>
                  <xsl:element namespace="{$outputNS}" name="{$segName}">
                    <xsl:attribute name="{$rendName}">
                      <xsl:text>specChildElements</xsl:text>
                    </xsl:attribute>
                    <xsl:for-each-group select="current-group()" group-by="@name">
                      <xsl:sort select="@name"/>
                      <xsl:variable name="me" select="concat(@prefix, @name)"/>
                      <xsl:variable name="display" select="@name"/>
                      <xsl:variable name="type" select="@type"/>
                      <xsl:for-each select="$here">
                        <xsl:call-template name="linkTogether">
                          <xsl:with-param name="name" select="$me"/>
                          <xsl:with-param name="reftext" select="$display"/>
                          <xsl:with-param name="class">link_odd_
                            <xsl:value-of select="$type"/>
                          </xsl:with-param>
                        </xsl:call-template>
                      </xsl:for-each>
                      <xsl:if test="not(position() = last())">
                        <xsl:call-template name="showSpaceBetweenItems"/>
                      </xsl:if>
                    </xsl:for-each-group>
                  </xsl:element>
                </xsl:otherwise>
              </xsl:choose>
            </xsl:element>
          </xsl:for-each-group>
        </xsl:element>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:for-each>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template followRef
Namespace No namespace
Used by
References
Import precedence 15
Source
<xsl:template name="followRef">
  <!-- 
      Note that the @prefix being specified on the <Element> elements
      we generate are mostly empty, as the current node when we are
      called is a <tei:content> which does not have an @prefix.
      — Stylesheets group, 2020-03-17
    -->
  <xsl:if test=".//rng:text or .//rng:data or .//tei:textNode">
    <Element prefix="{@prefix}" type="TEXT" module="~TEXT"/>
  </xsl:if>
  <xsl:for-each select="distinct-values( .//tei:dataRef/@name )">
    <Element prefix="" type="XSD" module="~XSD" name="{.}"/>
  </xsl:for-each>
  <xsl:for-each select=".//rng:ref | .//tei:elementRef | .//tei:classRef | .//tei:macroRef | .//tei:dataRef">
    <xsl:if test="not(starts-with(@name, 'any') or starts-with(@name, 'macro.any') or starts-with(@key, 'macro.any') or @name = 'AnyThing')">
      <xsl:variable name="Name" select="replace(@name | @key, '_(alternation|sequenceOptionalRepeatable|sequenceOptional|sequenceRepeatable|sequence)', '')"/>
      <xsl:variable name="except" select="@except"/>
      <xsl:variable name="include" select="@include"/>
      <xsl:for-each select="key('IDENTS', $Name)">
        <xsl:choose>
          <xsl:when test="self::tei:elementSpec">
            <Element prefix="{@prefix}" module="{@module}" type="{local-name()}" name="{tei:createSpecName(.)}"/>
          </xsl:when>
          <xsl:when test="self::tei:macroSpec">
            <xsl:for-each select="tei:content">
              <xsl:choose>
                <xsl:when test="(rng:text or rng:data) and count(rng:*) = 1">
                  <Element prefix="{@prefix}" type="TEXT" module="~TEXT"/>
                </xsl:when>
                <xsl:otherwise>
                  <xsl:call-template name="followRef"/>
                </xsl:otherwise>
              </xsl:choose>
            </xsl:for-each>
          </xsl:when>
          <xsl:when test="self::tei:dataSpec">
            <xsl:for-each select="tei:content">
              <xsl:choose>
                <xsl:when test="(rng:text or rng:data) and count(rng:*) = 1">
                  <Element prefix="{@prefix}" type="TEXT" module="~TEXT"/>
                </xsl:when>
                <xsl:otherwise>
                  <xsl:call-template name="followRef"/>
                </xsl:otherwise>
              </xsl:choose>
            </xsl:for-each>
          </xsl:when>
          <xsl:when test="self::tei:classSpec">
            <xsl:call-template name="followMembers">
              <xsl:with-param name="include" select="$include"/>
              <xsl:with-param name="except" select="$except"/>
            </xsl:call-template>
          </xsl:when>
        </xsl:choose>
      </xsl:for-each>
    </xsl:if>
    <xsl:if test="@key = 'macro.anyXML'">
      <Element type="ANYXML" module="~anyXML"/>
    </xsl:if>
  </xsl:for-each>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template followMembers
Namespace No namespace
Used by
References
Parameters
QName Namespace
except No namespace
include No namespace
Import precedence 15
Source
<xsl:template name="followMembers">
  <xsl:param name="include"/>
  <xsl:param name="except"/>
  <xsl:for-each select="key('CLASSMEMBERS', @ident)">
    <xsl:choose>
      <xsl:when test="self::tei:elementSpec">
        <xsl:if test="tei:includeMember(@ident, $except, $include)">
          <Element prefix="{@prefix}" module="{@module}" type="{local-name()}" name="{tei:createSpecName(.)}"/>
        </xsl:if>
      </xsl:when>
      <xsl:when test="self::tei:classSpec">
        <xsl:call-template name="followMembers">
          <xsl:with-param name="include" select="$include"/>
          <xsl:with-param name="except" select="$except"/>
        </xsl:call-template>
      </xsl:when>
    </xsl:choose>
  </xsl:for-each>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template validUntil
Namespace No namespace
Used by
References
Parameters
QName Namespace Select
inline No namespace false()
Import precedence 15
Source
<xsl:template name="validUntil">
  <xsl:param name="inline" select="false()"/>
  <!-- The above parameter, and the screwy use of it below, added 2016-12-09 -->
  <!-- by Martin and Syd in an attempt to get phrase-level deprecation warnings -->
  <xsl:variable name="rowName" select="if ($inline) then $segName else $rowName"/>
  <xsl:variable name="cellName" select="if ($inline) then $hiName else $cellName"/>
  <xsl:if test="@validUntil">
    <xsl:if test="$inline">  </xsl:if>
    <xsl:element namespace="{$outputNS}" name="{$rowName}">
      <xsl:element namespace="{$outputNS}" name="{$cellName}">
        <xsl:attribute name="{$rendName}">
          <xsl:sequence select="                 if (ancestor::tei:attDef) then                   'odd_label'                 else                   'wovenodd-col1'"/>
        </xsl:attribute>
        <xsl:element namespace="{$outputNS}" name="{$segName}">
          <xsl:attribute name="{$langAttributeName}">
            <xsl:value-of select="$documentationLanguage"/>
          </xsl:attribute>
          <xsl:attribute name="{$rendName}">
            <xsl:text>deprecated</xsl:text>
          </xsl:attribute>
          <xsl:variable name="m">
            <tei:seg>
              <xsl:sequence select="tei:i18n('deprecated')"/>
            </tei:seg>
          </xsl:variable>
          <xsl:for-each select="$m">
            <xsl:call-template name="makeExternalLink">
              <xsl:with-param name="ptr" select="false()"/>
              <xsl:with-param name="dest">
                <xsl:text>https://tei-c.org/documentation/tcw27/</xsl:text>
              </xsl:with-param>
            </xsl:call-template>
          </xsl:for-each>
        </xsl:element>
      </xsl:element>
      <xsl:element namespace="{$outputNS}" name="{$cellName}">
        <xsl:if test="not($inline)">
          <xsl:attribute name="{$colspan}" select="                 if (ancestor-or-self::tei:attDef or self::tei:elementSpec)                 then                   1                 else                   2"/>
          <xsl:attribute name="{$rendName}">
            <xsl:sequence select="                   if (ancestor::tei:attDef) then                     'odd_value'                   else                     'wovenodd-col2'"/>
          </xsl:attribute>
        </xsl:if>
        <xsl:element namespace="{$outputNS}" name="{$segName}">
          <xsl:attribute name="{$langAttributeName}">
            <xsl:value-of select="$documentationLanguage"/>
          </xsl:attribute>
          <xsl:attribute name="{$rendName}">
            <xsl:text>deprecated</xsl:text>
          </xsl:attribute>
          <xsl:value-of select="if (self::tei:defaultVal)                       then tei:i18n('defaultValValidUntil')                       else tei:i18n('validuntil')"/>
          <xsl:text> </xsl:text>
          <xsl:value-of select="@validUntil"/>
        </xsl:element>
      </xsl:element>
    </xsl:element>
  </xsl:if>
</xsl:template>
Stylesheet location ../../../common/common_tagdocs.xsl
Template processSchematron
Namespace No namespace
Used by
Supersedes
Import precedence 15
Source
<xsl:template name="processSchematron"/>
Stylesheet location ../../../common/common_tagdocs.xsl
Parameter teiWeb
Namespace No namespace
Used by
Source
<xsl:param name="teiWeb">
  <xsl:text>https://www.tei-c.org/release/doc/tei-p5-doc/</xsl:text>
</xsl:param>
Stylesheet location ../../../common/common_tagdocs.xsl
Variable Original
Namespace No namespace
Select /
Used by
Template
Source
<xsl:variable name="Original" select="/"/>
Stylesheet location ../../../common/common_tagdocs.xsl
Key CHILDMOD
Namespace No namespace
Match Element
Use @module
Source
<xsl:key name="CHILDMOD" match="Element" use="@module"/>
Stylesheet location ../../../common/common_tagdocs.xsl