Mode:

Compact lists

Showing:

Documentation
Parameters
Used by
References
Overriding
Included modules
Imported from
Source
Stylesheet teiodds.xsl
Documentation

Description

TEI stylesheet for processing TEI ODD markup

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 modules
Imported from
Stylesheet version 2.0
Template processing-instruction()#default tangle
Namespace No namespace
Match processing-instruction()
Mode #default tangle
References
Template
Import precedence 0
Source
<xsl:template match="processing-instruction()" mode="#default tangle">
  <xsl:choose>
    <xsl:when test="name(.) = 'odds'">
      <xsl:choose>
        <xsl:when test=".='date'">This formatted version of the Guidelines was created on
          <xsl:call-template name="whatsTheDate"/>.</xsl:when>
      </xsl:choose>
    </xsl:when>
    <xsl:otherwise>
      <xsl:copy-of select="."/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template *literal
Namespace No namespace
Match *
Mode literal
Import precedence 0
Source
<xsl:template match="*" mode="literal">
  <xsl:text>
</xsl:text>
  <xsl:for-each select="ancestor::rng:*">
    <xsl:text> </xsl:text>
  </xsl:for-each>
  <xsl:text><</xsl:text>
  <xsl:value-of select="local-name(.)"/>
  <xsl:for-each select="@*">
    <xsl:text> </xsl:text>
    <xsl:value-of select="local-name(.)"/>="
    <xsl:value-of select="."/>"</xsl:for-each>
  <xsl:choose>
    <xsl:when test="child::node()">
      <xsl:text>></xsl:text>
      <xsl:apply-templates mode="literal"/>
      <xsl:if test="node()[last()]/self::rng:*">
        <xsl:text>
</xsl:text>
      </xsl:if>
      <xsl:for-each select="ancestor::rng:*">
        <xsl:text> </xsl:text>
      </xsl:for-each>
      <xsl:text></</xsl:text>
      <xsl:value-of select="local-name(.)"/>
      <xsl:text>></xsl:text>
    </xsl:when>
    <xsl:otherwise>
      <xsl:text>/></xsl:text>
      <xsl:if test="node()[last()]/self::rng:*">
        <xsl:text>
	  </xsl:text>
      </xsl:if>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template rng:ref#default tangle
Namespace No namespace
Match rng:ref
Mode #default tangle
References
Overriding
Template
Import precedence 0
Source
<xsl:template match="rng:ref" mode="#default tangle">
  <ref xmlns="http://relaxng.org/ns/structure/1.0" name="{tei:generateRefPrefix(.)}"/>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template rng:*#default tangle
Namespace No namespace
Match rng:*
Mode #default tangle
Import precedence 0
Source
<xsl:template match="rng:*" mode="#default tangle">
  <xsl:element name="{local-name()}" xmlns="http://relaxng.org/ns/structure/1.0">
    <xsl:copy-of select="@*"/>
    <xsl:apply-templates select="rng:*|tei:*|text()|comment()"/>
  </xsl:element>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template rng:zeroOrMore#default tangle
Namespace No namespace
Match rng:zeroOrMore
Mode #default tangle
Overriding
Template
Import precedence 0
Source
<xsl:template match="rng:zeroOrMore" mode="#default tangle">
  <xsl:choose>
    <xsl:when test="rng:ref/@name='model.global'   and preceding-sibling::rng:*[1][self::rng:zeroOrMore/rng:ref/@name='model.global']"/>
    <xsl:when test="count(rng:*)=1 and rng:zeroOrMore">
      <xsl:apply-templates select="rng:*|tei:*|text()|comment()"/>
    </xsl:when>
    <xsl:otherwise>
      <zeroOrMore xmlns="http://relaxng.org/ns/structure/1.0">
        <xsl:copy-of select="@*"/>
        <xsl:apply-templates select="rng:*|tei:*|text()|comment()"/>
      </zeroOrMore>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template rng:choice#default tangle
Namespace No namespace
Match rng:choice
Mode #default tangle
Overriding
Template
Import precedence 0
Source
<xsl:template match="rng:choice" mode="#default tangle">
  <xsl:choose>
    <xsl:when test="count(rng:*)=1">
      <xsl:apply-templates select="a:*|rng:*|tei:*|text()|comment()"/>
    </xsl:when>
    <xsl:otherwise>
      <choice xmlns="http://relaxng.org/ns/structure/1.0">
        <xsl:copy-of select="@*"/>
        <xsl:apply-templates select="a:*|rng:*|tei:*|text()|comment()"/>
      </choice>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template rng:group#default tangle
Namespace No namespace
Match rng:group
Mode #default tangle
Import precedence 0
Source
<xsl:template match="rng:group" mode="#default tangle">
  <!-- check if this group is identical to the last -->
  <xsl:choose>
    <xsl:when test="count(rng:*)=1 and local-name(preceding-sibling::rng:*[1])='group' and rng:zeroOrMore">
      <xsl:variable name="that">
        <xsl:for-each select="preceding-sibling::rng:*[1]">
          <xsl:apply-templates mode="decomposed"/>
        </xsl:for-each>
      </xsl:variable>
      <xsl:variable name="this">
        <xsl:apply-templates mode="decomposed"/>
      </xsl:variable>
      <xsl:choose>
        <xsl:when test="$that=$this"/>
        <xsl:otherwise>
          <group xmlns="http://relaxng.org/ns/structure/1.0">
            <xsl:copy-of select="@*"/>
            <xsl:apply-templates select="rng:*|tei:*|text()|comment()"/>
          </group>
        </xsl:otherwise>
      </xsl:choose>
    </xsl:when>
    <xsl:otherwise>
      <xsl:element name="{local-name()}" xmlns="http://relaxng.org/ns/structure/1.0">
        <xsl:copy-of select="@*"/>
        <xsl:apply-templates select="rng:*|tei:*|text()|comment()"/>
      </xsl:element>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template rng:*decomposed
Namespace No namespace
Match rng:*
Mode decomposed
Import precedence 0
Source
<xsl:template match="rng:*" mode="decomposed">
  <xsl:value-of select="local-name(.)"/>
  <xsl:for-each select="@*">
    <xsl:text>@</xsl:text>
    <xsl:value-of select="."/>
  </xsl:for-each>
  <xsl:apply-templates mode="decomposed"/>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:*tangle
Namespace No namespace
Match tei:*
Mode tangle
Import precedence 0
Source
<xsl:template match="tei:*" mode="tangle"/>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:attReftangle
Namespace No namespace
Match tei:attRef
Mode tangle
References
Overriding
Template
Import precedence 0
Source
<xsl:template match="tei:attRef" mode="tangle">
  <xsl:choose>
    <xsl:when test="key('IDENTS',@class)">
      <ref xmlns="http://relaxng.org/ns/structure/1.0" name="{tei:generateAttRef(.,$generalPrefix)}"/>
    </xsl:when>
    <xsl:when test="@class"/>
    <xsl:otherwise>
      <ref xmlns="http://relaxng.org/ns/structure/1.0" name="{@name}"/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:attDeftangle
Namespace No namespace
Match tei:attDef
Mode tangle
References
Template
Overriding
Template
Parameters
QName Namespace
element No namespace
Import precedence 0
Source
<xsl:template match="tei:attDef" mode="tangle">
  <xsl:param name="element"/>
  <xsl:variable name="I">
    <xsl:value-of select="translate(@ident,':','')"/>
  </xsl:variable>
  <xsl:if test="not(starts-with(@ident,'xmlns'))">
    <xsl:choose>
      <xsl:when test="ancestor::tei:elementSpec">
        <xsl:call-template name="makeAnAttribute"/>
      </xsl:when>
      <xsl:when test="ancestor::tei:classSpec">
        <define xmlns="http://relaxng.org/ns/structure/1.0" name="{$element}.attribute.{translate(@ident,':','')}">
          <xsl:call-template name="makeAnAttribute"/>
        </define>
      </xsl:when>
    </xsl:choose>
  </xsl:if>
  <xsl:apply-templates select="tei:constraintSpec"/>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:attListtangle
Namespace No namespace
Match tei:attList
Mode tangle
Parameters
QName Namespace
element No namespace
Import precedence 0
Source
<xsl:template match="tei:attList" mode="tangle">
  <xsl:param name="element"/>
  <xsl:choose>
    <xsl:when test="count(*)=0"/>
    <xsl:when test="@org='group' and         parent::tei:attList[@org='choice']">
      <group xmlns="http://relaxng.org/ns/structure/1.0">
        <xsl:apply-templates mode="tangle" select="tei:*">
          <xsl:with-param name="element" select="$element"/>
        </xsl:apply-templates>
      </group>
    </xsl:when>
    <xsl:when test="@org='choice'">
      <choice xmlns="http://relaxng.org/ns/structure/1.0">
        <xsl:apply-templates mode="tangle" select="tei:*">
          <xsl:with-param name="element" select="$element"/>
        </xsl:apply-templates>
      </choice>
    </xsl:when>
    <xsl:otherwise>
      <xsl:apply-templates mode="tangle" select="tei:*">
        <xsl:with-param name="element" select="$element"/>
      </xsl:apply-templates>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:classSpectangle
Namespace No namespace
Match tei:classSpec
Mode tangle
References
Overriding
Import precedence 0
Source
<xsl:template match="tei:classSpec" mode="tangle">
  <xsl:variable name="c">
    <xsl:choose>
      <xsl:when test="@prefix">
        <xsl:value-of select="@prefix"/>
      </xsl:when>
      <xsl:otherwise>
        <xsl:value-of select="$generalPrefix"/>
      </xsl:otherwise>
    </xsl:choose>
    <xsl:value-of select="@ident"/>
  </xsl:variable>
  <xsl:if test="$verbose='true'">
    <xsl:message>classSpec
      <xsl:value-of select="@ident"/>(type
      <xsl:value-of select="@type"/>)</xsl:message>
  </xsl:if>
  <xsl:choose>
    <xsl:when test="@type='model'">
      <xsl:apply-templates mode="processModel" select=".">
        <xsl:with-param name="declare">false</xsl:with-param>
        <!--	    <xsl:choose>
	      <xsl:when test="@module='tei'">true</xsl:when>
	      <xsl:otherwise>false</xsl:otherwise>
	    </xsl:choose>
	  </xsl:with-param>
-->
      </xsl:apply-templates>
      <xsl:apply-templates select="tei:constraintSpec"/>
    </xsl:when>
    <xsl:when test="@type='atts'">
      <xsl:call-template name="schemaOut">
        <xsl:with-param name="grammar">true</xsl:with-param>
        <xsl:with-param name="content">
          <Wrapper>
            <xsl:variable name="contents">
              <ROOT>
                <xsl:for-each select="tei:classes/tei:memberOf">
                  <xsl:for-each select="key('LOCALIDENTS',@key)[1]">
                    <xsl:if test="@type='atts'">
                      <ref xmlns="http://relaxng.org/ns/structure/1.0">
                        <xsl:attribute name="name">
                          <xsl:choose>
                            <xsl:when test="@prefix">
                              <xsl:value-of select="@prefix"/>
                            </xsl:when>
                            <xsl:otherwise>
                              <xsl:value-of select="$generalPrefix"/>
                            </xsl:otherwise>
                          </xsl:choose>
                          <xsl:value-of select="@ident"/>
                          <xsl:text>.attributes</xsl:text>
                        </xsl:attribute>
                      </ref>
                    </xsl:if>
                  </xsl:for-each>
                </xsl:for-each>
                <xsl:for-each select="tei:attList//tei:attDef[not(@mode='delete')]">
                  <xsl:if test="not(starts-with(@ident,'xmlns'))">
                    <ref xmlns="http://relaxng.org/ns/structure/1.0" name="{$c}.attribute.{translate(@ident,':','')}"/>
                  </xsl:if>
                </xsl:for-each>
                <xsl:for-each select="tei:attList//tei:attRef">
                  <xsl:choose>
                    <xsl:when test="key('LOCALIDENTS',@class)">
                      <ref xmlns="http://relaxng.org/ns/structure/1.0" name="{tei:generateAttRef(.,$generalPrefix)}"/>
                    </xsl:when>
                    <xsl:when test="@class"/>
                    <xsl:otherwise>
                      <ref xmlns="http://relaxng.org/ns/structure/1.0" name="{@name}"/>
                    </xsl:otherwise>
                  </xsl:choose>
                </xsl:for-each>
              </ROOT>
            </xsl:variable>
            <define xmlns="http://relaxng.org/ns/structure/1.0" name="{$c}.attributes">
              <xsl:for-each select="$contents/ROOT">
                <xsl:apply-templates mode="justcopy"/>
                <xsl:if test="not($contents/ROOT/*)">
                  <empty/>
                </xsl:if>
              </xsl:for-each>
            </define>
            <xsl:apply-templates mode="tangle" select="tei:attList//tei:attDef">
              <xsl:with-param name="element" select="$c"/>
            </xsl:apply-templates>
            <xsl:apply-templates select="tei:constraintSpec"/>
          </Wrapper>
        </xsl:with-param>
      </xsl:call-template>
    </xsl:when>
  </xsl:choose>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:classSpecprocessModel
Namespace No namespace
Match tei:classSpec
Mode processModel
References
Parameters
QName Namespace
declare No namespace
Import precedence 0
Source
<xsl:template match="tei:classSpec" mode="processModel">
  <xsl:param name="declare">false</xsl:param>
  <xsl:if test="$verbose='true'">
    <xsl:message>.... model class
      <xsl:value-of select="@ident"/>
    </xsl:message>
  </xsl:if>
  <xsl:call-template name="schemaOut">
    <xsl:with-param name="grammar">true</xsl:with-param>
    <xsl:with-param name="content">
      <Wrapper>
        <xsl:call-template name="processClassDefinition">
          <xsl:with-param name="type">
            <xsl:choose>
              <xsl:when test="@generate">
                <xsl:value-of select="@generate"/>
              </xsl:when>
              <xsl:otherwise>
                <xsl:text>
			     NULL
			     alternation
			     sequence
			     sequenceOptional
			     sequenceOptionalRepeatable
			   sequenceRepeatable</xsl:text>
              </xsl:otherwise>
            </xsl:choose>
          </xsl:with-param>
          <xsl:with-param name="declare" select="$declare"/>
        </xsl:call-template>
      </Wrapper>
    </xsl:with-param>
  </xsl:call-template>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template processClassDefinition
Namespace No namespace
Used by
References
Parameters
QName Namespace
declare No namespace
type No namespace
Import precedence 0
Source
<xsl:template name="processClassDefinition">
  <xsl:param name="type"/>
  <xsl:param name="declare"/>
  <xsl:variable name="Type">
    <xsl:value-of select="normalize-space($type)"/>
  </xsl:variable>
  <xsl:choose>
    <xsl:when test="string-length($Type)=0">
      <xsl:call-template name="makeClassDefinition">
        <xsl:with-param name="type">NULL</xsl:with-param>
        <xsl:with-param name="declare" select="$declare"/>
      </xsl:call-template>
    </xsl:when>
    <xsl:when test="contains($Type,' ')">
      <xsl:call-template name="makeClassDefinition">
        <xsl:with-param name="type" select="substring-before($Type,' ')"/>
        <xsl:with-param name="declare" select="$declare"/>
      </xsl:call-template>
      <xsl:call-template name="processClassDefinition">
        <xsl:with-param name="type" select="substring-after($Type,' ')"/>
        <xsl:with-param name="declare" select="$declare"/>
      </xsl:call-template>
    </xsl:when>
    <xsl:otherwise>
      <xsl:call-template name="makeClassDefinition">
        <xsl:with-param name="type" select="$Type"/>
        <xsl:with-param name="declare" select="$declare"/>
      </xsl:call-template>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template makeClassDefinition
Namespace No namespace
References
Variable
Template
Key
Parameter
Overriding
Parameters
QName Namespace
declare No namespace
type No namespace
Import precedence 0
Source
<xsl:template name="makeClassDefinition">
  <xsl:param name="type"/>
  <xsl:param name="declare"/>
  <!--
      alternation
      sequence
      sequenceOptional
      sequenceOptionalRepeatable
      sequenceRepeatable
  -->
  <xsl:variable name="thisClass">
    <xsl:value-of select="@ident"/>
  </xsl:variable>
  <xsl:variable name="localprefix">
    <xsl:choose>
      <xsl:when test="@prefix">
        <xsl:value-of select="@prefix"/>
      </xsl:when>
      <xsl:otherwise>
        <xsl:value-of select="$generalPrefix"/>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:variable>
  <xsl:variable name="suffix">
    <xsl:choose>
      <xsl:when test="$type='NULL'">
      </xsl:when>
      <xsl:otherwise>
        <xsl:text>_</xsl:text>
        <xsl:value-of select="$type"/>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:variable>
  <xsl:choose>
    <xsl:when test="$declare='true'">
      <xsl:apply-templates mode="tangleModel" select="tei:classes/tei:memberOf"/>
      <define xmlns="http://relaxng.org/ns/structure/1.0" name="{$localprefix}{$thisClass}{$suffix}">
        <xsl:if test="@predeclare='true'">
          <xsl:attribute name="combine">choice</xsl:attribute>
        </xsl:if>
        <notAllowed/>
      </define>
    </xsl:when>
    <xsl:otherwise>
      <xsl:variable name="makeDecls">
        <xsl:call-template name="findUses">
          <xsl:with-param name="pattern" select="$type"/>
          <xsl:with-param name="class" select="$thisClass"/>
        </xsl:call-template>
      </xsl:variable>
      <!--<xsl:message>

DEBUG <xsl:value-of select="$thisClass"/><xsl:value-of
select="$suffix"/> generated <xsl:value-of
select="$makeDecls"/></xsl:message>
-->
      <xsl:choose>
        <!--
               <xsl:when test="$makeDecls=''">
                  <xsl:if test="$verbose='true'">
                     <xsl:message>Do NOT generate <xsl:value-of select="$thisClass"/>
                        <xsl:value-of select="$suffix"/> (<xsl:value-of select="$type"/>)                     </xsl:message>
                  </xsl:if>
               </xsl:when>
-->
        <xsl:when test="count(key('CLASSMEMBERS',$thisClass))>0">
          <xsl:if test="$verbose='true'">
            <xsl:message>.... ... generate model
              <xsl:value-of select="$thisClass"/>
              <xsl:value-of select="$suffix"/>(
              <xsl:value-of select="$type"/>)</xsl:message>
          </xsl:if>
          <define xmlns="http://relaxng.org/ns/structure/1.0" name="{$localprefix}{$thisClass}{$suffix}">
            <xsl:choose>
              <xsl:when test="$type='sequence'">
                <xsl:for-each select="key('CLASSMEMBERS',$thisClass)">
                  <xsl:apply-templates select="." mode="classmember">
                    <xsl:with-param name="theClass" select="$thisClass"/>
                    <xsl:with-param name="suffix" select="$type"/>
                  </xsl:apply-templates>
                </xsl:for-each>
              </xsl:when>
              <xsl:when test="$type='sequenceOptional'">
                <xsl:for-each select="key('CLASSMEMBERS',$thisClass)">
                  <optional>
                    <xsl:apply-templates select="." mode="classmember">
                      <xsl:with-param name="theClass" select="$thisClass"/>
                      <xsl:with-param name="suffix" select="$type"/>
                    </xsl:apply-templates>
                  </optional>
                </xsl:for-each>
              </xsl:when>
              <xsl:when test="$type='sequenceRepeatable'">
                <xsl:for-each select="key('CLASSMEMBERS',$thisClass)">
                  <oneOrMore>
                    <xsl:apply-templates select="." mode="classmember">
                      <xsl:with-param name="theClass" select="$thisClass"/>
                      <xsl:with-param name="suffix" select="$type"/>
                    </xsl:apply-templates>
                  </oneOrMore>
                </xsl:for-each>
              </xsl:when>
              <xsl:when test="$type='sequenceOptionalRepeatable'">
                <xsl:for-each select="key('CLASSMEMBERS',$thisClass)">
                  <zeroOrMore>
                    <xsl:apply-templates select="." mode="classmember">
                      <xsl:with-param name="suffix" select="$type"/>
                      <xsl:with-param name="theClass" select="$thisClass"/>
                    </xsl:apply-templates>
                  </zeroOrMore>
                </xsl:for-each>
              </xsl:when>
              <xsl:otherwise>
                <choice>
                  <xsl:for-each select="key('CLASSMEMBERS',$thisClass)">
                    <xsl:apply-templates select="." mode="classmember">
                      <xsl:with-param name="suffix" select="$type"/>
                      <xsl:with-param name="theClass" select="$thisClass"/>
                    </xsl:apply-templates>
                  </xsl:for-each>
                </choice>
              </xsl:otherwise>
            </xsl:choose>
          </define>
        </xsl:when>
        <xsl:otherwise>
          <define xmlns="http://relaxng.org/ns/structure/1.0" name="{$localprefix}{$thisClass}{$suffix}">
            <xsl:choose>
              <xsl:when test="$type='sequence' or     $type='sequenceOptional' or      $type='sequenceOptionalRepeatable'">
                <empty/>
              </xsl:when>
              <xsl:otherwise>
                <notAllowed/>
              </xsl:otherwise>
            </xsl:choose>
          </define>
        </xsl:otherwise>
      </xsl:choose>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template findUses
Namespace No namespace
Used by
References
Keys
Template
Parameters
QName Namespace
class No namespace
pattern No namespace
Import precedence 0
Source
<xsl:template name="findUses">
  <xsl:param name="pattern"/>
  <xsl:param name="class"/>
  <xsl:variable name="suffix">
    <xsl:choose>
      <xsl:when test="$pattern='NULL'"/>
      <xsl:otherwise>
        <xsl:text>_</xsl:text>
        <xsl:value-of select="$pattern"/>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:variable>
  <xsl:choose>
    <xsl:when test="not(ancestor::tei:schemaSpec)">x</xsl:when>
    <xsl:when test="key('REFS',concat($class,$suffix))">x</xsl:when>
    <xsl:when test="key('REFS',$class)">x</xsl:when>
    <xsl:when test="not($suffix='')"/>
    <xsl:when test="tei:classes/tei:memberOf">
      <xsl:for-each select="tei:classes/tei:memberOf">
        <xsl:for-each select="key('CLASSES',@key)">
          <xsl:call-template name="findUses">
            <xsl:with-param name="pattern"/>
            <xsl:with-param name="class" select="@ident"/>
          </xsl:call-template>
        </xsl:for-each>
      </xsl:for-each>
    </xsl:when>
  </xsl:choose>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:classSpectangleadd
Namespace No namespace
Match tei:classSpec
Mode tangleadd
Import precedence 0
Source
<xsl:template match="tei:classSpec" mode="tangleadd">
  <xsl:apply-templates mode="tangleadd"/>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:classSpec/@ident
Namespace No namespace
Match tei:classSpec/@ident
Mode #default
Import precedence 0
Source
<xsl:template match="tei:classSpec/@ident"/>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:code
Namespace No namespace
Match tei:code
Mode #default
References
Template
Import precedence 0
Source
<xsl:template match="tei:code">
  <xsl:call-template name="typewriter">
    <xsl:with-param name="text">
      <xsl:apply-templates/>
    </xsl:with-param>
  </xsl:call-template>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template text()doc
Namespace No namespace
Match text()
Mode doc
Import precedence 0
Source
<xsl:template match="text()" mode="doc">
  <xsl:value-of select="."/>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:desctangle
Namespace No namespace
Match tei:desc
Mode tangle
Import precedence 0
Source
<xsl:template match="tei:desc" mode="tangle"/>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:classSpecclassmember
Namespace No namespace
Match tei:classSpec
Mode classmember
References
Variable
Parameters
QName Namespace
suffix No namespace
Import precedence 0
Source
<xsl:template match="tei:classSpec" mode="classmember">
  <xsl:param name="suffix"/>
  <xsl:variable name="localprefix">
    <xsl:choose>
      <xsl:when test="@prefix">
        <xsl:value-of select="@prefix"/>
      </xsl:when>
      <xsl:otherwise>
        <xsl:value-of select="$generalPrefix"/>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:variable>
  <xsl:choose>
    <xsl:when test="$suffix='' or $suffix='NULL'">
      <ref xmlns="http://relaxng.org/ns/structure/1.0" name="{$localprefix}{@ident}"/>
    </xsl:when>
    <xsl:otherwise>
      <ref xmlns="http://relaxng.org/ns/structure/1.0" name="{$localprefix}{@ident}_{$suffix}"/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:elementSpecclassmember
Namespace No namespace
Match tei:elementSpec
Mode classmember
References
Variable
Parameters
QName Namespace
theClass No namespace
Import precedence 0
Source
<xsl:template match="tei:elementSpec" mode="classmember">
  <xsl:param name="theClass"/>
  <xsl:variable name="min" select="tei:classes/tei:memberOf[@key=$theClass]/@min"/>
  <xsl:variable name="max" select="tei:classes/tei:memberOf[@key=$theClass]/@max"/>
  <xsl:variable name="mini" as="xs:integer">
    <xsl:choose>
      <xsl:when test="not($min castable as xs:integer)">1</xsl:when>
      <xsl:otherwise>
        <xsl:value-of select="$min"/>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:variable>
  <xsl:variable name="elementPrefix">
    <xsl:choose>
      <xsl:when test="@prefix">
        <xsl:value-of select="@prefix"/>
      </xsl:when>
      <xsl:otherwise>
        <xsl:value-of select="$generalPrefix"/>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:variable>
  <xsl:variable name="ident" select="@ident"/>
  <xsl:for-each select="for $i in 1 to $mini return $i">
    <ref xmlns="http://relaxng.org/ns/structure/1.0" name="{$elementPrefix}{$ident}"/>
  </xsl:for-each>
  <xsl:choose>
    <xsl:when test="$max='unbounded'">
      <zeroOrMore xmlns="http://relaxng.org/ns/structure/1.0">
        <ref xmlns="http://relaxng.org/ns/structure/1.0" name="{$elementPrefix}{$ident}"/>
      </zeroOrMore>
    </xsl:when>
    <xsl:otherwise>
      <xsl:variable name="maxi" as="xs:integer">
        <xsl:choose>
          <xsl:when test="not($max castable as xs:integer)">1</xsl:when>
          <xsl:otherwise>
            <xsl:value-of select="$max"/>
          </xsl:otherwise>
        </xsl:choose>
      </xsl:variable>
      <xsl:for-each select="for $i in ($mini+1) to $maxi return $i">
        <optional xmlns="http://relaxng.org/ns/structure/1.0">
          <ref xmlns="http://relaxng.org/ns/structure/1.0" name="{$elementPrefix}{$ident}"/>
        </optional>
      </xsl:for-each>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:elementSpectangle
Namespace No namespace
Match tei:elementSpec
Mode tangle
References
Overriding
Import precedence 0
Source
<xsl:template match="tei:elementSpec" mode="tangle">
  <xsl:variable name="elementPrefix">
    <xsl:choose>
      <xsl:when test="@prefix">
        <xsl:value-of select="@prefix"/>
      </xsl:when>
      <xsl:otherwise>
        <xsl:value-of select="$generalPrefix"/>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:variable>
  <xsl:if test="$verbose='true'">
    <xsl:message>elementSpec [
      <xsl:value-of select="$elementPrefix"/>]
      <xsl:value-of select="@ident"/>
      <xsl:if test="@xml:id">:
        <xsl:value-of select="@xml:id"/>
      </xsl:if>
    </xsl:message>
  </xsl:if>
  <xsl:call-template name="schemaOut">
    <xsl:with-param name="grammar"/>
    <xsl:with-param name="content">
      <Wrapper>
        <xsl:variable name="name" select="tei:createSpecName(.)"/>
        <xsl:choose>
          <xsl:when test="tei:content/rng:notAllowed">
            <define xmlns="http://relaxng.org/ns/structure/1.0" name="{$elementPrefix}{@ident}">
              <notAllowed/>
            </define>
          </xsl:when>
          <xsl:otherwise>
            <xsl:variable name="Attributes">
              <xsl:call-template name="summarizeAttributes"/>
            </xsl:variable>
            <define xmlns="http://relaxng.org/ns/structure/1.0" name="{$elementPrefix}{@ident}">
              <element name="{$name}">
                <xsl:if test="@ns">
                  <xsl:attribute name="ns">
                    <xsl:value-of select="@ns"/>
                  </xsl:attribute>
                </xsl:if>
                <xsl:if test="not($oddmode='tei')">
                  <a:documentation>
                    <xsl:sequence select="tei:makeDescription(.,true())"/>
                  </a:documentation>
                </xsl:if>
                <xsl:choose>
                  <xsl:when test="$parameterize='true'">
                    <ref name="{$elementPrefix}{@ident}.content"/>
                    <xsl:if test="not($Attributes='')">
                      <xsl:if test="$verbose='true'">
                        <xsl:message>   refer to attributes: </xsl:message>
                      </xsl:if>
                      <ref name="{$elementPrefix}{@ident}.localattributes"/>
                    </xsl:if>
                  </xsl:when>
                  <xsl:otherwise>
                    <xsl:call-template name="defineContent"/>
                    <xsl:if test="not($Attributes='')">
                      <xsl:call-template name="defineAttributes"/>
                    </xsl:if>
                  </xsl:otherwise>
                </xsl:choose>
              </element>
            </define>
            <xsl:if test="$parameterize='true'">
              <define xmlns="http://relaxng.org/ns/structure/1.0" name="{$elementPrefix}{@ident}.content">
                <xsl:call-template name="defineContent"/>
              </define>
              <xsl:if test="not($Attributes='')">
                <define xmlns="http://relaxng.org/ns/structure/1.0" name="{$elementPrefix}{@ident}.localattributes">
                  <xsl:call-template name="defineAttributes"/>
                </define>
              </xsl:if>
              <xsl:apply-templates mode="tangleModel" select="tei:classes/tei:memberOf"/>
            </xsl:if>
          </xsl:otherwise>
        </xsl:choose>
      </Wrapper>
    </xsl:with-param>
  </xsl:call-template>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template summarizeAttributes
Namespace No namespace
Used by
References
Key
Import precedence 0
Source
<xsl:template name="summarizeAttributes">
  <xsl:for-each select=".//tei:attDef">x</xsl:for-each>
  <xsl:for-each select=".//tei:attRef">x</xsl:for-each>
  <xsl:for-each select="tei:classes/tei:memberOf">
    <xsl:for-each select="key('CLASSES',@key)">
      <xsl:if test="@type='atts'">x</xsl:if>
    </xsl:for-each>
  </xsl:for-each>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template defineAttributes
Namespace No namespace
Used by
References
Variables
Parameters
Key
Import precedence 0
Source
<xsl:template name="defineAttributes">
  <xsl:variable name="name">
    <xsl:choose>
      <xsl:when test="@prefix">
        <xsl:value-of select="@prefix"/>
      </xsl:when>
      <xsl:otherwise>
        <xsl:value-of select="$generalPrefix"/>
      </xsl:otherwise>
    </xsl:choose>
    <xsl:value-of select="@ident"/>
  </xsl:variable>
  <xsl:if test="$verbose='true'">
    <xsl:message>now define attributes for
      <xsl:value-of select="@ident"/>(parameterize=
      <xsl:value-of select="$parameterize"/>)</xsl:message>
  </xsl:if>
  <xsl:if test="$parameterize='true'">
    <xsl:if test="$autoGlobal='true'">
      <ref xmlns="http://relaxng.org/ns/structure/1.0" name="att.global.attributes"/>
    </xsl:if>
    <xsl:for-each select="tei:classes/tei:memberOf">
      <xsl:for-each select="key('CLASSES',@key)">
        <xsl:if test="@type='atts'">
          <ref xmlns="http://relaxng.org/ns/structure/1.0">
            <xsl:attribute name="name">
              <xsl:choose>
                <xsl:when test="@prefix">
                  <xsl:value-of select="@prefix"/>
                </xsl:when>
                <xsl:otherwise>
                  <xsl:value-of select="$generalPrefix"/>
                </xsl:otherwise>
              </xsl:choose>
              <xsl:value-of select="@ident"/>
              <xsl:text>.attributes</xsl:text>
            </xsl:attribute>
          </ref>
        </xsl:if>
      </xsl:for-each>
    </xsl:for-each>
  </xsl:if>
  <xsl:apply-templates mode="tangle" select="tei:attList">
    <xsl:with-param name="element">
      <xsl:value-of select="$name"/>
    </xsl:with-param>
  </xsl:apply-templates>
  <!-- place holder to make sure something gets into the
	 pattern -->
  <empty xmlns="http://relaxng.org/ns/structure/1.0"/>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template defineContent
Namespace No namespace
Used by
References
Import precedence 0
Source
<xsl:template name="defineContent">
  <xsl:variable name="Contents">
    <TEMPTREE>
      <xsl:choose>
        <xsl:when test="tei:valList[@type='closed' and @repeatable='true']">
          <list xmlns="http://relaxng.org/ns/structure/1.0">
            <oneOrMore>
              <choice>
                <xsl:call-template name="valListChildren"/>
              </choice>
            </oneOrMore>
          </list>
        </xsl:when>
        <xsl:when test="tei:valList[@type='closed']">
          <xsl:call-template name="valListChildren"/>
        </xsl:when>
        <xsl:when test="tei:content/*">
          <xsl:apply-templates select="tei:content/*|tei:content/processing-instruction()" mode="tangle"/>
        </xsl:when>
        <xsl:when test="tei:content/processing-instruction()">
          <xsl:apply-templates select="tei:content/processing-instruction()" mode="tangle"/>
        </xsl:when>
      </xsl:choose>
    </TEMPTREE>
  </xsl:variable>
  <xsl:choose>
    <xsl:when test="count($Contents/TEMPTREE/*)=0">
      <empty xmlns="http://relaxng.org/ns/structure/1.0"/>
    </xsl:when>
    <xsl:otherwise>
      <xsl:for-each select="$Contents/TEMPTREE">
        <xsl:apply-templates mode="justcopy"/>
      </xsl:for-each>
    </xsl:otherwise>
  </xsl:choose>
  <xsl:call-template name="schematronInContent"/>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template valListChildren
Namespace No namespace
Used by
References
Import precedence 0
Source
<xsl:template name="valListChildren">
  <choice xmlns="http://relaxng.org/ns/structure/1.0">
    <xsl:for-each select="tei:valList/tei:valItem">
      <value>
        <xsl:value-of select="tei:createSpecName(.)"/>
      </value>
      <xsl:if test="not($oddmode='tei')">
        <a:documentation>
          <xsl:sequence select="tei:makeDescription(.,true())"/>
        </a:documentation>
      </xsl:if>
    </xsl:for-each>
  </choice>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:elementSpec/@ident
Namespace No namespace
Match tei:elementSpec/@ident
Mode #default
Import precedence 0
Source
<xsl:template match="tei:elementSpec/@ident"/>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:elementSpec/tei:desc
Namespace No namespace
Match tei:elementSpec/tei:desc
Mode #default
Import precedence 0
Source
<xsl:template match="tei:elementSpec/tei:desc"/>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:classSpec/tei:desc
Namespace No namespace
Match tei:classSpec/tei:desc
Mode #default
Import precedence 0
Source
<xsl:template match="tei:classSpec/tei:desc"/>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:macroSpec/tei:desc
Namespace No namespace
Match tei:macroSpec/tei:desc
Mode #default
Import precedence 0
Source
<xsl:template match="tei:macroSpec/tei:desc"/>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:elementSpec/tei:gloss
Namespace No namespace
Match tei:elementSpec/tei:gloss
Mode #default
Import precedence 0
Source
<xsl:template match="tei:elementSpec/tei:gloss"/>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:classSpec/tei:gloss
Namespace No namespace
Match tei:classSpec/tei:gloss
Mode #default
Import precedence 0
Source
<xsl:template match="tei:classSpec/tei:gloss"/>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:macroSpec/tei:gloss
Namespace No namespace
Match tei:macroSpec/tei:gloss
Mode #default
Import precedence 0
Source
<xsl:template match="tei:macroSpec/tei:gloss"/>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:index
Namespace No namespace
Match tei:index
Mode #default
References
Template
Import precedence 0
Source
<xsl:template match="tei:index">
  <xsl:call-template name="makeAnchor">
    <xsl:with-param name="name">IDX-
      <xsl:number level="any"/>
    </xsl:with-param>
  </xsl:call-template>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:macroSpectangle
Namespace No namespace
Match tei:macroSpec
Mode tangle
References
Variables
Templates
Parameter
Overriding
Parameters
QName Namespace
filename No namespace
Import precedence 0
Source
<xsl:template match="tei:macroSpec" mode="tangle">
  <xsl:param name="filename"/>
  <xsl:variable name="macroPrefix">
    <xsl:choose>
      <xsl:when test="@prefix">
        <xsl:value-of select="@prefix"/>
      </xsl:when>
      <xsl:otherwise>
        <xsl:value-of select="$generalPrefix"/>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:variable>
  <xsl:variable name="entityContent">
    <TEMPTREE>
      <xsl:choose>
        <xsl:when test="tei:valList[@type='closed']">
          <xsl:call-template name="valListChildren"/>
        </xsl:when>
        <xsl:when test="tei:content/rng:group/rng:ref">
          <xsl:apply-templates select="tei:content/*|tei:content/processing-instruction()"/>
        </xsl:when>
        <xsl:when test="tei:content/rng:group">
          <choice xmlns="http://relaxng.org/ns/structure/1.0">
            <xsl:apply-templates select="tei:content/rng:group/*"/>
          </choice>
        </xsl:when>
        <xsl:when test="tei:content/*">
          <xsl:apply-templates select="tei:content/*"/>
        </xsl:when>
        <xsl:when test="tei:content/processing-instruction()">
          <xsl:apply-templates select="tei:content/processing-instruction()"/>
        </xsl:when>
      </xsl:choose>
    </TEMPTREE>
  </xsl:variable>
  <xsl:variable name="entityCount">
    <xsl:for-each select="$entityContent/TEMPTREE">
      <xsl:value-of select="count(rng:*|processing-instruction())"/>
    </xsl:for-each>
  </xsl:variable>
  <xsl:choose>
    <xsl:when test="starts-with($entityContent,"'")">
      <xsl:if test="$verbose='true'">
        <xsl:message>Omit
          <xsl:value-of select="$entityContent"/>for
          <xsl:value-of select="@ident"/>
        </xsl:message>
      </xsl:if>
    </xsl:when>
    <xsl:when test="$entityCount = 0 and starts-with($entityContent,"-")">
      <xsl:if test="$verbose='true'">
        <xsl:message>Omit
          <xsl:value-of select="$entityContent"/>for
          <xsl:value-of select="@ident"/>
        </xsl:message>
      </xsl:if>
    </xsl:when>
    <xsl:otherwise>
      <xsl:if test="$verbose='true'">
        <xsl:message>macroSpec
          <xsl:value-of select="@ident"/>
        </xsl:message>
      </xsl:if>
      <xsl:call-template name="schemaOut">
        <xsl:with-param name="grammar">true</xsl:with-param>
        <xsl:with-param name="content">
          <Wrapper>
            <define xmlns="http://relaxng.org/ns/structure/1.0" name="{$macroPrefix}{@ident}">
              <xsl:if test="$parameterize='true'">
                <xsl:if test="starts-with(@ident,'macro.component')     or @predeclare='true'">
                  <xsl:attribute name="combine">choice</xsl:attribute>
                </xsl:if>
              </xsl:if>
              <xsl:choose>
                <xsl:when test="starts-with(@ident,'type')">
                  <xsl:apply-templates mode="justcopy" select="$entityContent/TEMPTREE/node()"/>
                </xsl:when>
                <xsl:when test="$entityCount=0">
                  <choice>
                    <empty/>
                  </choice>
                </xsl:when>
                <xsl:when test="$entityCount=1">
                  <xsl:apply-templates mode="justcopy" select="$entityContent/TEMPTREE/node()"/>
                </xsl:when>
                <xsl:when test="tei:content/rng:text|tei:content/rng:ref">
                  <choice>
                    <xsl:apply-templates mode="justcopy" select="$entityContent/TEMPTREE/node()"/>
                  </choice>
                </xsl:when>
                <xsl:otherwise>
                  <xsl:apply-templates mode="justcopy" select="$entityContent/TEMPTREE/node()"/>
                </xsl:otherwise>
              </xsl:choose>
            </define>
            <xsl:apply-templates select="tei:constraintSpec"/>
          </Wrapper>
        </xsl:with-param>
      </xsl:call-template>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:macroSpec/@ident
Namespace No namespace
Match tei:macroSpec/@ident
Mode #default
Import precedence 0
Source
<xsl:template match="tei:macroSpec/@ident"/>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:macroSpec/content/rng:*
Namespace No namespace
Match tei:macroSpec/content/rng:*
Mode #default
Import precedence 0
Source
<xsl:template match="tei:macroSpec/content/rng:*"/>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:memberOftangleModel
Namespace No namespace
Match tei:memberOf
Mode tangleModel
Import precedence 0
Source
<xsl:template match="tei:memberOf" mode="tangleModel">
  <!--
    <xsl:variable name="owner">
      <xsl:value-of
        select="ancestor::tei:elementSpec/@ident|ancestor::tei:classSpec/@ident"
      />
    </xsl:variable>
    <xsl:for-each select="key('IDENTS',@key)">
      <xsl:if test="@type='model'">
        <define combine="choice" name="{@ident}"
          xmlns="http://relaxng.org/ns/structure/1.0">
          <ref name="{$generalPrefix}{$owner}"
            xmlns="http://relaxng.org/ns/structure/1.0"/>
        </define>
      </xsl:if>
    </xsl:for-each>
-->
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:moduleReftangle
Namespace No namespace
Match tei:moduleRef
Mode tangle
References
Parameters
Template
Variables
Import precedence 0
Source
<xsl:template match="tei:moduleRef" mode="tangle">
  <!-- save a reference to myself so I can access my attrs and -->
  <!-- generated node ID later -->
  <xsl:variable name="me-the-moduleRef" select="."/>
  <xsl:variable name="This" select="@key"/>
  <xsl:if test="$verbose='true'">
    <xsl:message>.... import module [
      <xsl:value-of select="$This"/>
      <xsl:value-of select="@url"/>]</xsl:message>
  </xsl:if>
  <xsl:call-template name="schemaOut">
    <xsl:with-param name="grammar">true</xsl:with-param>
    <xsl:with-param name="content">
      <Wrapper>
        <xsl:choose>
          <xsl:when test="@url and $parameterize='true'">
            <include xmlns="http://relaxng.org/ns/structure/1.0" href="{@url}">
              <xsl:apply-templates mode="justcopy" select="tei:content/*"/>
            </include>
          </xsl:when>
          <xsl:when test="@url and $parameterize='false'">
            <xsl:comment>Start of import of <xsl:value-of select="@url"/>
            </xsl:comment>
            <div xmlns="http://relaxng.org/ns/structure/1.0">
              <xsl:for-each select="doc(resolve-uri(@url,$BASE))/rng:grammar">
                <!-- the "expandRNG" processing changed 2011-08-25 by Syd Bauman: -->
                <!-- added a 'prefix' parameter which value is prefixed to pattern -->
                <!-- names in the included schema. This prevents collisions in the -->
                <!-- output RNG. -->
                <xsl:apply-templates mode="expandRNG" select="@*|node()">
                  <xsl:with-param name="prefix">
                    <xsl:if test="$me-the-moduleRef/@prefix">
                      <xsl:value-of select="$me-the-moduleRef/@prefix"/>
                    </xsl:if>
                  </xsl:with-param>
                </xsl:apply-templates>
              </xsl:for-each>
              <xsl:apply-templates mode="justcopy" select="tei:content/*"/>
            </div>
            <xsl:comment>End of import of <xsl:value-of select="@url"/>
            </xsl:comment>
          </xsl:when>
          <xsl:otherwise>
            <include xmlns="http://relaxng.org/ns/structure/1.0" href="{$schemaBaseURL}{$This}.rng">
              <xsl:attribute name="ns">
                <xsl:choose>
                  <xsl:when test="ancestor::tei:schemaSpec/@ns">
                    <xsl:value-of select="ancestor::tei:schemaSpec/@ns"/>
                  </xsl:when>
                  <xsl:otherwise>http://www.tei-c.org/ns/1.0</xsl:otherwise>
                </xsl:choose>
              </xsl:attribute>
              <xsl:for-each select="../tei:*[@module=$This and not(@mode='add')]">
                <xsl:apply-templates mode="tangle" select="."/>
              </xsl:for-each>
            </include>
          </xsl:otherwise>
        </xsl:choose>
      </Wrapper>
    </xsl:with-param>
  </xsl:call-template>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template @*|text()|comment()|processing-instructionexpandRNG
Documentation

Description

 begin expand RELAX NG section 
Namespace No namespace
Match @*|text()|comment()|processing-instruction
Mode expandRNG
Import precedence 0
Source
<xsl:template match="@*|text()|comment()|processing-instruction" mode="expandRNG">
  <xsl:copy-of select="."/>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template rng:startexpandRNG
Namespace No namespace
Match rng:start
Mode expandRNG
Import precedence 0
Source
<xsl:template match="rng:start" mode="expandRNG"/>
Stylesheet location ../../../odds/teiodds.xsl
Template rng:includeexpandRNG
Namespace No namespace
Match rng:include
Mode expandRNG
References
Parameter
Parameters
QName Namespace
prefix No namespace
Import precedence 0
Source
<xsl:template match="rng:include" mode="expandRNG">
  <xsl:param name="prefix"/>
  <xsl:if test="$verbose='true'">
    <xsl:message>.... import
      <xsl:value-of select="@href"/>
    </xsl:message>
  </xsl:if>
  <xsl:comment>Start of import of
    <xsl:value-of select="@href"/>
  </xsl:comment>
  <div xmlns="http://relaxng.org/ns/structure/1.0">
    <xsl:for-each select="doc(resolve-uri(@href,base-uri(/)))/rng:grammar">
      <xsl:apply-templates mode="expandRNG" select="@*|node()">
        <xsl:with-param name="prefix" select="$prefix"/>
      </xsl:apply-templates>
    </xsl:for-each>
  </div>
  <xsl:apply-templates mode="expandRNG" select="node()"/>
  <xsl:comment>End of import of
    <xsl:value-of select="@href"/>
  </xsl:comment>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template rng:define | rng:refexpandRNG
Namespace No namespace
Match rng:define | rng:ref
Mode expandRNG
References
Parameter
Parameters
QName Namespace
prefix No namespace
Import precedence 0
Source
<xsl:template match="rng:define | rng:ref" mode="expandRNG">
  <xsl:param name="prefix"/>
  <xsl:if test="$verbose='true'">
    <xsl:message>expanding rng:
      <xsl:value-of select="local-name(.)"/>name=
      <xsl:value-of select="@name"/>, giving it a prefix of '
      <xsl:value-of select="$prefix"/>'.</xsl:message>
  </xsl:if>
  <!-- generate a copy of this <define> or <ref> -->
  <xsl:copy>
    <!-- copy over all attributes (including @name) -->
    <xsl:apply-templates select="@*" mode="expandRNG"/>
    <xsl:if test="@name">
      <!-- then replace the copied @name with our own that is the same -->
      <!-- except has our prefix in the value -->
      <xsl:attribute name="name" select="concat( $prefix, @name )"/>
    </xsl:if>
    <!-- then copy over any content -->
    <xsl:apply-templates select="node()" mode="expandRNG">
      <xsl:with-param name="prefix" select="$prefix"/>
    </xsl:apply-templates>
  </xsl:copy>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template *expandRNG
Namespace No namespace
Match *
Mode expandRNG
Parameters
QName Namespace
prefix No namespace
Import precedence 0
Source
<xsl:template match="*" mode="expandRNG">
  <xsl:param name="prefix">erng_</xsl:param>
  <xsl:copy>
    <xsl:apply-templates mode="expandRNG" select="@*|node()">
      <xsl:with-param name="prefix" select="$prefix"/>
    </xsl:apply-templates>
  </xsl:copy>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:remarkstangle
Documentation

Description

 end expand RELAX NG section 
Namespace No namespace
Match tei:remarks
Mode tangle
Import precedence 0
Source
<xsl:template match="tei:remarks" mode="tangle"/>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:specGrpok
Namespace No namespace
Match tei:specGrp
Mode ok
References
Parameter
Template
Parameters
QName Namespace
filename No namespace
Import precedence 0
Source
<xsl:template match="tei:specGrp" mode="ok">
  <xsl:param name="filename"/>
  <xsl:if test="$verbose='true'">
    <xsl:message>processing specGrp
      <xsl:value-of select="@xml:id"/>
    </xsl:message>
  </xsl:if>
  <xsl:call-template name="processSchemaFragment">
    <xsl:with-param name="filename" select="$filename"/>
  </xsl:call-template>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:tag
Namespace No namespace
Match tei:tag
Mode #default
References
Template
Import precedence 0
Source
<xsl:template match="tei:tag">
  <xsl:call-template name="typewriter">
    <xsl:with-param name="text">
      <xsl:text><</xsl:text>
      <xsl:apply-templates/>
      <xsl:text>></xsl:text>
    </xsl:with-param>
  </xsl:call-template>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template compositeNumber
Namespace No namespace
Import precedence 0
Source
<xsl:template name="compositeNumber">
  <xsl:choose>
    <xsl:when test="ancestor::tei:div1">
      <xsl:for-each select="ancestor::tei:div1">
        <xsl:number/>
      </xsl:for-each>
      <xsl:text>.</xsl:text>
      <xsl:number from="tei:div1" level="any"/>
    </xsl:when>
    <xsl:otherwise>
      <xsl:for-each select="ancestor::tei:div[1]">
        <xsl:number count="tei:div" from="tei:text" level="multiple"/>
      </xsl:for-each>
      <xsl:text>.</xsl:text>
      <xsl:number from="tei:div"/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:pcopyrighttext
Namespace No namespace
Match tei:p
Mode copyrighttext
Import precedence 0
Source
<xsl:template match="tei:p" mode="copyrighttext">
  <xsl:text>
</xsl:text>
  <xsl:apply-templates/>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:listcopyrighttext
Namespace No namespace
Match tei:list
Mode copyrighttext
Import precedence 0
Source
<xsl:template match="tei:list" mode="copyrighttext">
  <xsl:text>
</xsl:text>
  <xsl:apply-templates/>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:itemcopyrighttext
Namespace No namespace
Match tei:item
Mode copyrighttext
Import precedence 0
Source
<xsl:template match="tei:item" mode="copyrighttext">
  <xsl:text>
 *</xsl:text>
  <xsl:apply-templates/>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template attributeData
Namespace No namespace
Used by
References
Import precedence 0
Source
<xsl:template name="attributeData">
  <xsl:choose>
    <xsl:when test="tei:valList[@type='closed']">
      <choice xmlns="http://relaxng.org/ns/structure/1.0">
        <xsl:for-each select="tei:valList/tei:valItem">
          <value>
            <xsl:choose>
              <xsl:when test="tei:altIdent=@ident">
                <xsl:value-of select="@ident"/>
              </xsl:when>
              <xsl:when test="tei:altIdent">
                <xsl:value-of select="normalize-space(tei:altIdent)"/>
              </xsl:when>
              <xsl:otherwise>
                <xsl:value-of select="@ident"/>
              </xsl:otherwise>
            </xsl:choose>
          </value>
          <xsl:if test="not($oddmode='tei')">
            <a:documentation>
              <xsl:sequence select="tei:makeDescription(.,true())"/>
            </a:documentation>
          </xsl:if>
        </xsl:for-each>
      </choice>
    </xsl:when>
    <xsl:when test="tei:valList[@type='semi']">
      <choice xmlns="http://relaxng.org/ns/structure/1.0">
        <xsl:for-each select="tei:valList/tei:valItem">
          <value>
            <xsl:choose>
              <xsl:when test="tei:altIdent=@ident">
                <xsl:value-of select="@ident"/>
              </xsl:when>
              <xsl:when test="tei:altIdent">
                <xsl:value-of select="normalize-space(tei:altIdent)"/>
              </xsl:when>
              <xsl:otherwise>
                <xsl:value-of select="@ident"/>
              </xsl:otherwise>
            </xsl:choose>
          </value>
          <xsl:if test="not($oddmode='tei')">
            <a:documentation>
              <xsl:sequence select="tei:makeDescription(.,true())"/>
            </a:documentation>
          </xsl:if>
        </xsl:for-each>
        <xsl:choose>
          <xsl:when test="tei:datatype/rng:ref[@name='data.enumerated']">
            <data type="Name"/>
          </xsl:when>
          <xsl:when test="not(tei:datatype)">
            <data type="Name"/>
          </xsl:when>
          <xsl:otherwise>
            <xsl:apply-templates select="tei:datatype/rng:*"/>
          </xsl:otherwise>
        </xsl:choose>
      </choice>
    </xsl:when>
    <xsl:when test="tei:datatype/*">
      <xsl:apply-templates select="tei:datatype/*"/>
    </xsl:when>
    <xsl:otherwise>
      <text xmlns="http://relaxng.org/ns/structure/1.0"/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template makeSimpleAttribute
Namespace No namespace
Used by
Template
References
Import precedence 0
Source
<xsl:template name="makeSimpleAttribute">
  <xsl:variable name="name">
    <xsl:choose>
      <xsl:when test="tei:altIdent=@ident">
        <xsl:value-of select="@ident"/>
      </xsl:when>
      <xsl:when test="tei:altIdent">
        <xsl:value-of select="normalize-space(tei:altIdent)"/>
      </xsl:when>
      <xsl:otherwise>
        <xsl:if test="@ns='http://www.w3.org/XML/1998/namespace'">xml:</xsl:if>
        <xsl:value-of select="@ident"/>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:variable>
  <attribute xmlns="http://relaxng.org/ns/structure/1.0" name="{$name}">
    <xsl:if test="@ns">
      <xsl:copy-of select="@ns"/>
    </xsl:if>
    <xsl:if test="tei:defaultVal and not(tei:defaultVal='')">
      <xsl:attribute name="a:defaultValue">
        <xsl:value-of select="normalize-space(tei:defaultVal)"/>
      </xsl:attribute>
    </xsl:if>
    <xsl:if test="not($oddmode='tei')">
      <a:documentation>
        <xsl:sequence select="tei:makeDescription(.,true())"/>
      </a:documentation>
    </xsl:if>
    <!-- ************************************ -->
    <!-- Ascertain minOccurs= and maxOccurs=. -->
    <!-- ************************************ -->
    <!-- get the value of minOccurs=, defaulting to "1" -->
    <xsl:variable name="minOccurs">
      <xsl:choose>
        <xsl:when test="tei:datatype/@minOccurs">
          <xsl:value-of select="tei:datatype/@minOccurs"/>
        </xsl:when>
        <xsl:otherwise>1</xsl:otherwise>
      </xsl:choose>
    </xsl:variable>
    <!-- get the value of maxOccurs=, defaulting to "1" -->
    <xsl:variable name="maxOccurs">
      <xsl:choose>
        <xsl:when test="tei:datatype/@maxOccurs">
          <xsl:value-of select="tei:datatype/@maxOccurs"/>
        </xsl:when>
        <xsl:otherwise>1</xsl:otherwise>
      </xsl:choose>
    </xsl:variable>
    <!-- We now have two _string_ representations of the attrs, but -->
    <!-- we need integers. So cast them, converting "unbounded" to  -->
    <!-- a special flag value (-1): -->
    <xsl:variable name="min" select="xs:integer( $minOccurs )"/>
    <xsl:variable name="max">
      <xsl:choose>
        <xsl:when test="$maxOccurs='unbounded'">
          <xsl:value-of select="xs:integer( -1 )"/>
        </xsl:when>
        <xsl:otherwise>
          <xsl:value-of select="xs:integer( $maxOccurs )"/>
        </xsl:otherwise>
      </xsl:choose>
    </xsl:variable>
    <xsl:choose>
      <xsl:when test="tei:datatype/rng:text  or  not( tei:datatype ) or  $max=1">
        <!-- If there is only going to be one output RELAX NG node   -->
        <!-- in the attribute definition, then we don't need to      -->
        <!-- bother with the complex min & max code below (in the    -->
        <!-- <xsl:otherwise>). Although it would generate the right  -->
        <!-- number of RELAX NG constructs, it wraps them in a       -->
        <!-- <list>, which makes no sense in some cases, and will    -->
        <!-- cause an error if the RELAX NG node inside the list is  -->
        <!-- <text>.                                                 -->
        <!-- Cases we handle here:                                   -->
        <!-- * my <datatype> child has an <rng:text> child: only 1   -->
        <!--   output node (<rng:text>), which can't be wrapped in   -->
        <!--   a <list>                                              -->
        <!-- * I don't have a <datatype> child: the 'attributeData'  -->
        <!--   template will spit out a single <rng:text> node (see  -->
        <!--   the outermost <xsl:otherwise> of that template)       -->
        <!-- * @maxOccurs=1: whatever ends up being generated, there -->
        <!--   will only be 1 of them, so no need for a <list>       -->
        <xsl:call-template name="attributeData"/>
      </xsl:when>
      <xsl:otherwise>
        <!-- Note that in the (erroneous) event   -->
        <!-- that minOccurs= is greater than      -->
        <!-- maxOccurs=, the latter is simply     -->
        <!-- ignored.                             -->
        <!-- Hack(?): -->
        <!-- The 'attributeData' template needs to operate from this node; -->
        <!-- However, once we've used for-each to "loop", we've lost the -->
        <!-- current node (it has become one of the integers in the select= -->
        <!-- range). So here we remember the current node, and re-set it -->
        <!-- before calling 'attributeData'. Perhaps it would be better to -->
        <!-- send it as a parameter to 'attributeData' and have it set the -->
        <!-- current node, but since I didn't write 'attributeData', I've -->
        <!-- chosen this method so I don't have to muck with it. -Syd -->
        <xsl:variable name="thisNode" select="."/>
        <list>
          <xsl:choose>
            <xsl:when test="$max= -1 and $min=1">
              <oneOrMore>
                <xsl:for-each select="$thisNode">
                  <xsl:call-template name="attributeData"/>
                </xsl:for-each>
              </oneOrMore>
            </xsl:when>
            <xsl:otherwise>
              <xsl:if test="$min > 0">
                <xsl:for-each select="1 to $min">
                  <xsl:for-each select="$thisNode">
                    <xsl:call-template name="attributeData"/>
                  </xsl:for-each>
                </xsl:for-each>
              </xsl:if>
              <xsl:choose>
                <xsl:when test="$max= -1">
                  <!-- i.e., unbounded -->
                  <zeroOrMore>
                    <xsl:for-each select="$thisNode">
                      <xsl:call-template name="attributeData"/>
                    </xsl:for-each>
                  </zeroOrMore>
                </xsl:when>
                <xsl:otherwise>
                  <xsl:for-each select="xs:integer( $min + 1 ) to $max">
                    <optional>
                      <xsl:for-each select="$thisNode">
                        <xsl:call-template name="attributeData"/>
                      </xsl:for-each>
                    </optional>
                  </xsl:for-each>
                </xsl:otherwise>
              </xsl:choose>
            </xsl:otherwise>
          </xsl:choose>
        </list>
      </xsl:otherwise>
    </xsl:choose>
  </attribute>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template makeAnAttribute
Namespace No namespace
Used by
Template
References
Import precedence 0
Source
<xsl:template name="makeAnAttribute">
  <xsl:choose>
    <xsl:when test="@usage='req'">
      <xsl:call-template name="makeSimpleAttribute"/>
    </xsl:when>
    <!--
      <xsl:when test="parent::tei:attList[@org='choice']">
        <xsl:call-template name="makeSimpleAttribute"/>
      </xsl:when>
-->
    <xsl:otherwise>
      <optional xmlns="http://relaxng.org/ns/structure/1.0">
        <xsl:call-template name="makeSimpleAttribute"/>
      </optional>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template generateClassParents
Namespace No namespace
References
Key
Template
Import precedence 0
Source
<xsl:template name="generateClassParents">
  <xsl:choose>
    <xsl:when test="not(tei:classes)">(none)</xsl:when>
    <xsl:otherwise>
      <xsl:for-each select="tei:classes/tei:memberOf">
        <xsl:if test="preceding-sibling::tei:memberOf">
          <xsl:text>: </xsl:text>
        </xsl:if>
        <xsl:choose>
          <xsl:when test="key('CLASSES',@key)">
            <xsl:for-each select="key('CLASSES',@key)">
              <xsl:call-template name="linkTogether">
                <xsl:with-param name="name" select="@ident"/>
              </xsl:call-template>
            </xsl:for-each>
          </xsl:when>
          <xsl:otherwise>
            <xsl:value-of select="@key"/>
          </xsl:otherwise>
        </xsl:choose>
      </xsl:for-each>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template linkStyle
Namespace No namespace
Overriding
Template
Import precedence 0
Source
<xsl:template name="linkStyle"/>
Stylesheet location ../../../odds/teiodds.xsl
Template getSpecURL
Namespace No namespace
Used by
Template
Parameters
QName Namespace
name No namespace
type No namespace
Import precedence 0
Source
<xsl:template name="getSpecURL">
  <xsl:param name="name"/>
  <xsl:param name="type"/>
  <xsl:choose>
    <xsl:when test="$type='macro'">
      <xsl:for-each select="id('REFENT')">
        <xsl:apply-templates mode="generateLink" select="."/>
      </xsl:for-each>
    </xsl:when>
    <xsl:when test="$type='element'">
      <xsl:for-each select="id('REFTAG')">
        <xsl:apply-templates mode="generateLink" select="."/>
      </xsl:for-each>
    </xsl:when>
    <xsl:when test="$type='class'">
      <xsl:for-each select="id('REFCLA')">
        <xsl:apply-templates mode="generateLink" select="."/>
      </xsl:for-each>
    </xsl:when>
  </xsl:choose>
  <xsl:text>#</xsl:text>
  <xsl:value-of select="$name"/>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template linkTogether
Namespace No namespace
Used by
References
Keys
Parameters
Template
Parameters
QName Namespace
class No namespace
name No namespace
reftext No namespace
Import precedence 0
Source
<xsl:template name="linkTogether">
  <xsl:param name="name"/>
  <xsl:param name="reftext"/>
  <xsl:param name="class">link_odd</xsl:param>
  <xsl:variable name="partialname">
    <xsl:value-of select="replace($name,'_(alternation|sequenceOptionalRepeatable|sequenceOptional|sequenceRepeatable|sequence)','')"/>
  </xsl:variable>
  <xsl:variable name="link">
    <xsl:choose>
      <xsl:when test="$reftext=''">
        <xsl:value-of select="$name"/>
      </xsl:when>
      <xsl:otherwise>
        <xsl:value-of select="$reftext"/>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:variable>
  <xsl:variable name="glossAndDesc">
    <!-- This variable will hold the string value of the <gloss> and -->
    <!-- <desc> of the constrcut we are currently dealing with, in   -->
    <!-- the language we are currently dealing with, so as to put it -->
    <!-- on the title= attribute when we output its name in an <a>.  -->
    <xsl:choose>
      <xsl:when test="starts-with( $partialname, 'model.')">
        <xsl:apply-templates select="key('CLASSES', $partialname)" mode="glossDesc"/>
      </xsl:when>
      <xsl:when test="starts-with( $partialname, 'att.')">
        <xsl:apply-templates select="key('CLASSES', replace( $partialname, '\.attributes$',''))" mode="glossDesc"/>
      </xsl:when>
      <xsl:otherwise>
        <xsl:apply-templates select="key('ELEMENTS', $partialname )" mode="glossDesc"/>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:variable>
  <xsl:choose>
    <xsl:when test="not(key('IDENTS',$partialname))">
      <xsl:value-of select="$link"/>
    </xsl:when>
    <xsl:when test="$oddmode='html' and number($splitLevel)=-1">
      <a xmlns="http://www.w3.org/1999/xhtml" class="{$class}" href="#{$partialname}">
        <xsl:value-of select="$link"/>
      </a>
    </xsl:when>
    <xsl:when test="$oddmode='html' and $STDOUT='true'">
      <a xmlns="http://www.w3.org/1999/xhtml" class="{$class}">
        <xsl:attribute name="href">
          <xsl:for-each select="key('IDENTS',$partialname)">
            <xsl:call-template name="getSpecURL">
              <xsl:with-param name="name">
                <xsl:value-of select="$partialname"/>
              </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:attribute>
        <xsl:value-of select="$link"/>
      </a>
    </xsl:when>
    <xsl:when test="$oddmode='html'">
      <a xmlns="http://www.w3.org/1999/xhtml" class="{$class}" title="{$glossAndDesc}" href="{concat('ref-',$partialname,'.html')}">
        <xsl:value-of select="$link"/>
      </a>
    </xsl:when>
    <xsl:when test="$oddmode='pdf'">
      <fo:inline>
        <xsl:value-of select="$link"/>
      </fo:inline>
    </xsl:when>
    <xsl:when test="$oddmode='tei'">
      <tei:ref target="#{$partialname}">
        <xsl:value-of select="$link"/>
      </tei:ref>
    </xsl:when>
    <xsl:otherwise>
      <xsl:value-of select="$link"/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template processSchemaFragment
Namespace No namespace
Used by
References
Template
Parameters
QName Namespace
filename No namespace
Import precedence 0
Source
<xsl:template name="processSchemaFragment">
  <xsl:param name="filename"/>
  <xsl:variable name="secnum">
    <xsl:call-template name="sectionNumber"/>
  </xsl:variable>
  <xsl:apply-templates mode="tangle"/>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template make-ns-declaration
Namespace No namespace
Used by
Parameters
QName Namespace
is-default No namespace
prefix No namespace
uri No namespace
Import precedence 0
Source
<xsl:template name="make-ns-declaration">
  <xsl:param name="is-default"/>
  <xsl:param name="prefix"/>
  <xsl:param name="uri"/>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template inhnamespace
Namespace No namespace
Used by
Import precedence 0
Source
<xsl:template name="inhnamespace"/>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:constraintSpec/tei:desc
Namespace No namespace
Match tei:constraintSpec/tei:desc
Mode #default
Import precedence 0
Source
<xsl:template match="tei:constraintSpec/tei:desc"/>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:constraintSpec/tei:gloss
Namespace No namespace
Match tei:constraintSpec/tei:gloss
Mode #default
Import precedence 0
Source
<xsl:template match="tei:constraintSpec/tei:gloss"/>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:constraintSpec/tei:equiv
Namespace No namespace
Match tei:constraintSpec/tei:equiv
Mode #default
Import precedence 0
Source
<xsl:template match="tei:constraintSpec/tei:equiv"/>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:altIdent
Namespace No namespace
Match tei:altIdent
Mode #default
Import precedence 0
Source
<xsl:template match="tei:altIdent"/>
Stylesheet location ../../../odds/teiodds.xsl
Template a:*
Namespace No namespace
Match a:*
Mode #default
Import precedence 0
Source
<xsl:template match="a:*">
  <xsl:apply-templates mode="justcopy" select="."/>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:classSpecprocessDefaultAtts
Namespace No namespace
Match tei:classSpec
Mode processDefaultAtts
References
Parameter
Template
Variable
Import precedence 0
Source
<xsl:template match="tei:classSpec" mode="processDefaultAtts">
  <xsl:if test="$verbose='true'">
    <xsl:message>.. default attribute settings for
      <xsl:value-of select="@ident"/>
    </xsl:message>
  </xsl:if>
  <xsl:call-template name="schemaOut">
    <xsl:with-param name="grammar">true</xsl:with-param>
    <xsl:with-param name="content">
      <Wrapper>
        <xsl:variable name="c">
          <xsl:choose>
            <xsl:when test="@prefix">
              <xsl:value-of select="@prefix"/>
            </xsl:when>
            <xsl:otherwise>
              <xsl:value-of select="$generalPrefix"/>
            </xsl:otherwise>
          </xsl:choose>
          <xsl:value-of select="@ident"/>
        </xsl:variable>
        <define xmlns="http://relaxng.org/ns/structure/1.0" combine="choice" name="{$c}.attributes">
          <empty/>
        </define>
      </Wrapper>
    </xsl:with-param>
  </xsl:call-template>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:schemaSpec
Documentation

Description

Process element schemaSpec
Namespace No namespace
Match tei:schemaSpec
Mode #default
References
Overriding
Template
Import precedence 0
Source
<xsl:template match="tei:schemaSpec">
  <xsl:call-template name="processSchemaFragment"/>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template generateOutput
Namespace No namespace
Used by
References
Parameters
QName Namespace
body No namespace
method No namespace
suffix No namespace
Import precedence 0
Source
<xsl:template name="generateOutput">
  <xsl:param name="body"/>
  <xsl:param name="suffix"/>
  <xsl:param name="method">xml</xsl:param>
  <xsl:variable name="processor">
    <xsl:value-of select="system-property('xsl:vendor')"/>
  </xsl:variable>
  <xsl:choose>
    <xsl:when test="$outputDir='' or $outputDir='-'">
      <xsl:copy-of select="$body"/>
    </xsl:when>
    <xsl:otherwise>
      <xsl:result-document encoding="{$outputEncoding}" href="{$outputDir}/{@ident}{$suffix}" method="{$method}">
        <xsl:copy-of select="$body"/>
      </xsl:result-document>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template sectionNumber
Namespace No namespace
Used by
Import precedence 0
Source
<xsl:template name="sectionNumber">
  <xsl:for-each select="(ancestor::tei:div1|ancestor::tei:div2|ancestor::tei:div3|ancestor::tei:div4)[last()]">
    <xsl:for-each select="ancestor-or-self::tei:div1">
      <xsl:number from="tei:body" level="any"/>
      <xsl:text>.</xsl:text>
    </xsl:for-each>
    <xsl:number count="tei:div2|tei:div3|tei:div4" from="tei:div1" level="multiple"/>
  </xsl:for-each>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template *expandSpecs
Namespace No namespace
Match *
Mode expandSpecs
Import precedence 0
Source
<xsl:template match="*" mode="expandSpecs">
  <xsl:apply-templates mode="justcopy" select="."/>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:specGrpRefexpandSpecs
Namespace No namespace
Match tei:specGrpRef
Mode expandSpecs
References
Variable
Import precedence 0
Source
<xsl:template match="tei:specGrpRef" mode="expandSpecs">
  <xsl:choose>
    <xsl:when test="starts-with(@target,'#')">
      <xsl:for-each select="id(substring(@target,2))">
        <xsl:apply-templates mode="expandSpecs"/>
      </xsl:for-each>
    </xsl:when>
    <xsl:otherwise>
      <xsl:apply-templates select="doc(resolve-uri(@target,$BASE))" mode="expandSpecs"/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:desc/tei:list/tei:itemglossDescTitle #default
Documentation

Description

 list inside <desc> 
Namespace No namespace
Match tei:desc/tei:list/tei:item
Mode glossDescTitle #default
Import precedence 0
Source
<xsl:template match="tei:desc/tei:list/tei:item" mode="glossDescTitle #default">
  <xsl:text> * </xsl:text>
  <xsl:apply-templates/>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template makeTEIVersion
Namespace No namespace
Used by
Templates
Import precedence 0
Source
<xsl:template name="makeTEIVersion">
  <xsl:choose>
    <xsl:when test="ancestor-or-self::tei:TEI/processing-instruction()[name()='TEIVERSION']">
      <!-- JC Additions to form proper URL from version number -->
      <xsl:variable name="TEIVersion" select="ancestor-or-self::tei:TEI/processing-instruction()[name()='TEIVERSION'][1]"/>
      <xsl:variable name="TEIVersion-edition" select="substring-before($TEIVersion, ' Last')"/>
      <xsl:variable name="TEIVersion-datestring" select="concat(' Last',substring-after($TEIVersion, ' Last'))"/>
      <xsl:variable name="TEIVersionWithoutFullStop">
        <xsl:choose>
          <xsl:when test="substring($TEIVersion-edition,               string-length($TEIVersion-edition)) =               '.' and matches($TEIVersion-edition, '\d\d*\.\d\d*\.\d\d*\.')">
            <xsl:value-of select="substring($TEIVersion-edition,0,string-length($TEIVersion-edition))"/>
          </xsl:when>
          <xsl:otherwise>
            <xsl:value-of select="$TEIVersion-edition"/>
          </xsl:otherwise>
        </xsl:choose>
      </xsl:variable>
      <xsl:variable name="versionURL" select="concat('http://www.tei-c.org/Vault/P5/', $TEIVersionWithoutFullStop, '/')"/>
      <xsl:text>
TEI Edition: </xsl:text>
      <xsl:value-of select="$TEIVersion"/>
      <xsl:text>
TEI Edition Location: </xsl:text>
      <xsl:value-of select="$versionURL"/>
      <xsl:text>
</xsl:text>
    </xsl:when>
    <xsl:when test="ancestor-or-self::tei:TEI/tei:teiHeader/tei:fileDesc/tei:editionStmt/tei:edition">
      <xsl:text>
Edition: </xsl:text>
      <xsl:value-of select="ancestor-or-self::tei:TEI/tei:teiHeader/tei:fileDesc/tei:editionStmt/tei:edition"/>
      <xsl:text>
</xsl:text>
    </xsl:when>
  </xsl:choose>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:glossglossDescTitle
Documentation

Description

 process <gloss> and <desc> to make title= attribute values 
Namespace No namespace
Match tei:gloss
Mode glossDescTitle
Import precedence 0
Source
<xsl:template match="tei:gloss" mode="glossDescTitle">
  <!-- At the moment the only descendants of a <gloss> that appears in <elementSpec> or <classSpec> -->
  <!-- are 3 <gloss> and 1 <ident>, so we can get away with just taking the value, rather than -->
  <!-- applying templates. -->
  <xsl:value-of select="normalize-space(.)"/>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:descglossDescTitle
Namespace No namespace
Match tei:desc
Mode glossDescTitle
Import precedence 0
Source
<xsl:template match="tei:desc" mode="glossDescTitle">
  <!-- 
	 As of 2014-08-12, revision 12970, the only descendants of a
	 <desc> that appears in an <elementSpec> or a <classSpec> are:
           329 gi
            79 term
            68 att
            11 soCalled
             6 mentioned
             5 ident
             2 q
             2 val
             1 foreign
             1 ref
             1 title
         You might think that from here we can just <apply-templates>
         and be done with it. But if we do that, we end up with an infinite-
	 loop of called templates problem. To wit, inside the <desc> we are
	 processing there are (e.g.) <gi> elements. They get caught by a
	 template in html/html_oddprocessing.xsl, which goes about calling
	 linkTogether, which goes about applying templates (in mode glossDesc)
	 to the <elementSpec> that defines the element mentioned in the content
	 of the <gi>. That, in turn, would apply templates to the <desc> that
	 we started with.
    -->
  <xsl:apply-templates mode="#current"/>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:giglossDescTitle
Namespace No namespace
Match tei:gi
Mode glossDescTitle
Import precedence 0
Source
<xsl:template match="tei:gi" mode="glossDescTitle">
  <xsl:text><</xsl:text>
  <xsl:value-of select="normalize-space(.)"/>
  <xsl:text>></xsl:text>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:attglossDescTitle
Namespace No namespace
Match tei:att
Mode glossDescTitle
Import precedence 0
Source
<xsl:template match="tei:att" mode="glossDescTitle">
  <xsl:text>@</xsl:text>
  <xsl:value-of select="normalize-space(.)"/>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:term|tei:ref|tei:ident|tei:code|tei:foreignglossDescTitle
Namespace No namespace
Match tei:term|tei:ref|tei:ident|tei:code|tei:foreign
Mode glossDescTitle
Import precedence 0
Source
<xsl:template match="tei:term|tei:ref|tei:ident|tei:code|tei:foreign" mode="glossDescTitle">
  <xsl:value-of select="."/>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:mentioned|tei:qglossDescTitle
Namespace No namespace
Match tei:mentioned|tei:q
Mode glossDescTitle
Import precedence 0
Source
<xsl:template match="tei:mentioned|tei:q" mode="glossDescTitle">
  <xsl:text></xsl:text>
  <xsl:value-of select="normalize-space(.)"/>
  <xsl:text></xsl:text>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:valglossDescTitle
Namespace No namespace
Match tei:val
Mode glossDescTitle
Import precedence 0
Source
<xsl:template match="tei:val" mode="glossDescTitle">
  <xsl:text>"</xsl:text>
  <xsl:value-of select="normalize-space(.)"/>
  <xsl:text>"</xsl:text>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:soCalledglossDescTitle
Namespace No namespace
Match tei:soCalled
Mode glossDescTitle
Import precedence 0
Source
<xsl:template match="tei:soCalled" mode="glossDescTitle">
  <xsl:text></xsl:text>
  <xsl:value-of select="normalize-space(.)"/>
  <xsl:text></xsl:text>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:titleglossDescTitle
Namespace No namespace
Match tei:title
Mode glossDescTitle
Import precedence 0
Source
<xsl:template match="tei:title" mode="glossDescTitle">
  <xsl:text>_</xsl:text>
  <xsl:value-of select="translate( normalize-space(.), ' ', '_' )"/>
  <xsl:text>_</xsl:text>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template processSchematron
Namespace No namespace
Used by
References
Import precedence 0
Source
<xsl:template name="processSchematron">
  <xsl:choose>
    <xsl:when test="ancestor::teix:egXML"/>
    <xsl:when test="self::s:ns">
      <ns prefix="{@prefix}" uri="{@uri}" xmlns="http://www.ascc.net/xml/schematron"/>
    </xsl:when>
    <xsl:when test="(self::s:report or self::s:assert) and ancestor::tei:elementSpec">
      <pattern xmlns="http://www.ascc.net/xml/schematron">
        <xsl:attribute name="name">
          <xsl:value-of select="tei:makePatternID(.)"/>
        </xsl:attribute>
        <rule>
          <xsl:attribute name="context">
            <xsl:sequence select="tei:generate-nsprefix-schematron(.)"/>
            <xsl:choose>
              <xsl:when test="ancestor::tei:attDef">
                <xsl:value-of select="ancestor::tei:elementSpec/@ident"/>
                <xsl:text>/@</xsl:text>
                <xsl:value-of select="ancestor::tei:attDef/@ident"/>
                <xsl:text/>
              </xsl:when>
              <xsl:otherwise>
                <xsl:value-of select="ancestor::tei:elementSpec/@ident"/>
              </xsl:otherwise>
            </xsl:choose>
          </xsl:attribute>
          <xsl:apply-templates mode="justcopy" select="."/>
        </rule>
      </pattern>
    </xsl:when>
    <xsl:when test="self::s:pattern">
      <xsl:apply-templates mode="justcopy" select="."/>
    </xsl:when>
    <xsl:when test="self::s:rule">
      <pattern xmlns="http://www.ascc.net/xml/schematron">
        <xsl:attribute name="name" select="tei:makePatternID(.)"/>
        <xsl:apply-templates mode="justcopy" select="."/>
      </pattern>
    </xsl:when>
    <xsl:when test="self::sch:ns">
      <ns prefix="{@prefix}" uri="{@uri}" xmlns="http://purl.oclc.org/dsdl/schematron"/>
    </xsl:when>
    <xsl:when test="self::sch:pattern">
      <xsl:apply-templates mode="justcopy" select="."/>
    </xsl:when>
    <xsl:when test="self::sch:rule">
      <pattern xmlns="http://purl.oclc.org/dsdl/schematron">
        <xsl:attribute name="id" select="tei:makePatternID(.)"/>
        <xsl:apply-templates mode="justcopy" select="."/>
      </pattern>
    </xsl:when>
    <xsl:when test="(self::sch:report or self::sch:assert) and         ancestor::tei:elementSpec">
      <pattern xmlns="http://purl.oclc.org/dsdl/schematron">
        <xsl:attribute name="id" select="tei:makePatternID(.)"/>
        <rule>
          <xsl:attribute name="context">
            <xsl:sequence select="tei:generate-nsprefix-schematron(.)"/>
            <xsl:choose>
              <xsl:when test="ancestor::tei:attDef">
                <xsl:value-of select="ancestor::tei:elementSpec/@ident"/>
                <xsl:text>/@</xsl:text>
                <xsl:value-of select="ancestor::tei:attDef/@ident"/>
                <xsl:text/>
              </xsl:when>
              <xsl:otherwise>
                <xsl:value-of select="ancestor::tei:elementSpec/@ident"/>
              </xsl:otherwise>
            </xsl:choose>
          </xsl:attribute>
          <xsl:apply-templates mode="justcopy" select="."/>
        </rule>
      </pattern>
    </xsl:when>
    <xsl:otherwise>
      <xsl:apply-templates mode="justcopy" select="."/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template die
Namespace No namespace
Used by
Parameters
QName Namespace
message No namespace
Import precedence 0
Source
<xsl:template name="die">
  <xsl:param name="message"/>
  <xsl:message terminate="yes">
    <xsl:text>Error: odd2odd.xsl: </xsl:text>
    <xsl:value-of select="$message"/>
  </xsl:message>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template @*|text()justcopy
Namespace No namespace
Match @*|text()
Mode justcopy
Import precedence 0
Source
<xsl:template match="@*|text()" mode="justcopy">
  <xsl:copy-of select="."/>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template processing-instruction()justcopy
Namespace No namespace
Match processing-instruction()
Mode justcopy
Import precedence 0
Source
<xsl:template match="processing-instruction()" mode="justcopy">
  <xsl:copy-of select="."/>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template *justcopy
Namespace No namespace
Match *
Mode justcopy
Import precedence 0
Source
<xsl:template match="*" mode="justcopy">
  <xsl:copy>
    <xsl:apply-templates select="*|@*|processing-instruction()|text()" mode="justcopy"/>
  </xsl:copy>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template a:*justcopy
Namespace No namespace
Match a:*
Mode justcopy
Import precedence 0
Source
<xsl:template match="a:*" mode="justcopy">
  <xsl:element xmlns="http://relaxng.org/ns/compatibility/annotations/1.0" name="{name()}">
    <xsl:apply-templates select="*|@*|processing-instruction()|text()" mode="justcopy"/>
  </xsl:element>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template rng:*justcopy
Namespace No namespace
Match rng:*
Mode justcopy
Import precedence 0
Source
<xsl:template match="rng:*" mode="justcopy">
  <xsl:element xmlns="http://relaxng.org/ns/structure/1.0" name="{local-name()}">
    <xsl:apply-templates select="*|@*|processing-instruction()|text()" mode="justcopy"/>
  </xsl:element>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:sequence#default tangle
Documentation

Description

 for Pure ODD 
Namespace No namespace
Match tei:sequence
Mode #default tangle
References
Overriding
Template
Import precedence 0
Source
<xsl:template match="tei:sequence" mode="#default tangle">
  <xsl:variable name="suffix" select="tei:generateIndicators(@minOccurs,@maxOccurs)"/>
  <xsl:choose>
    <xsl:when test="@preserveOrder='false' and         string-length($suffix)=0">
      <group xmlns="http://relaxng.org/ns/structure/1.0">
        <interleave>
          <xsl:apply-templates mode="tangle"/>
        </interleave>
      </group>
    </xsl:when>
    <xsl:when test="string-length($suffix)=0">
      <group xmlns="http://relaxng.org/ns/structure/1.0">
        <xsl:apply-templates mode="tangle"/>
      </group>
    </xsl:when>
    <xsl:otherwise>
      <xsl:element name="{$suffix}" xmlns="http://relaxng.org/ns/structure/1.0">
        <group xmlns="http://relaxng.org/ns/structure/1.0">
          <xsl:apply-templates mode="tangle"/>
        </group>
      </xsl:element>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:textNode#default tangle
Namespace No namespace
Match tei:textNode
Mode #default tangle
Overriding
Template
Import precedence 0
Source
<xsl:template match="tei:textNode" mode="#default tangle">
  <text xmlns="http://relaxng.org/ns/structure/1.0"/>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:alternate#default tangle
Namespace No namespace
Match tei:alternate
Mode #default tangle
References
Overriding
Template
Import precedence 0
Source
<xsl:template match="tei:alternate" mode="#default tangle">
  <xsl:variable name="suffix" select="tei:generateIndicators(@minOccurs,@maxOccurs)"/>
  <xsl:choose>
    <xsl:when test="string-length($suffix)=0">
      <choice xmlns="http://relaxng.org/ns/structure/1.0">
        <xsl:apply-templates mode="tangle"/>
      </choice>
    </xsl:when>
    <xsl:otherwise>
      <xsl:element name="{$suffix}" xmlns="http://relaxng.org/ns/structure/1.0">
        <choice xmlns="http://relaxng.org/ns/structure/1.0">
          <xsl:apply-templates mode="tangle"/>
        </choice>
      </xsl:element>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:interleave#default tangle
Namespace No namespace
Match tei:interleave
Mode #default tangle
Overriding
Template
Import precedence 0
Source
<xsl:template match="tei:interleave" mode="#default tangle">
  <xsl:message>met an interleave</xsl:message>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:elementRef|tei:classRef|tei:macroRef#default tangle
Namespace No namespace
Match tei:elementRef|tei:classRef|tei:macroRef
Mode #default tangle
References
Overriding
Import precedence 0
Source
<xsl:template match="tei:elementRef|tei:classRef|tei:macroRef" mode="#default tangle">
  <xsl:variable name="prefixedName" select="tei:generateRefPrefix(.)"/>
  <xsl:variable name="wrapperElement" select="tei:generateIndicators(@minOccurs,@maxOccurs)"/>
  <xsl:variable name="this" select="@key"/>
  <xsl:variable name="except" select="@except"/>
  <xsl:variable name="include" select="@include"/>
  <xsl:variable name="c">
    <xsl:choose>
      <xsl:when test="not(@expand) and (@include or @except)">
        <xsl:variable name="context" select="."/>
        <xsl:for-each select="key('CLASSMEMBERS',$this)">
          <xsl:if test="key('IDENTS',@ident) and tei:includeMember(@ident,$except,$include)">
            <xsl:apply-templates select="." mode="classmember">
              <xsl:with-param name="theClass" select="$this"/>
              <xsl:with-param name="suffix" select="$context/@expand"/>
            </xsl:apply-templates>
          </xsl:if>
        </xsl:for-each>
      </xsl:when>
      <xsl:when test="not(@expand)">
        <ref xmlns="http://relaxng.org/ns/structure/1.0" name="{$prefixedName}"/>
      </xsl:when>
      <xsl:when test="@expand='sequence'">
        <xsl:for-each select="key('CLASSMEMBERS',$this)">
          <xsl:if test="tei:includeMember(@ident,$except,$include)">
            <xsl:apply-templates select="." mode="classmember">
              <xsl:with-param name="theClass" select="$this"/>
              <xsl:with-param name="suffix" select="@expand"/>
            </xsl:apply-templates>
          </xsl:if>
        </xsl:for-each>
      </xsl:when>
      <xsl:when test="@expand='sequenceOptional'">
        <xsl:for-each select="key('CLASSMEMBERS',$this)">
          <xsl:if test="tei:includeMember(@ident,$except,$include)">
            <optional xmlns="http://relaxng.org/ns/structure/1.0">
              <xsl:apply-templates select="." mode="classmember">
                <xsl:with-param name="theClass" select="$this"/>
                <xsl:with-param name="suffix" select="@expand"/>
              </xsl:apply-templates>
            </optional>
          </xsl:if>
        </xsl:for-each>
      </xsl:when>
      <xsl:when test="@expand='sequenceRepeatable'">
        <xsl:for-each select="key('CLASSMEMBERS',$this)">
          <xsl:if test="tei:includeMember(@ident,$except,$include)">
            <oneOrMore xmlns="http://relaxng.org/ns/structure/1.0">
              <xsl:apply-templates select="." mode="classmember">
                <xsl:with-param name="theClass" select="$this"/>
                <xsl:with-param name="suffix" select="@expand"/>
              </xsl:apply-templates>
            </oneOrMore>
          </xsl:if>
        </xsl:for-each>
      </xsl:when>
      <xsl:when test="@expand='sequenceOptionalRepeatable'">
        <xsl:for-each select="key('CLASSMEMBERS',$this)">
          <xsl:if test="tei:includeMember(@ident,$except,$include)">
            <zeroOrMore xmlns="http://relaxng.org/ns/structure/1.0">
              <xsl:apply-templates select="." mode="classmember">
                <xsl:with-param name="suffix" select="@expand"/>
                <xsl:with-param name="theClass" select="$this"/>
              </xsl:apply-templates>
            </zeroOrMore>
          </xsl:if>
        </xsl:for-each>
      </xsl:when>
      <xsl:otherwise>
        <choice xmlns="http://relaxng.org/ns/structure/1.0">
          <xsl:for-each select="key('CLASSMEMBERS',$this)">
            <xsl:if test="tei:includeMember(@ident,$except,$include)">
              <xsl:apply-templates select="." mode="classmember">
                <xsl:with-param name="suffix" select="@expand"/>
                <xsl:with-param name="theClass" select="$this"/>
              </xsl:apply-templates>
            </xsl:if>
          </xsl:for-each>
        </choice>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:variable>
  <xsl:variable name="min" select="if (not(@minOccurs)) then 1 else          if (@minOccurs='0') then 1 else @minOccurs" as="xs:integer"/>
  <xsl:variable name="max" select="@maxOccurs" as="xs:integer"/>
  <xsl:for-each select="1 to $min">
    <xsl:choose>
      <xsl:when test="string-length($wrapperElement)=0">
        <xsl:copy-of select="$c"/>
      </xsl:when>
      <xsl:otherwise>
        <xsl:element name="{$wrapperElement}" xmlns="http://relaxng.org/ns/structure/1.0">
          <xsl:copy-of select="$c"/>
        </xsl:element>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:for-each>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:elementSpec|tei:classSpecglossDesc
Namespace No namespace
Match tei:elementSpec|tei:classSpec
Mode glossDesc
References
Variable
Import precedence 0
Source
<xsl:template match="tei:elementSpec|tei:classSpec" mode="glossDesc">
  <!-- We should probably be more careful about the possibility -->
  <!-- of sub-languages (e.g., having descriptions in both 'en-US' and -->
  <!-- 'en-UK'). However, as of now there are no cases of any sublanguages -->
  <!-- that would cause a problem here. -->
  <xsl:variable name="generatedTitleAttrVal">
    <xsl:if test="tei:gloss[ lang( $targetLanguage ) ]">
      <xsl:text>(</xsl:text>
      <xsl:apply-templates select="tei:gloss[ lang( $targetLanguage ) ]" mode="glossDescTitle"/>
      <xsl:text>) </xsl:text>
    </xsl:if>
    <xsl:apply-templates select="tei:desc[ lang( $targetLanguage ) ]" mode="glossDescTitle"/>
  </xsl:variable>
  <xsl:value-of select="normalize-space($generatedTitleAttrVal)"/>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:glossinLanguage
Namespace No namespace
Match tei:gloss
Mode inLanguage
Import precedence 0
Source
<xsl:template match="tei:gloss" mode="inLanguage">
  <xsl:value-of select="."/>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:descinLanguage
Namespace No namespace
Match tei:desc
Mode inLanguage
Import precedence 0
Source
<xsl:template match="tei:desc" mode="inLanguage">
  <xsl:apply-templates/>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template schematronInContent
Namespace No namespace
Used by
Template
References
Import precedence 0
Source
<xsl:template name="schematronInContent">
  <xsl:for-each select="tei:constraintSpec/tei:constraint/*">
    <xsl:call-template name="processSchematron"/>
  </xsl:for-each>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template tei:constrainSpec|tei:constraint
Namespace No namespace
Match tei:constrainSpec|tei:constraint
Mode #default
Import precedence 0
Source
<xsl:template match="tei:constrainSpec|tei:constraint">
  <xsl:apply-templates/>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template s:*
Namespace No namespace
Match s:*
Mode #default
References
Import precedence 0
Source
<xsl:template match="s:*">
  <xsl:call-template name="processSchematron"/>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Template sch:*
Namespace No namespace
Match sch:*
Mode #default
References
Import precedence 0
Source
<xsl:template match="sch:*">
  <xsl:call-template name="processSchematron"/>
</xsl:template>
Stylesheet location ../../../odds/teiodds.xsl
Parameter STDOUT
Namespace No namespace
Overriding
Parameter
Source
<xsl:param name="STDOUT">true</xsl:param>
Stylesheet location ../../../odds/teiodds.xsl
Parameter TEIC
Namespace No namespace
Source
<xsl:param name="TEIC">false</xsl:param>
Stylesheet location ../../../odds/teiodds.xsl
Parameter autoGlobal
Namespace No namespace
Overriding
Parameter
Source
<xsl:param name="autoGlobal">false</xsl:param>
Stylesheet location ../../../odds/teiodds.xsl
Parameter configDirectory
Namespace No namespace
Used by
Variable
Source
<xsl:param name="configDirectory"/>
Stylesheet location ../../../odds/teiodds.xsl
Parameter currentDirectory
Namespace No namespace
Used by
Source
<xsl:param name="currentDirectory"/>
Stylesheet location ../../../odds/teiodds.xsl
Parameter defaultSource
Namespace No namespace
Used by
Variable
Source
<xsl:param name="defaultSource"/>
Stylesheet location ../../../odds/teiodds.xsl
Parameter defaultTEIServer
Namespace No namespace
Used by
Source
<xsl:param name="defaultTEIServer">http://www.tei-c.org/Vault/P5/</xsl:param>
Stylesheet location ../../../odds/teiodds.xsl
Parameter defaultTEIVersion
Namespace No namespace
Used by
Variable
Source
<xsl:param name="defaultTEIVersion">current</xsl:param>
Stylesheet location ../../../odds/teiodds.xsl
Parameter idPrefix
Namespace No namespace
Source
<xsl:param name="idPrefix"/>
Stylesheet location ../../../odds/teiodds.xsl
Parameter lang
Namespace No namespace
Overriding
Parameter
Source
<xsl:param name="lang"/>
Stylesheet location ../../../odds/teiodds.xsl
Parameter localsource
Namespace No namespace
Used by
Source
<xsl:param name="localsource"/>
Stylesheet location ../../../odds/teiodds.xsl
Parameter lookupDatabase
Namespace No namespace
Source
<xsl:param name="lookupDatabase">false</xsl:param>
Stylesheet location ../../../odds/teiodds.xsl
Parameter oddmode
Namespace No namespace
Overriding
Parameter
Source
<xsl:param name="oddmode">tei</xsl:param>
Stylesheet location ../../../odds/teiodds.xsl
Parameter outputDir
Namespace No namespace
Overriding
Parameter
Source
<xsl:param name="outputDir"/>
Stylesheet location ../../../odds/teiodds.xsl
Parameter outputSuffix
Namespace No namespace
Source
<xsl:param name="outputSuffix">.html</xsl:param>
Stylesheet location ../../../odds/teiodds.xsl
Parameter patternPrefix
Namespace No namespace
Used by
Variable
Source
<xsl:param name="patternPrefix"/>
Stylesheet location ../../../odds/teiodds.xsl
Parameter outputEncoding
Namespace No namespace
Used by
Template
Source
<xsl:param name="outputEncoding">utf-8</xsl:param>
Stylesheet location ../../../odds/teiodds.xsl
Parameter schemaBaseURL
Namespace No namespace
Used by
Source
<xsl:param name="schemaBaseURL">http://localhost/schema/relaxng/</xsl:param>
Stylesheet location ../../../odds/teiodds.xsl
Parameter splitLevel
Namespace No namespace
Overriding
Parameter
Source
<xsl:param name="splitLevel">-1</xsl:param>
Stylesheet location ../../../odds/teiodds.xsl
Parameter verbose
Namespace No namespace
Overriding
Parameter
Source
<xsl:param name="verbose">false</xsl:param>
Stylesheet location ../../../odds/teiodds.xsl
Variable DEFAULTSOURCE
Namespace No namespace
Used by
References
Source
<xsl:variable name="DEFAULTSOURCE">
  <xsl:choose>
    <xsl:when test="$defaultSource != ''">
      <xsl:value-of select="$defaultSource"/>
    </xsl:when>
    <xsl:when test="$configDirectory != ''">
      <xsl:value-of select="$configDirectory"/>
      <xsl:text>odd/p5subset.xml</xsl:text>
    </xsl:when>
    <xsl:otherwise>
      <xsl:value-of select="$defaultTEIServer"/>
      <xsl:value-of select="$defaultTEIVersion"/>
      <xsl:text>/xml/tei/odd/p5subset.xml</xsl:text>
    </xsl:otherwise>
  </xsl:choose>
</xsl:variable>
Stylesheet location ../../../odds/teiodds.xsl
Variable BASE
Namespace No namespace
Select base-uri(/tei:TEI)
Used by
Source
<xsl:variable name="BASE" select="base-uri(/tei:TEI)"/>
Stylesheet location ../../../odds/teiodds.xsl
Variable parameterize
Namespace No namespace
Select if (key('SCHEMASPECS',1)) then 'false' else 'true'
Used by
References
Source
<xsl:variable name="parameterize" select="if (key('SCHEMASPECS',1)) then 'false' else 'true'"/>
Stylesheet location ../../../odds/teiodds.xsl
Variable generalPrefix
Namespace No namespace
Used by
References
Source
<xsl:variable name="generalPrefix">
  <xsl:choose>
    <xsl:when test="string-length($patternPrefix)>0">
      <xsl:value-of select="$patternPrefix"/>
    </xsl:when>
    <xsl:when test="key('LISTSCHEMASPECS',$whichSchemaSpec)[@prefix]">
      <xsl:value-of select="key('LISTSCHEMASPECS',$whichSchemaSpec)/@prefix"/>
    </xsl:when>
  </xsl:choose>
</xsl:variable>
Stylesheet location ../../../odds/teiodds.xsl
Variable targetLanguage
Namespace No namespace
Used by
References
Parameter
Variable
Key
Source
<xsl:variable name="targetLanguage">
  <xsl:choose>
    <xsl:when test="string-length($lang)>0">
      <xsl:value-of select="$lang"/>
    </xsl:when>
    <xsl:when test="key('LISTSCHEMASPECS',$whichSchemaSpec)[@targetLang]">
      <xsl:value-of select="key('LISTSCHEMASPECS',$whichSchemaSpec)/@targetLang"/>
    </xsl:when>
    <xsl:otherwise>
      <xsl:text>en</xsl:text>
    </xsl:otherwise>
  </xsl:choose>
</xsl:variable>
Stylesheet location ../../../odds/teiodds.xsl
Function tei:workOutSource (e)
Namespace http://www.tei-c.org/ns/1.0
Type xs:string*
References
Variable
Parameters
Template
Parameters
QName Namespace
e No namespace
Import precedence 0
Source
<xsl:function name="tei:workOutSource" as="xs:string*">
  <xsl:param name="e"/>
  <xsl:variable name="loc">
    <xsl:choose>
      <xsl:when test="$e/@source">
        <xsl:value-of select="$e/@source"/>
      </xsl:when>
      <xsl:when test="$e/ancestor::tei:schemaSpec/@source">
        <xsl:value-of select="$e/ancestor::tei:schemaSpec/@source"/>
      </xsl:when>
      <xsl:otherwise>
        <xsl:value-of select="$DEFAULTSOURCE"/>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:variable>
  <xsl:variable name="source">
    <xsl:choose>
      <xsl:when test="starts-with($loc,'/')">
        <xsl:value-of select="$loc"/>
      </xsl:when>
      <xsl:when test="starts-with($loc,'file:')">
        <xsl:value-of select="$loc"/>
      </xsl:when>
      <xsl:when test="starts-with($loc,'http:')">
        <xsl:value-of select="$loc"/>
      </xsl:when>
      <xsl:when test="starts-with($loc,'https:')">
        <xsl:value-of select="$loc"/>
      </xsl:when>
      <xsl:when test="starts-with($loc,'tei:')">
        <xsl:value-of select="replace($loc,'tei:',$defaultTEIServer)"/>
        <xsl:text>/xml/tei/odd/p5subset.xml</xsl:text>
      </xsl:when>
      <xsl:otherwise>
        <xsl:value-of select="$currentDirectory"/>
        <xsl:value-of select="$loc"/>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:variable>
  <xsl:choose>
    <xsl:when test="not(doc-available($source))">
      <xsl:call-template name="die">
        <xsl:with-param name="message">
          <xsl:text>Source </xsl:text>
          <xsl:value-of select="$source"/>
          <xsl:text> not readable</xsl:text>
        </xsl:with-param>
      </xsl:call-template>
    </xsl:when>
    <xsl:otherwise>
      <xsl:if test="$verbose='true'">
        <xsl:message>Setting source document to
          <xsl:value-of select="$source"/>
        </xsl:message>
      </xsl:if>
      <xsl:sequence select="$source"/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:function>
Stylesheet location ../../../odds/teiodds.xsl
Function tei:message (message)
Namespace http://www.tei-c.org/ns/1.0
Type xs:string
Parameters
QName Namespace
message No namespace
Import precedence 0
Source
<xsl:function name="tei:message" as="xs:string">
  <xsl:param name="message"/>
  <xsl:message>
    <xsl:copy-of select="$message"/>
  </xsl:message>
  <xsl:text/>
</xsl:function>
Stylesheet location ../../../odds/teiodds.xsl
Function tei:uniqueName (e)
Namespace http://www.tei-c.org/ns/1.0
Type xs:string
Parameters
QName Namespace
e No namespace
Import precedence 0
Source
<xsl:function name="tei:uniqueName" as="xs:string">
  <xsl:param name="e"/>
  <xsl:for-each select="$e">
    <xsl:sequence select="concat(  if (@ns='http://www.tei-c.org/ns/1.0') then ''  else if (@ns) then @ns  else if (ancestor::tei:schemaSpec/@ns) then  ancestor::tei:schemaSpec/@ns else '',@ident)"/>
  </xsl:for-each>
</xsl:function>
Stylesheet location ../../../odds/teiodds.xsl
Function tei:generateIndicators (min, max)
Namespace http://www.tei-c.org/ns/1.0
Type xs:string
Used by
Parameters
QName Namespace
max No namespace
min No namespace
Import precedence 0
Source
<xsl:function name="tei:generateIndicators" as="xs:string">
  <xsl:param name="min"/>
  <xsl:param name="max"/>
  <xsl:choose>
    <xsl:when test="$min='0' and $max='1'">optional</xsl:when>
    <xsl:when test="$min='0' and not($max)">optional</xsl:when>
    <xsl:when test="number($min) ge 1 and $max='unbounded'">oneOrMore</xsl:when>
    <xsl:when test="number($min) ge 1 and not($max)">oneOrMore</xsl:when>
    <xsl:when test="not($min) and $max='unbounded'">oneOrMore</xsl:when>
    <xsl:when test="$min='0' and $max='unbounded'">zeroOrMore</xsl:when>
    <xsl:otherwise>
      <xsl:text/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:function>
Stylesheet location ../../../odds/teiodds.xsl
Function tei:generateAttRef (context, prefix)
Namespace http://www.tei-c.org/ns/1.0
Type xs:string
Used by
References
Key
Parameters
QName Namespace
context No namespace
prefix No namespace
Import precedence 0
Source
<xsl:function name="tei:generateAttRef" as="xs:string">
  <xsl:param name="context"/>
  <xsl:param name="prefix"/>
  <xsl:variable name="result">
    <xsl:for-each select="$context">
      <xsl:for-each select="key('IDENTS',@class)">
        <xsl:choose>
          <xsl:when test="@prefix">
            <xsl:value-of select="@prefix"/>
          </xsl:when>
          <xsl:otherwise>
            <xsl:value-of select="$prefix"/>
          </xsl:otherwise>
        </xsl:choose>
      </xsl:for-each>
      <xsl:choose>
        <xsl:when test="not(@name)">
          <xsl:value-of select="concat(@class,'.attributes')"/>
        </xsl:when>
        <xsl:otherwise>
          <xsl:value-of select="concat(@class,'.attribute.',translate(@name,':',''))"/>
        </xsl:otherwise>
      </xsl:choose>
    </xsl:for-each>
  </xsl:variable>
  <xsl:value-of select="$result"/>
</xsl:function>
Stylesheet location ../../../odds/teiodds.xsl
Function tei:generateRefPrefix (context)
Namespace http://www.tei-c.org/ns/1.0
Type xs:string
Used by
References
Key
Variable
Parameters
QName Namespace
context No namespace
Import precedence 0
Source
<xsl:function name="tei:generateRefPrefix" as="xs:string">
  <xsl:param name="context"/>
  <!-- where we meet a pointer, we have a choice of how to proceed
	 
	 a) if there is no auto-prefixing, just use as is
	 b) if the thing exists in the IDENTS table (which includes prefixes), and starts with the prefix, then use it as is
	 c) if it exists in the IDENTS table and has a prefix, use that
	 d) otherwise, if it exists in the IDENTS table use the general prefix
	 e) otherwise, just use what we are given
    -->
  <xsl:for-each select="$context">
    <xsl:variable name="lookup" select="replace(@name|@key,'_(alternation|sequenceOptionalRepeatable|sequenceOptional|sequenceRepeatable|sequence)','')"/>
    <xsl:variable name="myprefix" select="ancestor::*[@prefix][1]/@prefix"/>
    <xsl:variable name="fullname" select="@name|@key"/>
    <xsl:choose>
      <xsl:when test="ancestor::tei:content[@autoPrefix='false']">
        <xsl:value-of select="$fullname"/>
      </xsl:when>
      <xsl:when test="key('IDENTS',$lookup)">
        <xsl:for-each select="key('IDENTS',$lookup)">
          <xsl:choose>
            <xsl:when test="@prefix and starts-with($fullname,@prefix)">
              <xsl:value-of select="$fullname"/>
            </xsl:when>
            <xsl:when test="@prefix">
              <xsl:value-of select="concat(@prefix,$fullname)"/>
            </xsl:when>
            <xsl:otherwise>
              <xsl:value-of select="concat($generalPrefix,$fullname)"/>
            </xsl:otherwise>
          </xsl:choose>
        </xsl:for-each>
      </xsl:when>
      <xsl:otherwise>
        <xsl:value-of select="$fullname"/>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:for-each>
</xsl:function>
Stylesheet location ../../../odds/teiodds.xsl
Function tei:includeMember (ident, exc, inc)
Namespace http://www.tei-c.org/ns/1.0
Type xs:boolean
Used by
Parameters
QName Namespace Type
exc No namespace
ident No namespace xs:string
inc No namespace
Import precedence 0
Source
<xsl:function name="tei:includeMember" as="xs:boolean">
  <xsl:param name="ident" as="xs:string"/>
  <xsl:param name="exc"/>
  <xsl:param name="inc"/>
  <xsl:choose>
    <xsl:when test="not($exc) and not($inc)">true</xsl:when>
    <xsl:when test="$inc and $ident cast as xs:string  = tokenize($inc, ' ')">true</xsl:when>
    <xsl:when test="$inc">false</xsl:when>
    <xsl:when test="$exc and $ident cast as xs:string = tokenize($exc, ' ')">false</xsl:when>
    <xsl:otherwise>true</xsl:otherwise>
  </xsl:choose>
</xsl:function>
Stylesheet location ../../../odds/teiodds.xsl
Key LOCALIDENTS
Namespace No namespace
Match tei:elementSpec|tei:classSpec|tei:macroSpec
Use @ident
Used by
Source
<xsl:key match="tei:elementSpec|tei:classSpec|tei:macroSpec" name="LOCALIDENTS" use="@ident"/>
Stylesheet location ../../../odds/teiodds.xsl
Key MACROS
Namespace No namespace
Match tei:macroSpec
Use @ident
Used by
Source
<xsl:key match="tei:macroSpec" name="MACROS" use="@ident"/>
Stylesheet location ../../../odds/teiodds.xsl
Key ELEMENTS
Namespace No namespace
Match tei:elementSpec
Use tei:altIdent
Used by
Source
<xsl:key match="tei:elementSpec" name="ELEMENTS" use="tei:altIdent"/>
Stylesheet location ../../../odds/teiodds.xsl
Key CLASSES
Namespace No namespace
Match tei:classSpec
Use @ident
Used by
Source
<xsl:key match="tei:classSpec" name="CLASSES" use="@ident"/>
Stylesheet location ../../../odds/teiodds.xsl
Key REFS
Namespace No namespace
Match rng:ref[contains(@name,'_')]
Use substring-before(@name,'_')
Used by
Template
Source
<xsl:key match="rng:ref[contains(@name,'_')]" name="REFS" use="substring-before(@name,'_')"/>
Stylesheet location ../../../odds/teiodds.xsl
Key REFSTO-ELEMENT
Namespace No namespace
Match tei:elementSpec/tei:attList//tei:attDef/tei:datatype/rng:ref
Use @name
Source
<xsl:key match="tei:elementSpec/tei:attList//tei:attDef/tei:datatype/rng:ref" name="REFSTO-ELEMENT" use="@name"/>
Stylesheet location ../../../odds/teiodds.xsl
Key REFSTO-CLASS
Namespace No namespace
Match tei:classSpec/tei:attList//tei:attDef/tei:datatype/rng:ref
Use @name
Source
<xsl:key match="tei:classSpec/tei:attList//tei:attDef/tei:datatype/rng:ref" name="REFSTO-CLASS" use="@name"/>
Stylesheet location ../../../odds/teiodds.xsl
Key MACROREFS
Namespace No namespace
Match tei:macroSpec/tei:content//tei:macroRef
Use @key
Source
<xsl:key match="tei:macroSpec/tei:content//tei:macroRef" name="MACROREFS" use="@key"/>
Stylesheet location ../../../odds/teiodds.xsl
Key CLASSMEMBERS
Namespace No namespace
Match tei:elementSpec|tei:classSpec
Use tei:classes/tei:memberOf/@key
Used by
Source
<xsl:key match="tei:elementSpec|tei:classSpec" name="CLASSMEMBERS" use="tei:classes/tei:memberOf/@key"/>
Stylesheet location ../../../odds/teiodds.xsl
Key CLASSMEMBERS-ELEMENTS
Namespace No namespace
Match tei:elementSpec
Use tei:classes/tei:memberOf/@key
Source
<xsl:key match="tei:elementSpec" name="CLASSMEMBERS-ELEMENTS" use="tei:classes/tei:memberOf/@key"/>
Stylesheet location ../../../odds/teiodds.xsl
Key CLASSMEMBERS-CLASSES
Namespace No namespace
Match tei:classSpec
Use tei:classes/tei:memberOf/@key
Source
<xsl:key match="tei:classSpec" name="CLASSMEMBERS-CLASSES" use="tei:classes/tei:memberOf/@key"/>
Stylesheet location ../../../odds/teiodds.xsl
Key IDENTS
Namespace No namespace
Match tei:elementSpec|tei:classSpec|tei:macroSpec
Use concat(@prefix,@ident)
Used by
Source
<xsl:key match="tei:elementSpec|tei:classSpec|tei:macroSpec" name="IDENTS" use="concat(@prefix,@ident)"/>
Stylesheet location ../../../odds/teiodds.xsl
Key DATATYPES
Namespace No namespace
Match tei:macroSpec[@type='dt']
Use 1
Source
<xsl:key match="tei:macroSpec[@type='dt']" name="DATATYPES" use="1"/>
Stylesheet location ../../../odds/teiodds.xsl
Key MACRODOCS
Namespace No namespace
Match tei:macroSpec
Use 1
Source
<xsl:key match="tei:macroSpec" name="MACRODOCS" use="1"/>
Stylesheet location ../../../odds/teiodds.xsl
Key ATTDOCS
Namespace No namespace
Match tei:attDef
Use 1
Source
<xsl:key match="tei:attDef" name="ATTDOCS" use="1"/>
Stylesheet location ../../../odds/teiodds.xsl
Key ATTRIBUTES
Namespace No namespace
Match tei:attDef
Use @ident
Source
<xsl:key match="tei:attDef" name="ATTRIBUTES" use="@ident"/>
Stylesheet location ../../../odds/teiodds.xsl
Key ATTRIBUTES-CLASS
Namespace No namespace
Match tei:classSpec//tei:attDef
Use @ident
Source
<xsl:key match="tei:classSpec//tei:attDef" name="ATTRIBUTES-CLASS" use="@ident"/>
Stylesheet location ../../../odds/teiodds.xsl
Key ATTRIBUTES-ELEMENT
Namespace No namespace
Match tei:elementSpec//tei:attDef
Use @ident
Source
<xsl:key match="tei:elementSpec//tei:attDef" name="ATTRIBUTES-ELEMENT" use="@ident"/>
Stylesheet location ../../../odds/teiodds.xsl
Key ATTCLASSDOCS
Namespace No namespace
Match tei:classSpec[@type='atts']
Use 1
Source
<xsl:key match="tei:classSpec[@type='atts']" name="ATTCLASSDOCS" use="1"/>
Stylesheet location ../../../odds/teiodds.xsl
Key MODELCLASSDOCS
Namespace No namespace
Match tei:classSpec[@type='model']
Use 1
Source
<xsl:key match="tei:classSpec[@type='model']" name="MODELCLASSDOCS" use="1"/>
Stylesheet location ../../../odds/teiodds.xsl
Key ELEMENTDOCS
Namespace No namespace
Match tei:elementSpec
Use 1
Used by
Template
Source
<xsl:key match="tei:elementSpec" name="ELEMENTDOCS" use="1"/>
Stylesheet location ../../../odds/teiodds.xsl
Key ElementModule
Namespace No namespace
Match tei:elementSpec
Use @module
Used by
Source
<xsl:key match="tei:elementSpec" name="ElementModule" use="@module"/>
Stylesheet location ../../../odds/teiodds.xsl
Key ClassModule
Namespace No namespace
Match tei:classSpec
Use @module
Used by
Template
Source
<xsl:key match="tei:classSpec" name="ClassModule" use="@module"/>
Stylesheet location ../../../odds/teiodds.xsl
Key MacroModule
Namespace No namespace
Match tei:macroSpec
Use @module
Used by
Template
Source
<xsl:key match="tei:macroSpec" name="MacroModule" use="@module"/>
Stylesheet location ../../../odds/teiodds.xsl
Key DataMacroModule
Namespace No namespace
Match tei:macroSpec[@type='dt']
Use @module
Used by
Template
Source
<xsl:key match="tei:macroSpec[@type='dt']" name="DataMacroModule" use="@module"/>
Stylesheet location ../../../odds/teiodds.xsl
Key Modules
Namespace No namespace
Match tei:moduleSpec
Use 1
Overriding
Key
Source
<xsl:key match="tei:moduleSpec" name="Modules" use="1"/>
Stylesheet location ../../../odds/teiodds.xsl
Key MODULES
Namespace No namespace
Match tei:moduleSpec
Use @ident
Source
<xsl:key match="tei:moduleSpec" name="MODULES" use="@ident"/>
Stylesheet location ../../../odds/teiodds.xsl
Key predeclaredClasses
Namespace No namespace
Match tei:classSpec[@predeclare='true']
Use 1
Used by
Source
<xsl:key match="tei:classSpec[@predeclare='true']" name="predeclaredClasses" use="1"/>
Stylesheet location ../../../odds/teiodds.xsl
Key PredeclareMacros
Namespace No namespace
Match tei:macroSpec[@predeclare='true']
Use @ident
Source
<xsl:key match="tei:macroSpec[@predeclare='true']" name="PredeclareMacros" use="@ident"/>
Stylesheet location ../../../odds/teiodds.xsl
Key PredeclareMacrosModule
Namespace No namespace
Match tei:macroSpec[@predeclare='true']
Use @module
Used by
Source
<xsl:key match="tei:macroSpec[@predeclare='true']" name="PredeclareMacrosModule" use="@module"/>
Stylesheet location ../../../odds/teiodds.xsl
Key PredeclareAllMacros
Namespace No namespace
Match tei:macroSpec[@predeclare='true']
Use 1
Used by
Template
Source
<xsl:key match="tei:macroSpec[@predeclare='true']" name="PredeclareAllMacros" use="1"/>
Stylesheet location ../../../odds/teiodds.xsl
Key ELEMENTPARENTS
Namespace No namespace
Match Contains
Use .
Source
<xsl:key match="Contains" name="ELEMENTPARENTS" use="."/>
Stylesheet location ../../../odds/teiodds.xsl