Showing:

Documentation
Parameters
Used by
References
Supersedes
Imported modules
Source
Main stylesheet odd2relax.xsl
Documentation

Description

TEI stylesheet for making Relax NG schema from ODD

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: odd2relax.xsl 8012 2010-08-30 22:45:48Z rahtz $

Copyright: 2008, TEI Consortium

Imported modules
Stylesheet version 2.0
Template makeAnchor
Namespace No namespace
Used by
Template tei:index
Supersedes
Template makeAnchor
Parameters
QName Namespace
name No namespace
Import precedence 3
Source
<xsl:template name="makeAnchor">
  <xsl:param name="name"/>
</xsl:template>
Stylesheet location odd2relax.xsl
Template makeLink
Namespace No namespace
Supersedes
Parameters
Import precedence 3
Source
Stylesheet location odd2relax.xsl
Template tei:moduleSpec[@type='decls']
Namespace No namespace
Match tei:moduleSpec[@type='decls']
Mode #default
Import precedence 3
Source
<xsl:template match="tei:moduleSpec[@type='decls']"/>
Stylesheet location odd2relax.xsl
Template /
Namespace No namespace
Match /
Mode #default
References
Import precedence 3
Source
<xsl:template match="/">
  <xsl:choose>
    <xsl:when test="key('SCHEMASPECS',1)">
      <xsl:apply-templates select="key('LISTSCHEMASPECS',$whichSchemaSpec)"/>
    </xsl:when>
    <xsl:otherwise>
      <xsl:apply-templates select="key('Modules',1)"/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location odd2relax.xsl
Template tei:schemaSpec
Namespace No namespace
Match tei:schemaSpec
Mode #default
References
Supersedes
Template tei:schemaSpec
Import precedence 3
Source
<xsl:template match="tei:schemaSpec">
  <xsl:variable name="documentationLanguage">
    <xsl:call-template name="generateDoc"/>
  </xsl:variable>
  <xsl:if test="$verbose='true'">
    <xsl:message>
      <xsl:text>I18N setup: Pattern prefix: </xsl:text>
      <xsl:value-of select="$generalPrefix"/>
      <xsl:text>. Target  language: </xsl:text>
      <xsl:value-of select="$targetLanguage"/>
      <xsl:text>. Documentation language: </xsl:text>
      <xsl:value-of select="$documentationLanguage"/>
    </xsl:message>
  </xsl:if>
  <xsl:variable name="filename" select="@ident"/>
  <xsl:if test="$verbose='true'">
    <xsl:message>process schemaSpec [
      <xsl:value-of select="@ident"/>]</xsl:message>
  </xsl:if>
  <xsl:call-template name="generateOutput">
    <xsl:with-param name="method">xml</xsl:with-param>
    <xsl:with-param name="suffix">.rng</xsl:with-param>
    <xsl:with-param name="body">
      <grammar xmlns="http://relaxng.org/ns/structure/1.0" xmlns:a="http://relaxng.org/ns/compatibility/annotations/1.0" xmlns:xlink="http://www.w3.org/1999/xlink" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
        <xsl:attribute name="ns">
          <xsl:choose>
            <xsl:when test="@ns">
              <xsl:value-of select="@ns"/>
            </xsl:when>
            <xsl:when test="$TEIC='true'">
              <xsl:text>http://www.tei-c.org/ns/1.0</xsl:text>
            </xsl:when>
          </xsl:choose>
        </xsl:attribute>
        <xsl:comment>
          <xsl:text>
Schema generated from ODD source </xsl:text>
          <xsl:call-template name="showDate"/>
          <xsl:text>. </xsl:text>
          <xsl:call-template name="makeTEIVersion"/>
          <xsl:call-template name="makeDescription"/>
          <xsl:text>
</xsl:text>
        </xsl:comment>
        <xsl:if test="$TEIC='true'">
          <xsl:comment>
            <xsl:call-template name="copyright"/>
          </xsl:comment>
        </xsl:if>
        <xsl:choose>
          <xsl:when test="tei:specGrpRef">
            <xsl:variable name="SPECS">
              <tei:schemaSpec>
                <xsl:copy-of select="@*"/>
                <xsl:apply-templates mode="expandSpecs"/>
              </tei:schemaSpec>
            </xsl:variable>
            <xsl:for-each select="$SPECS/tei:schemaSpec">
              <xsl:call-template name="schemaSpecBody"/>
            </xsl:for-each>
          </xsl:when>
          <xsl:otherwise>
            <xsl:call-template name="schemaSpecBody"/>
          </xsl:otherwise>
        </xsl:choose>
        <xsl:apply-templates select="tei:constraintSpec"/>
      </grammar>
    </xsl:with-param>
  </xsl:call-template>
</xsl:template>
Stylesheet location odd2relax.xsl
Template schemaSpecBody
Namespace No namespace
Used by
Template tei:schemaSpec
References
Parameter verbose
Template startNames
Variable generalPrefix
Key IDENTS
Import precedence 3
Source
<xsl:template name="schemaSpecBody">
  <xsl:variable name="pass1">
    <root>
      <xsl:if test="$verbose='true'">
        <xsl:message>start importing moduleRef components</xsl:message>
      </xsl:if>
      <xsl:apply-templates mode="tangle" select="tei:moduleRef"/>
      <xsl:for-each select="tei:macroSpec">
        <xsl:apply-templates mode="tangle" select="."/>
      </xsl:for-each>
      <xsl:apply-templates mode="tangle" select="tei:elementSpec|tei:classSpec"/>
      <xsl:choose>
        <xsl:when test="@start and @start=''"/>
        <xsl:when test="@start and contains(@start,' ')">
          <start xmlns="http://relaxng.org/ns/structure/1.0">
            <choice>
              <xsl:call-template name="startNames">
                <xsl:with-param name="toks" select="@start"/>
              </xsl:call-template>
            </choice>
          </start>
        </xsl:when>
        <xsl:when test="@start">
          <start xmlns="http://relaxng.org/ns/structure/1.0">
            <ref name="{$generalPrefix}{@start}"/>
          </start>
        </xsl:when>
        <xsl:when test="key('IDENTS','teiCorpus')">
          <start xmlns="http://relaxng.org/ns/structure/1.0">
            <choice>
              <ref name="{$generalPrefix}TEI"/>
              <ref name="{$generalPrefix}teiCorpus"/>
            </choice>
          </start>
        </xsl:when>
        <xsl:otherwise>
          <start xmlns="http://relaxng.org/ns/structure/1.0">
            <ref name="{$generalPrefix}TEI"/>
          </start>
        </xsl:otherwise>
      </xsl:choose>
    </root>
  </xsl:variable>
  <!-- in 2nd and 3rd  passes, throw away any RNG <define> elements
    which do not have a <ref>, any <ref> which has no <define>
    to point to, and any empty <choice> -->
  <xsl:variable name="pass2">
    <xsl:for-each select="$pass1/root">
      <root>
        <xsl:apply-templates mode="pass2"/>
      </root>
    </xsl:for-each>
  </xsl:variable>
  <xsl:for-each select="$pass2/root">
    <xsl:apply-templates mode="pass3"/>
  </xsl:for-each>
</xsl:template>
Stylesheet location odd2relax.xsl
Template startNames
Namespace No namespace
Used by
References
Variable generalPrefix
Template startNames
Parameters
QName Namespace
toks No namespace
Import precedence 3
Source
<xsl:template name="startNames">
  <xsl:param name="toks"/>
  <xsl:if test="not($toks='')">
    <xsl:choose>
      <xsl:when test="contains($toks,' ')">
        <ref xmlns="http://relaxng.org/ns/structure/1.0" name="{$generalPrefix}{substring-before($toks, ' ')}"/>
        <xsl:call-template name="startNames">
          <xsl:with-param name="toks" select="substring-after($toks, ' ')"/>
        </xsl:call-template>
      </xsl:when>
      <xsl:otherwise>
        <ref xmlns="http://relaxng.org/ns/structure/1.0" name="{$generalPrefix}{$toks}"/>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:if>
</xsl:template>
Stylesheet location odd2relax.xsl
Template tei:moduleSpec
Namespace No namespace
Match tei:moduleSpec
Mode #default
References
Import precedence 3
Source
<xsl:template match="tei:moduleSpec">
  <xsl:if test="@ident and not(@mode='change' or @mode='replace' or   @mode='delete')">
    <xsl:choose>
      <xsl:when test="parent::tei:schemaSpec">
        <xsl:call-template name="moduleSpec-body"/>
      </xsl:when>
      <xsl:otherwise>
        <xsl:call-template name="generateOutput">
          <xsl:with-param name="method">xml</xsl:with-param>
          <xsl:with-param name="suffix">.rng</xsl:with-param>
          <xsl:with-param name="body">
            <grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
              <xsl:comment>
                <xsl:text>Schema generated </xsl:text>
                <xsl:call-template name="showDate"/>
                <xsl:call-template name="makeTEIVersion"/>
                <xsl:if test="$TEIC='true'">
                  <xsl:call-template name="copyright"/>
                </xsl:if>
                <xsl:call-template name="makeDescription"/>
              </xsl:comment>
              <xsl:call-template name="moduleSpec-body"/>
            </grammar>
          </xsl:with-param>
        </xsl:call-template>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:if>
</xsl:template>
Stylesheet location odd2relax.xsl
Template moduleSpec-body
Namespace No namespace
Used by
Template tei:moduleSpec
References
Import precedence 3
Source
<xsl:template name="moduleSpec-body">
  <xsl:variable name="filename" select="@ident"/>
  <xsl:comment>Definitions from module
    <xsl:value-of select="@ident"/>
  </xsl:comment>
  <xsl:comment>Set global predeclared macros</xsl:comment>
  <xsl:if test="@type='core'">
    <xsl:call-template name="NameList"/>
    <xsl:for-each select="key('PredeclareAllMacros',1)">
      <define xmlns="http://relaxng.org/ns/structure/1.0" name="{@ident}">
        <choice>
          <notAllowed/>
        </choice>
      </define>
    </xsl:for-each>
  </xsl:if>
  <xsl:comment>Set predeclared macros</xsl:comment>
  <xsl:for-each select="key('PredeclareMacrosModule',@ident)">
    <xsl:apply-templates mode="tangle" select="."/>
  </xsl:for-each>
  <xsl:if test="@type='core'">
    <xsl:call-template name="predeclare-classes"/>
  </xsl:if>
  <xsl:comment>0. predeclared macros</xsl:comment>
  <xsl:for-each select="key('PredeclareMacrosModule',@ident)">
    <xsl:apply-templates mode="tangle" select="."/>
  </xsl:for-each>
  <xsl:comment>1. classes</xsl:comment>
  <xsl:for-each select="key('ClassModule',@ident)">
    <xsl:choose>
      <xsl:when test="@module='core' and @predeclare='true'">
      </xsl:when>
      <xsl:otherwise>
        <xsl:apply-templates mode="tangle" select="."/>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:for-each>
  <xsl:comment>2. elements</xsl:comment>
  <xsl:apply-templates mode="tangle" select="key('ElementModule',@ident)">
    <xsl:sort select="@ident"/>
  </xsl:apply-templates>
  <xsl:comment>3. macros</xsl:comment>
  <xsl:for-each select="key('MacroModule',@ident)">
    <xsl:choose>
      <xsl:when test="@predeclare='true'"/>
      <!--	<xsl:when test="key('PredeclareMacros',@ident)"/>-->
      <xsl:otherwise>
        <xsl:apply-templates mode="tangle" select="."/>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:for-each>
</xsl:template>
Stylesheet location odd2relax.xsl
Template NameList
Namespace No namespace
Used by
Template moduleSpec-body
References
Import precedence 3
Source
<xsl:template name="NameList">
  <!-- walk over all the elementSpec elements and make list of 
       elements -->
  <xsl:for-each select="key('ELEMENTDOCS',1)">
    <xsl:sort select="@ident"/>
    <define xmlns="http://relaxng.org/ns/structure/1.0" combine="choice" name="{@ident}">
      <notAllowed/>
    </define>
  </xsl:for-each>
</xsl:template>
Stylesheet location odd2relax.xsl
Template predeclare-classes
Namespace No namespace
Used by
Template moduleSpec-body
References
Import precedence 3
Source
<xsl:template name="predeclare-classes">
  <xsl:comment>0. predeclared classes</xsl:comment>
  <xsl:for-each select="key('predeclaredClasses',1)">
    <xsl:choose>
      <xsl:when test="@type='model'">
        <xsl:apply-templates mode="processModel" select=".">
          <xsl:with-param name="declare">true</xsl:with-param>
        </xsl:apply-templates>
      </xsl:when>
      <xsl:when test="@type='atts'">
        <xsl:apply-templates mode="processDefaultAtts" select="."/>
      </xsl:when>
    </xsl:choose>
  </xsl:for-each>
</xsl:template>
Stylesheet location odd2relax.xsl
Template tei:specGrpReftangle
Namespace No namespace
Match tei:specGrpRef
Mode tangle
References
Parameter verbose
Key IDS
Parameters
QName Namespace
filename No namespace
Import precedence 3
Source
<xsl:template match="tei:specGrpRef" mode="tangle">
  <xsl:param name="filename"/>
  <xsl:if test="$verbose='true'">
    <xsl:message>specGrpRef to
      <xsl:value-of select="@target"/>
    </xsl:message>
  </xsl:if>
  <xsl:choose>
    <xsl:when test="starts-with(@target,'#')">
      <xsl:for-each select="key('IDS',substring-after(@target,'#'))">
        <xsl:apply-templates mode="ok" select=".">
          <xsl:with-param name="filename" select="$filename"/>
        </xsl:apply-templates>
      </xsl:for-each>
    </xsl:when>
    <xsl:otherwise>
      <xsl:for-each select="document(@target)/tei:specGrp">
        <xsl:apply-templates mode="ok" select=".">
          <xsl:with-param name="filename" select="$filename"/>
        </xsl:apply-templates>
      </xsl:for-each>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location odd2relax.xsl
Template bitOut
Namespace No namespace
Used by
Supersedes
Template bitOut
Parameters
QName Namespace
content No namespace
element No namespace
grammar No namespace
Import precedence 3
Source
<xsl:template name="bitOut">
  <xsl:param name="grammar"/>
  <xsl:param name="element"/>
  <xsl:param name="content"/>
  <xsl:for-each select="$content/Wrapper">
    <xsl:apply-templates mode="justcopy" select="*"/>
  </xsl:for-each>
</xsl:template>
Stylesheet location odd2relax.xsl
Template refdoc
Namespace No namespace
Supersedes
Template refdoc
Import precedence 3
Source
<xsl:template name="refdoc"/>
Stylesheet location odd2relax.xsl
Template typewriter
Namespace No namespace
Used by
Templates tei:code; tei:tag
Supersedes
Template typewriter
Parameters
QName Namespace
text No namespace
Import precedence 3
Source
<xsl:template name="typewriter">
  <xsl:param name="text"/>
</xsl:template>
Stylesheet location odd2relax.xsl
Template processing-instruction()tangle
Namespace No namespace
Match processing-instruction()
Mode tangle
Import precedence 3
Source
<xsl:template match="processing-instruction()" mode="tangle">
  <xsl:copy-of select="."/>
</xsl:template>
Stylesheet location odd2relax.xsl
Template tei:constraintSpec[@scheme='schematron']
Namespace No namespace
Match tei:constraintSpec[@scheme='schematron']
Mode #default
Import precedence 3
Source
<xsl:template match="tei:constraintSpec[@scheme='schematron']">
  <xsl:apply-templates/>
</xsl:template>
Stylesheet location odd2relax.xsl
Template tei:constraintSpec[@scheme='isoschematron']
Namespace No namespace
Match tei:constraintSpec[@scheme='isoschematron']
Mode #default
Import precedence 3
Source
<xsl:template match="tei:constraintSpec[@scheme='isoschematron']">
  <xsl:apply-templates/>
</xsl:template>
Stylesheet location odd2relax.xsl
Template s:*
Namespace No namespace
Match s:*
Mode #default
References
Import precedence 3
Source
<xsl:template match="s:*">
  <xsl:call-template name="processSchematron"/>
</xsl:template>
Stylesheet location odd2relax.xsl
Template sch:*
Namespace No namespace
Match sch:*
Mode #default
References
Import precedence 3
Source
<xsl:template match="sch:*">
  <xsl:call-template name="processSchematron"/>
</xsl:template>
Stylesheet location odd2relax.xsl
Template rng:anyName[parent::rng:define]pass2
Documentation

Description

 pass 2, clean up unused elements 
Namespace No namespace
Match rng:anyName[parent::rng:define]
Mode pass2
References
Key EDEF
Import precedence 3
Source
<xsl:template match="rng:anyName[parent::rng:define]" mode="pass2">
  <zeroOrMore xmlns="http://relaxng.org/ns/structure/1.0">
    <choice>
      <xsl:for-each select="key('EDEF',1)">
        <ref name="{@name}"/>
      </xsl:for-each>
    </choice>
  </zeroOrMore>
</xsl:template>
Stylesheet location odd2relax.xsl
Template processing-instruction()pass2
Namespace No namespace
Match processing-instruction()
Mode pass2
Import precedence 3
Source
<xsl:template match="processing-instruction()" mode="pass2">
  <xsl:copy-of select="."/>
</xsl:template>
Stylesheet location odd2relax.xsl
Template @*|text()|comment()pass2
Namespace No namespace
Match @*|text()|comment()
Mode pass2
Import precedence 3
Source
<xsl:template match="@*|text()|comment()" mode="pass2">
  <xsl:copy-of select="."/>
</xsl:template>
Stylesheet location odd2relax.xsl
Template *pass2
Namespace No namespace
Match *
Mode pass2
Import precedence 3
Source
<xsl:template match="*" mode="pass2">
  <xsl:copy>
    <xsl:apply-templates select="*|@*|processing-instruction()|comment()|text()" mode="pass2"/>
  </xsl:copy>
</xsl:template>
Stylesheet location odd2relax.xsl
Template rng:definepass2
Namespace No namespace
Match rng:define
Mode pass2
References
Key REFED
Parameter verbose
Import precedence 3
Source
<xsl:template match="rng:define" mode="pass2">
  <xsl:choose>
    <xsl:when test="key('REFED',@name)">
      <xsl:copy>
        <xsl:apply-templates select="*|@*|processing-instruction()|comment()|text()" mode="pass2"/>
      </xsl:copy>
    </xsl:when>
    <xsl:otherwise>
      <xsl:if test="$verbose='true'">
        <xsl:message>ZAP definition of unused pattern
          <xsl:value-of select="@name"/>
        </xsl:message>
      </xsl:if>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location odd2relax.xsl
Template rng:refpass2
Namespace No namespace
Match rng:ref
Mode pass2
References
Key DEFED
Parameter verbose
Import precedence 3
Source
<xsl:template match="rng:ref" mode="pass2">
  <xsl:choose>
    <!--
	<xsl:when test="(ancestor::rng:element[@name='egXML' or
			 @name='constraint']         or
			 ancestor::rng:define[contains(@name,'macro.schemaPattern')])
			 and         starts-with(@name, 'macro.any')">
	           <xsl:for-each select="key('DEFED', @name)">
	              <xsl:apply-templates mode="justcopy"
					   select="*"/>
	           </xsl:for-each>
         </xsl:when>
	 -->
    <xsl:when test="key('DEFED',@name)">
      <ref xmlns="http://relaxng.org/ns/structure/1.0" name="{@name}"/>
    </xsl:when>
    <xsl:when test="ancestor::tei:content[@autoPrefix='false']">
      <ref xmlns="http://relaxng.org/ns/structure/1.0" name="{@name}"/>
    </xsl:when>
    <xsl:when test="count(parent::*/*)=1">
      <xsl:if test="$verbose='true'">
        <xsl:message>ZAP reference to undefined [
          <xsl:value-of select="@name"/>] and leave empty behind</xsl:message>
      </xsl:if>
      <empty xmlns="http://relaxng.org/ns/structure/1.0"/>
    </xsl:when>
    <xsl:otherwise>
      <xsl:if test="$verbose='true'">
        <xsl:message>ZAP reference to undefined [
          <xsl:value-of select="@name"/>]</xsl:message>
      </xsl:if>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location odd2relax.xsl
Template processing-instruction()pass3
Documentation

Description

 and again 
Namespace No namespace
Match processing-instruction()
Mode pass3
References
Parameter verbose
Key PATTERNS
Import precedence 3
Source
<xsl:template match="processing-instruction()" mode="pass3">
  <xsl:choose>
    <xsl:when test="name()='NameList'">
      <xsl:if test="$verbose='true'">
        <xsl:message>Expand 'NameList' processing-instruction</xsl:message>
      </xsl:if>
      <choice xmlns="http://relaxng.org/ns/structure/1.0">
        <xsl:for-each select="key('PATTERNS','true')">
          <ref name="{@name}"/>
        </xsl:for-each>
      </choice>
    </xsl:when>
  </xsl:choose>
</xsl:template>
Stylesheet location odd2relax.xsl
Template rng:choicepass3
Namespace No namespace
Match rng:choice
Mode pass3
References
Parameter verbose
Import precedence 3
Source
<xsl:template match="rng:choice" mode="pass3">
  <xsl:choose>
    <xsl:when test="rng:value|rng:name|.//rng:ref|.//rng:text|.//rng:data">
      <xsl:copy>
        <xsl:apply-templates select="*|@*|processing-instruction()|comment()|text()" mode="pass3"/>
      </xsl:copy>
    </xsl:when>
    <xsl:otherwise>
      <xsl:if test="$verbose='true'">
        <xsl:message>KILLED
          <xsl:copy-of select="."/>
        </xsl:message>
      </xsl:if>
      <empty xmlns="http://relaxng.org/ns/structure/1.0"/>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location odd2relax.xsl
Template rng:optionalpass3
Namespace No namespace
Match rng:optional
Mode pass3
Import precedence 3
Source
<xsl:template match="rng:optional" mode="pass3">
  <xsl:choose>
    <xsl:when test="rng:zeroOrMore and count(*)=1">
      <xsl:apply-templates select="*|@*|processing-instruction()|comment()|text()" mode="pass3"/>
    </xsl:when>
    <xsl:otherwise>
      <xsl:copy>
        <xsl:apply-templates select="*|@*|processing-instruction()|comment()|text()" mode="pass3"/>
      </xsl:copy>
    </xsl:otherwise>
  </xsl:choose>
</xsl:template>
Stylesheet location odd2relax.xsl
Template @*|text()|comment()pass3
Namespace No namespace
Match @*|text()|comment()
Mode pass3
Import precedence 3
Source
<xsl:template match="@*|text()|comment()" mode="pass3">
  <xsl:copy-of select="."/>
</xsl:template>
Stylesheet location odd2relax.xsl
Template *pass3
Namespace No namespace
Match *
Mode pass3
Import precedence 3
Source
<xsl:template match="*" mode="pass3">
  <xsl:copy>
    <xsl:apply-templates select="*|@*|processing-instruction()|comment()|text()" mode="pass3"/>
  </xsl:copy>
</xsl:template>
Stylesheet location odd2relax.xsl
Parameter verbose
Namespace No namespace
Used by
Supersedes
Parameter verbose
Source
<xsl:param name="verbose"/>
Stylesheet location odd2relax.xsl
Parameter outputDir
Namespace No namespace
Used by
Template generateOutput
Supersedes
Parameter outputDir
Source
<xsl:param name="outputDir"/>
Stylesheet location odd2relax.xsl
Parameter appendixWords
Namespace No namespace
Source
<xsl:param name="appendixWords"/>
Stylesheet location odd2relax.xsl
Parameter splitLevel
Namespace No namespace
Used by
Template linkTogether
Supersedes
Parameter splitLevel
Source
<xsl:param name="splitLevel">-1</xsl:param>
Stylesheet location odd2relax.xsl
Variable oddmode
Namespace No namespace
Used by
Supersedes
Parameter oddmode
Source
<xsl:variable name="oddmode">dtd</xsl:variable>
Stylesheet location odd2relax.xsl
Variable filesuffix
Namespace No namespace
Source
<xsl:variable name="filesuffix"/>
Stylesheet location odd2relax.xsl
Variable linkColor
Documentation

Description

 get list of output files 
Namespace No namespace
Source
<xsl:variable name="linkColor"/>
Stylesheet location odd2relax.xsl
Output (default)
Namespace No namespace
Output properties
method encoding indent
xml yes
Source
<xsl:output encoding="utf-8" indent="yes" method="xml"/>
Stylesheet location odd2relax.xsl
Key PATTERNS
Namespace No namespace
Match rng:define[rng:element/@name]
Use 'true'
Used by
Source
<xsl:key name="PATTERNS" match="rng:define[rng:element/@name]" use="'true'"/>
Stylesheet location odd2relax.xsl
Key REFED
Namespace No namespace
Match rng:ref
Use @name
Used by
Template rng:definepass2
Source
<xsl:key name="REFED" match="rng:ref" use="@name"/>
Stylesheet location odd2relax.xsl
Key DEFED
Namespace No namespace
Match rng:define
Use @name
Used by
Template rng:refpass2
Source
<xsl:key name="DEFED" match="rng:define" use="@name"/>
Stylesheet location odd2relax.xsl
Key EDEF
Namespace No namespace
Match rng:define[rng:element]
Use 1
Used by
Source
<xsl:key name="EDEF" match="rng:define[rng:element]" use="1"/>
Stylesheet location odd2relax.xsl