Showing:

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

Description

TEI stylesheet for processing TEI ODD markup

This library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with this library; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

Author: See AUTHORS

Id: $Id: teiodds.xsl 8272 2010-11-13 15:07:25Z rahtz $

Copyright: 2008, TEI Consortium

Imported modules
Included modules
Imported from
Stylesheet version 2.0
Template generateDoc
Namespace No namespace
Used by
References
Parameter doclang
Variable whichSchemaSpec
Key LISTSCHEMASPECS
Import precedence 2
Source
<xsl:template name="generateDoc">
  <xsl:choose>
    <xsl:when test="string-length($doclang)>0">
      <xsl:value-of select="$doclang"/>
    </xsl:when>
    <xsl:when test="key('LISTSCHEMASPECS',$whichSchemaSpec)/@docLang">
      <xsl:value-of select="key('LISTSCHEMASPECS',$whichSchemaSpec)/@docLang"/>
    </xsl:when>
    <xsl:otherwise>
      <xsl:text>en</xsl:text>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location teiodds.xsl
Template processing-instruction()
Namespace No namespace
Match processing-instruction()
Mode #default
References
Template showDate
Import precedence 2
Source
<xsl:template match="processing-instruction()">
  <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="showDate"/>.</xsl:when>
      </xsl:choose>
    </xsl:when>
    <xsl:otherwise>
      <xsl:copy-of select="."/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location teiodds.xsl
Template *literal
Namespace No namespace
Match *
Mode literal
Import precedence 2
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 teiodds.xsl
Template rng:ref
Namespace No namespace
Match rng:ref
Mode #default
References
Template makeRef
Import precedence 2
Source
<xsl:template match="rng:ref">
  <xsl:call-template name="makeRef">
    <xsl:with-param name="lookup" select="replace(@name,'_(alternation|sequenceOptionalRepeatable|sequenceOptional|sequenceRepeatable|sequence)','')"/>
  </xsl:call-template>
</xsl:template>
Stylesheet location teiodds.xsl
Template makeRef
Namespace No namespace
Used by
References
Key IDENTS
Variable generalPrefix
Parameters
QName Namespace
lookup No namespace
Import precedence 2
Source
<xsl:template name="makeRef">
  <xsl:param name="lookup"/>
  <xsl:variable name="fullname" select="@name"/>
  <xsl:variable name="myprefix" select="ancestor::*[@prefix][1]/@prefix"/>
  <xsl:choose>
    <xsl:when test="ancestor::tei:content[@autoPrefix='false']">
      <ref xmlns="http://relaxng.org/ns/structure/1.0" name="{$fullname}"/>
    </xsl:when>
    <xsl:when test="count(key('IDENTS',$lookup))>1">
      <ref xmlns="http://relaxng.org/ns/structure/1.0" name="{$myprefix}{$fullname}"/>
    </xsl:when>
    <xsl:when test="key('IDENTS',$lookup)">
      <xsl:for-each select="key('IDENTS',$lookup)">
        <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>
        <ref xmlns="http://relaxng.org/ns/structure/1.0" name="{$localprefix}{$fullname}"/>
      </xsl:for-each>
    </xsl:when>
    <xsl:otherwise>
      <ref xmlns="http://relaxng.org/ns/structure/1.0" name="{@name}"/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location teiodds.xsl
Template rng:*
Namespace No namespace
Match rng:*
Mode #default
Import precedence 2
Source
<xsl:template match="rng:*">
  <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 teiodds.xsl
Template rng:zeroOrMore
Namespace No namespace
Match rng:zeroOrMore
Mode #default
Import precedence 2
Source
<xsl:template match="rng:zeroOrMore">
  <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>
      <xsl:copy>
        <xsl:copy-of select="@*"/>
        <xsl:apply-templates select="rng:*|tei:*|text()|comment()"/>
      </xsl:copy>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location teiodds.xsl
Template rng:choice
Namespace No namespace
Match rng:choice
Mode #default
Import precedence 2
Source
<xsl:template match="rng:choice">
  <xsl:choose>
    <xsl:when test="count(rng:*)=1">
      <xsl:apply-templates select="rng:*|tei:*|text()|comment()"/>
    </xsl:when>
    <xsl:otherwise>
      <xsl:copy>
        <xsl:copy-of select="@*"/>
        <xsl:apply-templates select="rng:*|tei:*|text()|comment()"/>
      </xsl:copy>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location teiodds.xsl
Template rng:group
Namespace No namespace
Match rng:group
Mode #default
Import precedence 2
Source
<xsl:template match="rng:group">
  <!-- 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>
          <xsl:copy>
            <xsl:copy-of select="@*"/>
            <xsl:apply-templates select="rng:*|tei:*|text()|comment()"/>
          </xsl:copy>
        </xsl:otherwise>
      </xsl:choose>
    </xsl:when>
    <xsl:otherwise>
      <xsl:copy>
        <xsl:copy-of select="@*"/>
        <xsl:apply-templates select="rng:*|tei:*|text()|comment()"/>
      </xsl:copy>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location teiodds.xsl
Template rng:*decomposed
Namespace No namespace
Match rng:*
Mode decomposed
Import precedence 2
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 teiodds.xsl
Template tei:*tangle
Namespace No namespace
Match tei:*
Mode tangle
Import precedence 2
Source
<xsl:template match="tei:*" mode="tangle"/>
Stylesheet location teiodds.xsl
Template tei:attReftangle
Namespace No namespace
Match tei:attRef
Mode tangle
References
Template makeRef
Import precedence 2
Source
<xsl:template match="tei:attRef" mode="tangle">
  <xsl:call-template name="makeRef">
    <xsl:with-param name="lookup" select="substring-before(@name,'.attribute')"/>
  </xsl:call-template>
</xsl:template>
Stylesheet location teiodds.xsl
Template tei:attDeftangle
Namespace No namespace
Match tei:attDef
Mode tangle
References
Template makeAnAttribute
Parameters
QName Namespace
element No namespace
Import precedence 2
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 teiodds.xsl
Template tei:attListtangle
Namespace No namespace
Match tei:attList
Mode tangle
Parameters
QName Namespace
element No namespace
Import precedence 2
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 teiodds.xsl
Template tei:author
Namespace No namespace
Match tei:author
Mode #default
Import precedence 2
Source
<xsl:template match="tei:author">
  <xsl:apply-templates/>
  <xsl:text>, </xsl:text>
</xsl:template>
Stylesheet location teiodds.xsl
Template tei:classSpectangle
Namespace No namespace
Match tei:classSpec
Mode tangle
References
Variable generalPrefix
Parameter verbose
Templates bitOut; makeRef
Key IDENTS
Import precedence 2
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:when>
    <xsl:when test="@type='atts'">
      <xsl:call-template name="bitOut">
        <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('IDENTS',@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">
                  <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:call-template name="makeRef">
                    <xsl:with-param name="lookup" select="substring-before(@name,'.attribute')"/>
                  </xsl:call-template>
                </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>
          </Wrapper>
        </xsl:with-param>
      </xsl:call-template>
    </xsl:when>
  </xsl:choose>
</xsl:template>
Stylesheet location teiodds.xsl
Template tei:classSpecprocessModel
Namespace No namespace
Match tei:classSpec
Mode processModel
References
Parameter verbose
Templates bitOut; processClassDefinition
Parameters
QName Namespace
declare No namespace
Import precedence 2
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="bitOut">
    <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 teiodds.xsl
Template processClassDefinition
Namespace No namespace
Used by
References
Parameters
QName Namespace
declare No namespace
type No namespace
Import precedence 2
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 teiodds.xsl
Template makeClassDefinition
Namespace No namespace
Used by
References
Variable generalPrefix
Template findUses
Key CLASSMEMBERS
Parameter verbose
Parameters
QName Namespace
declare No namespace
type No namespace
Import precedence 2
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="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="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="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: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: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 teiodds.xsl
Template findUses
Namespace No namespace
Used by
References
Keys CLASSES; REFS
Template findUses
Parameters
QName Namespace
class No namespace
pattern No namespace
Import precedence 2
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 teiodds.xsl
Template tei:classSpectangleadd
Namespace No namespace
Match tei:classSpec
Mode tangleadd
Import precedence 2
Source
<xsl:template match="tei:classSpec" mode="tangleadd">
  <xsl:apply-templates mode="tangleadd"/>
</xsl:template>
Stylesheet location teiodds.xsl
Template tei:classSpec/@ident
Namespace No namespace
Match tei:classSpec/@ident
Mode #default
Import precedence 2
Source
<xsl:template match="tei:classSpec/@ident"/>
Stylesheet location teiodds.xsl
Template tei:code
Namespace No namespace
Match tei:code
Mode #default
References
Template typewriter
Import precedence 2
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 teiodds.xsl
Template text()doc
Namespace No namespace
Match text()
Mode doc
Import precedence 2
Source
<xsl:template match="text()" mode="doc">
  <xsl:value-of select="."/>
</xsl:template>
Stylesheet location teiodds.xsl
Template tei:desctangle
Namespace No namespace
Match tei:desc
Mode tangle
Import precedence 2
Source
<xsl:template match="tei:desc" mode="tangle"/>
Stylesheet location teiodds.xsl
Template tei:classSpecclassmember
Namespace No namespace
Match tei:classSpec
Mode classmember
References
Variable generalPrefix
Parameters
QName Namespace
suffix No namespace
Import precedence 2
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 teiodds.xsl
Template tei:elementSpecclassmember
Namespace No namespace
Match tei:elementSpec
Mode classmember
References
Variable generalPrefix
Import precedence 2
Source
<xsl:template match="tei:elementSpec" mode="classmember">
  <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>
  <ref xmlns="http://relaxng.org/ns/structure/1.0" name="{$elementPrefix}{@ident}"/>
</xsl:template>
Stylesheet location teiodds.xsl
Template tei:elementSpectangle
Namespace No namespace
Match tei:elementSpec
Mode tangle
References
Import precedence 2
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="bitOut">
    <xsl:with-param name="grammar"/>
    <xsl:with-param name="content">
      <Wrapper>
        <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:value-of select="@ident"/>
            </xsl:otherwise>
          </xsl:choose>
        </xsl:variable>
        <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:call-template name="makeDescription">
                      <xsl:with-param name="includeValList">true</xsl:with-param>
                      <xsl:with-param name="coded">false</xsl:with-param>
                    </xsl:call-template>
                  </a:documentation>
                </xsl:if>
                <xsl:choose>
                  <xsl:when test="$parameterize='true'">
                    <ref name="{$elementPrefix}{@ident}.content"/>
                    <xsl:if test="not($Attributes='') or $TEIC='true'">
                      <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='') or $TEIC='true'">
                      <xsl:call-template name="defineAttributes"/>
                    </xsl:if>
                  </xsl:otherwise>
                </xsl:choose>
                <!--
		  <xsl:if test="@ident='TEI' or @ident='teiCorpus'">
		    <optional>
		      <attribute name="schemaLocation"
				     ns="http://www.w3.org/2001/XMLSchema-instance">
			<text/>
		      </attribute>
		    </optional>
		  </xsl:if>
-->
              </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='') or $TEIC='true'">
                <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 teiodds.xsl
Template summarizeAttributes
Namespace No namespace
Used by
References
Key CLASSES
Import precedence 2
Source
<xsl:template name="summarizeAttributes">
  <xsl:for-each select=".//tei:attDef">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 teiodds.xsl
Template defineAttributes
Namespace No namespace
Used by
References
Variables generalPrefix; parameterize
Parameters TEIC; verbose
Key CLASSES
Import precedence 2
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="$TEIC='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 -->
  <xsl:if test="$TEIC='true'">
    <empty xmlns="http://relaxng.org/ns/structure/1.0"/>
  </xsl:if>
  <!--
    <xsl:choose>
      <xsl:when test="$TEIC='true'">
	<optional xmlns="http://relaxng.org/ns/structure/1.0">
	  <attribute name="TEIform" a:defaultValue="{@ident}" xmlns="http://relaxng.org/ns/structure/1.0">
	    <text xmlns="http://relaxng.org/ns/structure/1.0"/>
	  </attribute>
	</optional>
      </xsl:when>
      <xsl:otherwise>
	<empty xmlns="http://relaxng.org/ns/structure/1.0"/>
      </xsl:otherwise>
    </xsl:choose>
-->
</xsl:template>
Stylesheet location teiodds.xsl
Template defineContent
Namespace No namespace
Used by
References
Template valListChildren
Import precedence 2
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()"/>
        </xsl:when>
        <xsl:otherwise>
          <empty xmlns="http://relaxng.org/ns/structure/1.0"/>
        </xsl:otherwise>
      </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:apply-templates select="tei:constraintSpec"/>
</xsl:template>
Stylesheet location teiodds.xsl
Template valListChildren
Namespace No namespace
Used by
Template defineContent
References
Variable oddmode
Template makeDescription
Import precedence 2
Source
<xsl:template name="valListChildren">
  <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:call-template name="makeDescription">
            <xsl:with-param name="includeValList">true</xsl:with-param>
            <xsl:with-param name="coded">false</xsl:with-param>
          </xsl:call-template>
        </a:documentation>
      </xsl:if>
    </xsl:for-each>
  </choice>
</xsl:template>
Stylesheet location teiodds.xsl
Template tei:elementSpec/@ident
Namespace No namespace
Match tei:elementSpec/@ident
Mode #default
Import precedence 2
Source
<xsl:template match="tei:elementSpec/@ident"/>
Stylesheet location teiodds.xsl
Template tei:elementSpec/tei:desc
Namespace No namespace
Match tei:elementSpec/tei:desc
Mode #default
Import precedence 2
Source
<xsl:template match="tei:elementSpec/tei:desc"/>
Stylesheet location teiodds.xsl
Template tei:classSpec/tei:desc
Namespace No namespace
Match tei:classSpec/tei:desc
Mode #default
Import precedence 2
Source
<xsl:template match="tei:classSpec/tei:desc"/>
Stylesheet location teiodds.xsl
Template tei:macroSpec/tei:desc
Namespace No namespace
Match tei:macroSpec/tei:desc
Mode #default
Import precedence 2
Source
<xsl:template match="tei:macroSpec/tei:desc"/>
Stylesheet location teiodds.xsl
Template tei:elementSpec/tei:gloss
Namespace No namespace
Match tei:elementSpec/tei:gloss
Mode #default
Import precedence 2
Source
<xsl:template match="tei:elementSpec/tei:gloss"/>
Stylesheet location teiodds.xsl
Template tei:classSpec/tei:gloss
Namespace No namespace
Match tei:classSpec/tei:gloss
Mode #default
Import precedence 2
Source
<xsl:template match="tei:classSpec/tei:gloss"/>
Stylesheet location teiodds.xsl
Template tei:macroSpec/tei:gloss
Namespace No namespace
Match tei:macroSpec/tei:gloss
Mode #default
Import precedence 2
Source
<xsl:template match="tei:macroSpec/tei:gloss"/>
Stylesheet location teiodds.xsl
Template tei:index
Namespace No namespace
Match tei:index
Mode #default
References
Template makeAnchor
Import precedence 2
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 teiodds.xsl
Template tei:macroSpectangle
Namespace No namespace
Match tei:macroSpec
Mode tangle
References
Variables generalPrefix; parameterize
Parameter verbose
Template bitOut
Parameters
QName Namespace
filename No namespace
Import precedence 2
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:content/rng:group/rng:ref">
          <xsl:apply-templates select="tei:content/rng:*|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/rng:*"/>
          </choice>
        </xsl:when>
        <xsl:otherwise>
          <xsl:apply-templates select="tei:content/rng:*|tei:content/processing-instruction()"/>
        </xsl:otherwise>
      </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="@ident="TEI.singleBase""/>
    <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="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="bitOut">
        <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>
          </Wrapper>
        </xsl:with-param>
      </xsl:call-template>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location teiodds.xsl
Template tei:macroSpec/@ident
Namespace No namespace
Match tei:macroSpec/@ident
Mode #default
Import precedence 2
Source
<xsl:template match="tei:macroSpec/@ident"/>
Stylesheet location teiodds.xsl
Template tei:macroSpec/content/rng:*
Namespace No namespace
Match tei:macroSpec/content/rng:*
Mode #default
Import precedence 2
Source
<xsl:template match="tei:macroSpec/content/rng:*"/>
Stylesheet location teiodds.xsl
Template tei:memberOftangleModel
Namespace No namespace
Match tei:memberOf
Mode tangleModel
Import precedence 2
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 teiodds.xsl
Template tei:moduleReftangle
Namespace No namespace
Match tei:moduleRef
Mode tangle
References
Parameters schemaBaseURL; verbose
Template bitOut
Variable parameterize
Import precedence 2
Source
<xsl:template match="tei:moduleRef" mode="tangle">
  <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="bitOut">
    <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="document(@url)/rng:grammar">
                <xsl:apply-templates mode="expandRNG" select="*|@*|text()|comment()|processing-instruction()"/>
              </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 teiodds.xsl
Template @*|text()|comment()|processing-instructionexpandRNG
Namespace No namespace
Match @*|text()|comment()|processing-instruction
Mode expandRNG
Import precedence 2
Source
<xsl:template match="@*|text()|comment()|processing-instruction" mode="expandRNG">
  <xsl:copy-of select="."/>
</xsl:template>
Stylesheet location teiodds.xsl
Template *expandRNG
Namespace No namespace
Match *
Mode expandRNG
References
Parameter verbose
Import precedence 2
Source
<xsl:template match="*" mode="expandRNG">
  <xsl:choose>
    <xsl:when test="local-name(.)='start'"/>
    <xsl:when test="local-name(.)='include'">
      <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="document(@href)/rng:grammar">
          <xsl:apply-templates mode="expandRNG" select="*|@*|text()|comment()|processing-instruction()"/>
        </xsl:for-each>
      </div>
      <xsl:comment>End of import of
        <xsl:value-of select="@href"/>
      </xsl:comment>
    </xsl:when>
    <xsl:otherwise>
      <xsl:copy>
        <xsl:apply-templates mode="expandRNG" select="*|@*|text()|comment()|processing-instruction()"/>
      </xsl:copy>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location teiodds.xsl
Template tei:remarkstangle
Namespace No namespace
Match tei:remarks
Mode tangle
Import precedence 2
Source
<xsl:template match="tei:remarks" mode="tangle"/>
Stylesheet location teiodds.xsl
Template tei:specGrpok
Namespace No namespace
Match tei:specGrp
Mode ok
References
Parameter verbose
Template processSchemaFragment
Parameters
QName Namespace
filename No namespace
Import precedence 2
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 teiodds.xsl
Template tei:tag
Namespace No namespace
Match tei:tag
Mode #default
References
Template typewriter
Import precedence 2
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 teiodds.xsl
Template compositeNumber
Namespace No namespace
Import precedence 2
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 teiodds.xsl
Template copyright
Namespace No namespace
Used by
Import precedence 2
Source
<xsl:template name="copyright">
  <xsl:apply-templates mode="copyrighttext" select="/tei:TEI/tei:teiHeader/tei:fileDesc/tei:publicationStmt/tei:availability"/>
</xsl:template>
Stylesheet location teiodds.xsl
Template tei:pcopyrighttext
Namespace No namespace
Match tei:p
Mode copyrighttext
Import precedence 2
Source
<xsl:template match="tei:p" mode="copyrighttext">
  <xsl:text>
</xsl:text>
  <xsl:apply-templates/>
</xsl:template>
Stylesheet location teiodds.xsl
Template tei:listcopyrighttext
Namespace No namespace
Match tei:list
Mode copyrighttext
Import precedence 2
Source
<xsl:template match="tei:list" mode="copyrighttext">
  <xsl:text>
</xsl:text>
  <xsl:apply-templates/>
</xsl:template>
Stylesheet location teiodds.xsl
Template tei:itemcopyrighttext
Namespace No namespace
Match tei:item
Mode copyrighttext
Import precedence 2
Source
<xsl:template match="tei:item" mode="copyrighttext">
  <xsl:text>
 *</xsl:text>
  <xsl:apply-templates/>
</xsl:template>
Stylesheet location teiodds.xsl
Template attributeData
Namespace No namespace
Used by
References
Variable oddmode
Template makeDescription
Import precedence 2
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:call-template name="makeDescription">
                <xsl:with-param name="includeValList">true</xsl:with-param>
                <xsl:with-param name="coded">false</xsl:with-param>
              </xsl:call-template>
            </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:call-template name="makeDescription">
                <xsl:with-param name="includeValList">true</xsl:with-param>
                <xsl:with-param name="coded">false</xsl:with-param>
              </xsl:call-template>
            </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:otherwise>
            <xsl:apply-templates select="tei:datatype/rng:*"/>
          </xsl:otherwise>
        </xsl:choose>
      </choice>
    </xsl:when>
    <xsl:when test="tei:datatype/rng:*">
      <xsl:apply-templates select="tei:datatype/rng:*"/>
    </xsl:when>
    <xsl:otherwise>
      <text xmlns="http://relaxng.org/ns/structure/1.0"/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location teiodds.xsl
Template makeSimpleAttribute
Namespace No namespace
Used by
Template makeAnAttribute
References
Variable oddmode
Templates attributeData; makeDescription
Import precedence 2
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:call-template name="makeDescription">
          <xsl:with-param name="includeValList">true</xsl:with-param>
          <xsl:with-param name="coded">false</xsl:with-param>
        </xsl:call-template>
      </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: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>
        </list>
      </xsl:otherwise>
    </xsl:choose>
  </attribute>
</xsl:template>
Stylesheet location teiodds.xsl
Template makeAnAttribute
Namespace No namespace
Used by
Template tei:attDeftangle
References
Import precedence 2
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 teiodds.xsl
Template generateClassParents
Namespace No namespace
References
Key CLASSES
Template linkTogether
Import precedence 2
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 teiodds.xsl
Template linkStyle
Namespace No namespace
Import precedence 2
Source
<xsl:template name="linkStyle"/>
Stylesheet location teiodds.xsl
Template getSpecURL
Namespace No namespace
Used by
Template linkTogether
References
Key IDS
Parameters
QName Namespace
name No namespace
type No namespace
Import precedence 2
Source
<xsl:template name="getSpecURL">
  <xsl:param name="name"/>
  <xsl:param name="type"/>
  <xsl:choose>
    <xsl:when test="$type='macro'">
      <xsl:for-each select="key('IDS','REFENT')">
        <xsl:apply-templates mode="generateLink" select="."/>
      </xsl:for-each>
    </xsl:when>
    <xsl:when test="$type='element'">
      <xsl:for-each select="key('IDS','REFTAG')">
        <xsl:apply-templates mode="generateLink" select="."/>
      </xsl:for-each>
    </xsl:when>
    <xsl:when test="$type='class'">
      <xsl:for-each select="key('IDS','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 teiodds.xsl
Template linkTogether
Namespace No namespace
Used by
References
Templates generateDoc; getSpecURL
Key IDENTS
Variable oddmode
Parameters STDOUT; splitLevel
Parameters
QName Namespace
class No namespace
name No namespace
reftext No namespace
Import precedence 2
Source
<xsl:template name="linkTogether">
  <xsl:param name="name"/>
  <xsl:param name="reftext"/>
  <xsl:param name="class">link_odd</xsl:param>
  <xsl:variable name="documentationLanguage">
    <xsl:call-template name="generateDoc"/>
  </xsl:variable>
  <xsl:variable name="partialname">
    <xsl:choose>
      <xsl:when test="contains($name,'_')">
        <xsl:value-of select="substring-before($name,'_')"/>
      </xsl:when>
      <xsl:otherwise>
        <xsl:value-of select="$name"/>
      </xsl:otherwise>
    </xsl:choose>
  </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: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}" 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 teiodds.xsl
Template processSchemaFragment
Namespace No namespace
Used by
References
Template sectionNumber
Parameters
QName Namespace
filename No namespace
Import precedence 2
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 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 2
Source
<xsl:template name="make-ns-declaration">
  <xsl:param name="is-default"/>
  <xsl:param name="prefix"/>
  <xsl:param name="uri"/>
</xsl:template>
Stylesheet location teiodds.xsl
Template inhnamespace
Namespace No namespace
Used by
Import precedence 2
Source
<xsl:template name="inhnamespace"/>
Stylesheet location teiodds.xsl
Template tei:constraintSpec/tei:desc
Namespace No namespace
Match tei:constraintSpec/tei:desc
Mode #default
Import precedence 2
Source
<xsl:template match="tei:constraintSpec/tei:desc"/>
Stylesheet location teiodds.xsl
Template tei:constraintSpec/tei:gloss
Namespace No namespace
Match tei:constraintSpec/tei:gloss
Mode #default
Import precedence 2
Source
<xsl:template match="tei:constraintSpec/tei:gloss"/>
Stylesheet location teiodds.xsl
Template tei:constraintSpec/tei:equiv
Namespace No namespace
Match tei:constraintSpec/tei:equiv
Mode #default
Import precedence 2
Source
<xsl:template match="tei:constraintSpec/tei:equiv"/>
Stylesheet location teiodds.xsl
Template tei:constraintSpec
Namespace No namespace
Match tei:constraintSpec
Mode #default
Import precedence 2
Source
<xsl:template match="tei:constraintSpec"/>
Stylesheet location teiodds.xsl
Template tei:altIdent
Namespace No namespace
Match tei:altIdent
Mode #default
Import precedence 2
Source
<xsl:template match="tei:altIdent"/>
Stylesheet location teiodds.xsl
Template a:*
Namespace No namespace
Match a:*
Mode #default
Import precedence 2
Source
<xsl:template match="a:*">
  <xsl:apply-templates mode="justcopy" select="."/>
</xsl:template>
Stylesheet location teiodds.xsl
Template tei:classSpecprocessDefaultAtts
Namespace No namespace
Match tei:classSpec
Mode processDefaultAtts
References
Parameter verbose
Template bitOut
Variable generalPrefix
Import precedence 2
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="bitOut">
    <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 teiodds.xsl
Template tei:schemaSpec
Documentation

Description

Process element schemaSpec
Namespace No namespace
Match tei:schemaSpec
Mode #default
References
Overriding
Template tei:schemaSpec
Import precedence 2
Source
<xsl:template match="tei:schemaSpec">
  <xsl:call-template name="processSchemaFragment"/>
</xsl:template>
Stylesheet location teiodds.xsl
Template typewriter
Namespace No namespace
Overriding
Template typewriter
Parameters
QName Namespace
text No namespace
Import precedence 2
Source
<xsl:template name="typewriter">
  <xsl:param name="text"/>
</xsl:template>
Stylesheet location teiodds.xsl
Template refdoc
Namespace No namespace
Overriding
Template refdoc
Import precedence 2
Source
<xsl:template name="refdoc"/>
Stylesheet location teiodds.xsl
Template generateOutput
Namespace No namespace
Used by
References
Parameter outputDir
Parameters
QName Namespace
body No namespace
method No namespace
suffix No namespace
Import precedence 2
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 href="{$outputDir}/{@ident}{$suffix}" indent="yes" method="{$method}">
        <xsl:copy-of select="$body"/>
      </xsl:result-document>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location teiodds.xsl
Template showDate
Namespace No namespace
Used by
Import precedence 2
Source
<xsl:template name="showDate">
  <xsl:value-of select="format-dateTime(current-dateTime(),'[Y]-[M02]-[D02]T[H02]:[m02]:[s02]Z')"/>
</xsl:template>
Stylesheet location teiodds.xsl
Template makeDescription
Namespace No namespace
Used by
References
Parameters
QName Namespace
coded No namespace
includeValList No namespace
Import precedence 2
Source
<xsl:template name="makeDescription">
  <xsl:param name="includeValList">false</xsl:param>
  <xsl:param name="coded">true</xsl:param>
  <xsl:variable name="documentationLanguage">
    <xsl:call-template name="generateDoc"/>
  </xsl:variable>
  <xsl:variable name="langs">
    <xsl:value-of select="concat(normalize-space($documentationLanguage),' ')"/>
  </xsl:variable>
  <xsl:variable name="firstLang">
    <xsl:value-of select="substring-before($langs,' ')"/>
  </xsl:variable>
  <!-- first the gloss -->
  <xsl:call-template name="makeGloss">
    <xsl:with-param name="langs" select="$langs"/>
  </xsl:call-template>
  <!-- now the description -->
  <xsl:choose>
    <xsl:when test="not(tei:desc)">
    </xsl:when>
    <xsl:when test="count(tei:desc)=1">
      <xsl:for-each select="tei:desc">
        <xsl:apply-templates select="." mode="inLanguage"/>
      </xsl:for-each>
    </xsl:when>
    <xsl:when test="tei:desc[@xml:lang=$firstLang]">
      <xsl:for-each select="tei:desc[@xml:lang=$firstLang]">
        <xsl:apply-templates select="." mode="inLanguage"/>
      </xsl:for-each>
    </xsl:when>
    <xsl:otherwise>
      <xsl:variable name="D">
        <xsl:for-each select="tei:desc">
          <xsl:variable name="currentLang">
            <xsl:call-template name="findLanguage"/>
          </xsl:variable>
          <xsl:if test="contains($langs,concat($currentLang,' '))">
            <xsl:apply-templates select="." mode="inLanguage"/>
          </xsl:if>
        </xsl:for-each>
      </xsl:variable>
      <xsl:choose>
        <xsl:when test="$D='' and tei:desc[not(@xml:lang)]">
          <xsl:for-each select="tei:desc[not(@xml:lang)]">
            <xsl:apply-templates select="." mode="inLanguage"/>
          </xsl:for-each>
        </xsl:when>
        <xsl:when test="$coded='false'">
          <xsl:value-of select="$D"/>
        </xsl:when>
        <xsl:otherwise>
          <xsl:copy-of select="$D"/>
        </xsl:otherwise>
      </xsl:choose>
    </xsl:otherwise>
  </xsl:choose>
  <xsl:choose>
    <xsl:when test="$includeValList='false'"/>
    <xsl:when test="tei:valList[@type='open']">
      <xsl:text>
</xsl:text>
      <xsl:call-template name="i18n">
        <xsl:with-param name="word">
          <xsl:text>Sample values include</xsl:text>
        </xsl:with-param>
      </xsl:call-template>
      <xsl:text>: </xsl:text>
      <xsl:for-each select="tei:valList/tei:valItem">
        <xsl:number/>
        <xsl:text>] </xsl:text>
        <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>
        <xsl:variable name="documentationLanguage">
          <xsl:call-template name="generateDoc"/>
        </xsl:variable>
        <xsl:variable name="langs">
          <xsl:value-of select="concat(normalize-space($documentationLanguage),' ')"/>
        </xsl:variable>
        <xsl:variable name="firstLang">
          <xsl:value-of select="substring-before($langs,' ')"/>
        </xsl:variable>
        <xsl:call-template name="makeGloss">
          <xsl:with-param name="langs" select="$langs"/>
        </xsl:call-template>
        <xsl:if test="following-sibling::tei:valItem">
          <xsl:text>; </xsl:text>
        </xsl:if>
      </xsl:for-each>
    </xsl:when>
    <xsl:when test="tei:valList[@type='semi']">
      <xsl:text>
</xsl:text>
      <xsl:call-template name="i18n">
        <xsl:with-param name="word">
          <xsl:text>Suggested values include</xsl:text>
        </xsl:with-param>
      </xsl:call-template>
      <xsl:text>: </xsl:text>
      <xsl:for-each select="tei:valList/tei:valItem">
        <xsl:number/>
        <xsl:text>] </xsl:text>
        <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>
        <xsl:variable name="documentationLanguage">
          <xsl:call-template name="generateDoc"/>
        </xsl:variable>
        <xsl:variable name="langs">
          <xsl:value-of select="concat(normalize-space($documentationLanguage),' ')"/>
        </xsl:variable>
        <xsl:variable name="firstLang">
          <xsl:value-of select="substring-before($langs,' ')"/>
        </xsl:variable>
        <xsl:call-template name="makeGloss">
          <xsl:with-param name="langs" select="$langs"/>
        </xsl:call-template>
        <xsl:if test="following-sibling::tei:valItem">
          <xsl:text>; </xsl:text>
        </xsl:if>
      </xsl:for-each>
    </xsl:when>
  </xsl:choose>
</xsl:template>
Stylesheet location teiodds.xsl
Template makeGloss
Namespace No namespace
Used by
Template makeDescription
References
Template findLanguage
Parameters
QName Namespace
langs No namespace
Import precedence 2
Source
<xsl:template name="makeGloss">
  <xsl:param name="langs"/>
  <xsl:variable name="firstLang">
    <xsl:value-of select="substring-before($langs,' ')"/>
  </xsl:variable>
  <xsl:choose>
    <xsl:when test="not(tei:gloss)"/>
    <xsl:when test="string-length(tei:gloss[1])=0"/>
    <xsl:when test="count(tei:gloss)=1 and not(tei:gloss[@xml:lang])">
      <xsl:text> (</xsl:text>
      <xsl:apply-templates select="tei:gloss" mode="inLanguage"/>
      <xsl:text>) </xsl:text>
    </xsl:when>
    <xsl:when test="tei:gloss[@xml:lang=$firstLang]">
      <xsl:if test="not(tei:gloss[@xml:lang=$firstLang]='')">
        <xsl:text> (</xsl:text>
        <xsl:apply-templates select="tei:gloss[@xml:lang=$firstLang]" mode="inLanguage"/>
        <xsl:text>) </xsl:text>
      </xsl:if>
    </xsl:when>
    <xsl:otherwise>
      <xsl:variable name="G">
        <xsl:for-each select="tei:gloss">
          <xsl:variable name="currentLang">
            <xsl:call-template name="findLanguage"/>
          </xsl:variable>
          <xsl:if test="contains($langs,concat($currentLang,' '))">
            <xsl:text>(</xsl:text>
            <xsl:apply-templates select="." mode="inLanguage"/>
            <xsl:text>) </xsl:text>
          </xsl:if>
        </xsl:for-each>
      </xsl:variable>
      <xsl:choose>
        <xsl:when test="$G='' and tei:gloss[not(@xml:lang)]">
          <xsl:text> (</xsl:text>
          <xsl:apply-templates select="tei:gloss[not(@xml:lang)]" mode="inLanguage"/>
          <xsl:text>) </xsl:text>
        </xsl:when>
        <xsl:otherwise>
          <xsl:copy-of select="$G"/>
        </xsl:otherwise>
      </xsl:choose>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location teiodds.xsl
Template findLanguage
Namespace No namespace
Used by
Import precedence 2
Source
<xsl:template name="findLanguage">
  <xsl:choose>
    <xsl:when test="@xml:lang">
      <xsl:value-of select="@xml:lang"/>
    </xsl:when>
    <xsl:when test="ancestor::tei:*[@xml:lang]">
      <xsl:value-of select="(ancestor::tei:*[@xml:lang])[1]/@xml:lang"/>
    </xsl:when>
    <xsl:otherwise>
      <xsl:text>en</xsl:text>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location teiodds.xsl
Template sectionNumber
Namespace No namespace
Used by
Import precedence 2
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 teiodds.xsl
Template *expandSpecs
Namespace No namespace
Match *
Mode expandSpecs
Import precedence 2
Source
<xsl:template match="*" mode="expandSpecs">
  <xsl:apply-templates mode="justcopy" select="."/>
</xsl:template>
Stylesheet location teiodds.xsl
Template tei:specGrpRefexpandSpecs
Namespace No namespace
Match tei:specGrpRef
Mode expandSpecs
References
Key IDS
Import precedence 2
Source
<xsl:template match="tei:specGrpRef" mode="expandSpecs">
  <xsl:choose>
    <xsl:when test="starts-with(@target,'#')">
      <xsl:for-each select="key('IDS',substring-after(@target,'#'))">
        <xsl:apply-templates mode="expandSpecs"/>
      </xsl:for-each>
    </xsl:when>
    <xsl:otherwise>
      <xsl:for-each select="document(@target)">
        <xsl:apply-templates mode="expandSpecs"/>
      </xsl:for-each>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location teiodds.xsl
Template tei:desc/tei:list/tei:item
Documentation

Description

 list inside <desc> 
Namespace No namespace
Match tei:desc/tei:list/tei:item
Mode #default
Import precedence 2
Source
<xsl:template match="tei:desc/tei:list/tei:item">
  <xsl:text> * </xsl:text>
  <xsl:apply-templates/>
</xsl:template>
Stylesheet location teiodds.xsl
Template makeTEIVersion
Namespace No namespace
Used by
Import precedence 2
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']"/>
      <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>
Edition: </xsl:text>
      <xsl:value-of select="$TEIVersion"/>
      <xsl:text>
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 teiodds.xsl
Template tei:glossinLanguage
Namespace No namespace
Match tei:gloss
Mode inLanguage
Import precedence 2
Source
<xsl:template match="tei:gloss" mode="inLanguage">
  <xsl:value-of select="."/>
</xsl:template>
Stylesheet location teiodds.xsl
Template tei:descinLanguage
Namespace No namespace
Match tei:desc
Mode inLanguage
Import precedence 2
Source
<xsl:template match="tei:desc" mode="inLanguage">
  <xsl:apply-templates/>
</xsl:template>
Stylesheet location teiodds.xsl
Template processSchematron
Namespace No namespace
Used by
Templates s:*; sch:*
Import precedence 2
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="ancestor::tei:elementSpec/@ident"/>
          <xsl:text>-constraint-</xsl:text>
          <xsl:value-of select="ancestor::tei:constraintSpec/@ident"/>
          <xsl:if test="count(../s:report|s:assert) >1">
            <xsl:number/>
          </xsl:if>
        </xsl:attribute>
        <rule>
          <xsl:attribute name="context">
            <xsl:text>tei:</xsl:text>
            <xsl:value-of select="ancestor::tei:elementSpec/@ident"/>
          </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 name="{ancestor::tei:constraintSpec/parent::*/@ident}-constraint-{ancestor::tei:constraintSpec/@ident}" xmlns="http://www.ascc.net/xml/schematron">
        <xsl:apply-templates mode="justcopy" select="."/>
      </pattern>
    </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" id="{ancestor::tei:constraintSpec/parent::*/@ident}-constraint-{ancestor::tei:constraintSpec/@ident}">
        <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">
          <xsl:value-of select="ancestor::tei:elementSpec/@ident"/>
          <xsl:text>-constraint-</xsl:text>
          <xsl:value-of select="../../@ident"/>
          <xsl:if test="count(../sch:report|../sch:assert) >1">
            <xsl:number/>
          </xsl:if>
        </xsl:attribute>
        <rule>
          <xsl:attribute name="context">
            <xsl:text>tei:</xsl:text>
            <xsl:value-of select="ancestor::tei:elementSpec/@ident"/>
          </xsl:attribute>
          <xsl:apply-templates mode="justcopy" select="."/>
        </rule>
      </pattern>
    </xsl:when>
  </xsl:choose>
</xsl:template>
Stylesheet location teiodds.xsl
Template bitOut
Namespace No namespace
Overriding
Template bitOut
Parameters
QName Namespace
content No namespace
element No namespace
grammar No namespace
Import precedence 2
Source
<xsl:template name="bitOut">
  <xsl:param name="grammar"/>
  <xsl:param name="element"/>
  <xsl:param name="content"/>
</xsl:template>
Stylesheet location teiodds.xsl
Template makeAnchor
Namespace No namespace
Overriding
Template makeAnchor
Parameters
QName Namespace
name No namespace
Import precedence 2
Source
<xsl:template name="makeAnchor">
  <xsl:param name="name"/>
</xsl:template>
Stylesheet location teiodds.xsl
Template makeLink
Namespace No namespace
Overriding
Parameters
Import precedence 2
Source
Stylesheet location teiodds.xsl
Template @*|text()justcopy
Namespace No namespace
Match @*|text()
Mode justcopy
Import precedence 2
Source
<xsl:template match="@*|text()" mode="justcopy">
  <xsl:copy-of select="."/>
</xsl:template>
Stylesheet location teiodds.xsl
Template processing-instruction()justcopy
Namespace No namespace
Match processing-instruction()
Mode justcopy
Import precedence 2
Source
<xsl:template match="processing-instruction()" mode="justcopy">
  <xsl:copy-of select="."/>
</xsl:template>
Stylesheet location teiodds.xsl
Template *justcopy
Namespace No namespace
Match *
Mode justcopy
Import precedence 2
Source
<xsl:template match="*" mode="justcopy">
  <xsl:copy>
    <xsl:apply-templates select="*|@*|processing-instruction()|text()" mode="justcopy"/>
  </xsl:copy>
</xsl:template>
Stylesheet location teiodds.xsl
Parameter idPrefix
Namespace No namespace
Source
<xsl:param name="idPrefix"/>
Stylesheet location teiodds.xsl
Parameter oddmode
Namespace No namespace
Overriding
Variable oddmode
Source
<xsl:param name="oddmode">tei</xsl:param>
Stylesheet location teiodds.xsl
Parameter STDOUT
Namespace No namespace
Used by
Template linkTogether
Source
<xsl:param name="STDOUT">true</xsl:param>
Stylesheet location teiodds.xsl
Parameter outputSuffix
Namespace No namespace
Source
<xsl:param name="outputSuffix">.html</xsl:param>
Stylesheet location teiodds.xsl
Parameter selectedSchema
Namespace No namespace
Used by
Variable whichSchemaSpec
Source
<xsl:param name="selectedSchema"/>
Stylesheet location teiodds.xsl
Parameter outputDir
Namespace No namespace
Overriding
Parameter outputDir
Source
<xsl:param name="outputDir"/>
Stylesheet location teiodds.xsl
Parameter splitLevel
Namespace No namespace
Overriding
Parameter splitLevel
Source
<xsl:param name="splitLevel">-1</xsl:param>
Stylesheet location teiodds.xsl
Parameter localsource
Namespace No namespace
Source
<xsl:param name="localsource"/>
Stylesheet location teiodds.xsl
Parameter lang
Namespace No namespace
Used by
Variable targetLanguage
Supersedes
Parameter lang
Source
<xsl:param name="lang"/>
Stylesheet location teiodds.xsl
Parameter doclang
Namespace No namespace
Used by
Template generateDoc
Supersedes
Parameter doclang
Source
<xsl:param name="doclang"/>
Stylesheet location teiodds.xsl
Parameter patternPrefix
Namespace No namespace
Used by
Variable generalPrefix
Source
<xsl:param name="patternPrefix"/>
Stylesheet location teiodds.xsl
Parameter TEIC
Namespace No namespace
Used by
Source
<xsl:param name="TEIC">true</xsl:param>
Stylesheet location teiodds.xsl
Parameter lookupDatabase
Namespace No namespace
Source
<xsl:param name="lookupDatabase">false</xsl:param>
Stylesheet location teiodds.xsl
Parameter TEISERVER
Namespace No namespace
Source
<xsl:param name="TEISERVER">http://tei.oucs.ox.ac.uk/Query/</xsl:param>
Stylesheet location teiodds.xsl
Parameter verbose
Namespace No namespace
Overriding
Parameter verbose
Source
<xsl:param name="verbose">false</xsl:param>
Stylesheet location teiodds.xsl
Parameter schemaBaseURL
Namespace No namespace
Used by
Source
<xsl:param name="schemaBaseURL">http://localhost/schema/relaxng/</xsl:param>
Stylesheet location teiodds.xsl
Variable parameterize
Namespace No namespace
Used by
References
Key SCHEMASPECS
Parameter TEIC
Source
<xsl:variable name="parameterize">
  <xsl:choose>
    <xsl:when test="key('SCHEMASPECS',1)">false</xsl:when>
    <xsl:when test="$TEIC='false'">true</xsl:when>
    <xsl:otherwise>true</xsl:otherwise>
  </xsl:choose>
</xsl:variable>
Stylesheet location teiodds.xsl
Variable whichSchemaSpec
Namespace No namespace
Used by
Templates generateDoc; /
Variables generalPrefix; targetLanguage
References
Parameter selectedSchema
Key SCHEMASPECS
Source
<xsl:variable name="whichSchemaSpec">
  <xsl:choose>
    <xsl:when test="$selectedSchema">
      <xsl:value-of select="$selectedSchema"/>
    </xsl:when>
    <xsl:otherwise>
      <xsl:value-of select="key('SCHEMASPECS',1)[1]/@ident"/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:variable>
Stylesheet location 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 teiodds.xsl
Variable targetLanguage
Namespace No namespace
Used by
Template tei:schemaSpec
References
Parameter lang
Variable whichSchemaSpec
Key LISTSCHEMASPECS
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 teiodds.xsl
Key LOCALIDENTS
Namespace No namespace
Match tei:*
Use @ident
Source
<xsl:key match="tei:*" name="LOCALIDENTS" use="@ident"/>
Stylesheet location teiodds.xsl
Key MACROS
Namespace No namespace
Match tei:macroSpec
Use @ident
Source
<xsl:key match="tei:macroSpec" name="MACROS" use="@ident"/>
Stylesheet location teiodds.xsl
Key ELEMENTS
Namespace No namespace
Match tei:elementSpec
Use @ident
Source
<xsl:key match="tei:elementSpec" name="ELEMENTS" use="@ident"/>
Stylesheet location 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 teiodds.xsl
Key REFS
Namespace No namespace
Match rng:ref[contains(@name,'_')]
Use substring-before(@name,'_')
Used by
Template findUses
Source
<xsl:key match="rng:ref[contains(@name,'_')]" name="REFS" use="substring-before(@name,'_')"/>
Stylesheet location teiodds.xsl
Key ATTREFS-ELEMENT
Namespace No namespace
Match tei:elementSpec/tei:attList/tei:attList/tei:attDef/tei:datatype/rng:ref
Use @name
Source
<xsl:key match="tei:elementSpec/tei:attList/tei:attList/tei:attDef/tei:datatype/rng:ref" name="ATTREFS-ELEMENT" use="@name"/>
Stylesheet location teiodds.xsl
Key ATTREFS-CLASS
Namespace No namespace
Match tei:classSpec/tei:attList/tei:attList/tei:attDef/tei:datatype/rng:ref
Use @name
Source
<xsl:key match="tei:classSpec/tei:attList/tei:attList/tei:attDef/tei:datatype/rng:ref" name="ATTREFS-CLASS" use="@name"/>
Stylesheet location teiodds.xsl
Key MACROREFS
Namespace No namespace
Match tei:macroSpec/tei:content//rng:ref
Use @name
Source
<xsl:key match="tei:macroSpec/tei:content//rng:ref" name="MACROREFS" use="@name"/>
Stylesheet location 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 teiodds.xsl
Key IDENTS
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="IDENTS" use="@ident"/>
Stylesheet location teiodds.xsl
Key IDS
Namespace No namespace
Match tei:*[@xml:id]
Use @xml:id
Used by
Source
<xsl:key match="tei:*[@xml:id]" name="IDS" use="@xml:id"/>
Stylesheet location 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 teiodds.xsl
Key MACRODOCS
Namespace No namespace
Match tei:macroSpec
Use 1
Source
<xsl:key match="tei:macroSpec" name="MACRODOCS" use="1"/>
Stylesheet location teiodds.xsl
Key ATTDOCS
Namespace No namespace
Match tei:attDef
Use 1
Source
<xsl:key match="tei:attDef" name="ATTDOCS" use="1"/>
Stylesheet location teiodds.xsl
Key ATTRIBUTES
Namespace No namespace
Match tei:attDef
Use @ident
Source
<xsl:key match="tei:attDef" name="ATTRIBUTES" use="@ident"/>
Stylesheet location 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 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 teiodds.xsl
Key SCHEMASPECS
Namespace No namespace
Match tei:schemaSpec
Use 1
Used by
Template /
Variables parameterize; whichSchemaSpec
Source
<xsl:key match="tei:schemaSpec" name="SCHEMASPECS" use="1"/>
Stylesheet location teiodds.xsl
Key LISTSCHEMASPECS
Namespace No namespace
Match tei:schemaSpec
Use @ident
Used by
Templates generateDoc; /
Variables generalPrefix; targetLanguage
Source
<xsl:key match="tei:schemaSpec" name="LISTSCHEMASPECS" use="@ident"/>
Stylesheet location 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 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 teiodds.xsl
Key ELEMENTDOCS
Namespace No namespace
Match tei:elementSpec
Use 1
Used by
Template NameList
Source
<xsl:key match="tei:elementSpec" name="ELEMENTDOCS" use="1"/>
Stylesheet location teiodds.xsl
Key NameToID
Namespace No namespace
Match tei:*
Use @ident
Source
<xsl:key match="tei:*" name="NameToID" use="@ident"/>
Stylesheet location teiodds.xsl
Key ElementModule
Namespace No namespace
Match tei:elementSpec
Use @module
Used by
Template moduleSpec-body
Source
<xsl:key match="tei:elementSpec" name="ElementModule" use="@module"/>
Stylesheet location teiodds.xsl
Key ClassModule
Namespace No namespace
Match tei:classSpec
Use @module
Used by
Template moduleSpec-body
Source
<xsl:key match="tei:classSpec" name="ClassModule" use="@module"/>
Stylesheet location teiodds.xsl
Key MacroModule
Namespace No namespace
Match tei:macroSpec
Use @module
Used by
Template moduleSpec-body
Source
<xsl:key match="tei:macroSpec" name="MacroModule" use="@module"/>
Stylesheet location teiodds.xsl
Key Modules
Namespace No namespace
Match tei:moduleSpec
Use 1
Used by
Template /
Source
<xsl:key match="tei:moduleSpec" name="Modules" use="1"/>
Stylesheet location teiodds.xsl
Key MODULES
Namespace No namespace
Match tei:moduleSpec
Use @ident
Source
<xsl:key match="tei:moduleSpec" name="MODULES" use="@ident"/>
Stylesheet location 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 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 teiodds.xsl
Key PredeclareMacrosModule
Namespace No namespace
Match tei:macroSpec[@predeclare='true']
Use @module
Used by
Template moduleSpec-body
Source
<xsl:key match="tei:macroSpec[@predeclare='true']" name="PredeclareMacrosModule" use="@module"/>
Stylesheet location teiodds.xsl
Key PredeclareAllMacros
Namespace No namespace
Match tei:macroSpec[@predeclare='true']
Use 1
Used by
Template moduleSpec-body
Source
<xsl:key match="tei:macroSpec[@predeclare='true']" name="PredeclareAllMacros" use="1"/>
Stylesheet location teiodds.xsl
Key ELEMENTPARENTS
Namespace No namespace
Match Contains
Use .
Source
<xsl:key match="Contains" name="ELEMENTPARENTS" use="."/>
Stylesheet location teiodds.xsl