diff options
Diffstat (limited to 'test/tests/contrib/xsltc/mk/mk054.xsl')
-rw-r--r-- | test/tests/contrib/xsltc/mk/mk054.xsl | 774 |
1 files changed, 774 insertions, 0 deletions
diff --git a/test/tests/contrib/xsltc/mk/mk054.xsl b/test/tests/contrib/xsltc/mk/mk054.xsl new file mode 100644 index 0000000..8d20761 --- /dev/null +++ b/test/tests/contrib/xsltc/mk/mk054.xsl @@ -0,0 +1,774 @@ +<?xml version="1.0" encoding="ISO-8859-1" ?> +<!-- @(#)xslspec.xsl 1.3 99/01/11 SMI; Style Sheet for the XML and XSL Recommendations and Working Drafts; written by Eduardo Gutentag --> +<!-- $Id$ Hacked by James Clark --> +<!DOCTYPE xsl:stylesheet [ +<!ENTITY copy "©"> +<!ENTITY nbsp " "> +]> +<!-- XSL Style sheet, DTD omitted --> +<xsl:stylesheet + version="1.0" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> + +<xsl:output method="html" doctype-public="-//W3C//DTD HTML 4.0 Transitional//EN"/> + +<xsl:param name="w3">http://www.w3.org/</xsl:param> +<!-- +++++++++++++++++++++++++ + +Inclusions + +++++++++++++++++++++++++ +--> + +<xsl:template match="spec" mode="css"> +<xsl:text>code { font-family: monospace }</xsl:text> +</xsl:template> + +<!-- +******************************************************************* + +Basic framework to format W3C specs (as in the XML spec) + +******************************************************************* +--> + <xsl:template match="spec"> + <html> + <head> + <title> + <xsl:value-of select="header/title"/> + </title> + <link rel="stylesheet" type="text/css" + href="{$w3}StyleSheets/TR/W3C-{substring-before(header/w3c-designation,'-')}"/> + <!-- This stops Netscape 4.5 from messing up. --> + <style type="text/css"> + <xsl:apply-templates select="." mode="css"/> + </style> + </head> + <body> + <xsl:apply-templates/> + </body> + </html> + </xsl:template> +<!-- +******************************************************************* + +Prologue + +******************************************************************* +--> + + <xsl:template match="header"> + <div class="head"> + <a href="http://www.w3.org/"> + <img src="{$w3}Icons/WWW/w3c_home" + alt="W3C" height="48" width="72"/> + </a> + <h1> + <xsl:value-of select="title"/> + <br/> + <xsl:value-of select="version"/> + </h1> + <h2> + <xsl:value-of select="w3c-doctype"/> + <xsl:text> </xsl:text> + <xsl:value-of select="pubdate/day"/> + <xsl:text> </xsl:text> + <xsl:value-of select="pubdate/month"/> + <xsl:text> </xsl:text> + <xsl:value-of select="pubdate/year"/> + </h2> + <dl> + <xsl:apply-templates select="publoc"/> + <xsl:apply-templates select="latestloc"/> + <xsl:apply-templates select="prevlocs"/> + <xsl:apply-templates select="authlist"/> + </dl> + <xsl:call-template name="copyright"/> + <hr title="Separator for header"/> + </div> + <xsl:apply-templates select="abstract"/> + <xsl:apply-templates select="status"/> + </xsl:template> + + <xsl:template match="publoc"> + <dt>This version:</dt> + <dd><xsl:apply-templates/></dd> + </xsl:template> + <xsl:template match="publoc/loc|latestloc/loc|prevlocs/loc"> + <a href="{@href}"><xsl:apply-templates/></a> + <br/> + </xsl:template> + <xsl:template match="latestloc"> + <dt>Latest version:</dt> + <dd><xsl:apply-templates/></dd> + </xsl:template> + + <xsl:template match="prevlocs"> + <dt> + <xsl:text>Previous version</xsl:text> + <xsl:if test="count(loc)>1">s</xsl:if> + <xsl:text>:</xsl:text> + </dt> + <dd><xsl:apply-templates/></dd> + </xsl:template> + <xsl:template match="authlist"> + <dt> + <xsl:text>Editor</xsl:text> + <xsl:if test="count(author)>1">s</xsl:if> + <xsl:text>:</xsl:text> + </dt> + <dd> <xsl:apply-templates/></dd> + </xsl:template> + <xsl:template match="author"> + <xsl:apply-templates/> + <br/> + </xsl:template> + + <xsl:template match="author/name"> + <xsl:apply-templates/> + </xsl:template> + + <xsl:template match="author/affiliation"> + <xsl:text> (</xsl:text> + <xsl:apply-templates/> + <xsl:text>) </xsl:text> + </xsl:template> + + <xsl:template match="author/email"> + <a href="{@href}"> + <xsl:text><</xsl:text> + <xsl:apply-templates/> + <xsl:text>></xsl:text> + </a> + </xsl:template> + + <xsl:template match="abstract"> + <h2><a name="abstract">Abstract</a></h2> + <xsl:apply-templates/> + </xsl:template> + + <xsl:template match="status"> + <h2><a name="status">Status of this document</a></h2> + <xsl:apply-templates/> + </xsl:template> + +<!-- +******************************************************************* + +Real body work + +******************************************************************* +--> + + <xsl:template match="body"> + <h2><a name="contents">Table of contents</a></h2> + <xsl:call-template name="toc"/> + <hr/> + <xsl:apply-templates/> + </xsl:template> + + <xsl:template match="back"> + <hr title="Separator from footer"/> + <xsl:apply-templates/> + </xsl:template> + + <xsl:template match="div1/head|inform-div1/head"> + <h2><xsl:call-template name="head"/></h2> + </xsl:template> + + <xsl:template match="div2/head"> + <h3><xsl:call-template name="head"/></h3> + </xsl:template> + + <xsl:template match="div3/head"> + <h4><xsl:call-template name="head"/></h4> + </xsl:template> + + <xsl:template match="div4/head"> + <h5><xsl:call-template name="head"/></h5> + </xsl:template> + + <xsl:template name="head"> + <xsl:for-each select=".."> + <xsl:call-template name="insertID"/> + <xsl:apply-templates select="." mode="number"/> + </xsl:for-each> + <xsl:apply-templates/> + <xsl:call-template name="inform"/> + </xsl:template> + +<!-- +******************************************************************* + +Blocks + +******************************************************************* +--> + <xsl:template match="item/p" priority="1"> + <p> + <xsl:apply-templates/> + </p> + </xsl:template> + + <xsl:template match="p"> + <p> + <xsl:apply-templates/> + </p> + </xsl:template> + + + <xsl:template match="eg"> + <pre> + <xsl:if test="@role='error'"> + <xsl:attribute name="style">color: red</xsl:attribute> + </xsl:if> + <xsl:apply-templates/> + </pre> + </xsl:template> + + <xsl:template match="htable"> + <table border="{@border}" + cellpadding="{@cellpadding}" + align="{@align}"> + <xsl:apply-templates/> + </table> + </xsl:template> + + <xsl:template match="htbody"> + <tbody> + <xsl:apply-templates/> + </tbody> + </xsl:template> + + <xsl:template match="tr"> + <tr align="{@align}" + valign="{@valign}"> + <xsl:apply-templates/> + </tr> + </xsl:template> + + <xsl:template match="td"> + <td bgcolor="{@bgcolor}" + rowspan="{@rowspan}" + colspan="{@colspan}" + align="{@align}" + valign="{@valign}"> + <xsl:apply-templates/> + </td> + </xsl:template> + + <xsl:template match="ednote"> + <blockquote> + <p><b>Ed. Note: </b><xsl:apply-templates/></p> + </blockquote> + </xsl:template> + + <xsl:template match="edtext"> + <xsl:apply-templates/> + </xsl:template> + + <xsl:template match="issue"> + <xsl:call-template name="insertID"/> + <blockquote> + <p> + <b>Issue (<xsl:value-of select="substring-after(@id,'-')"/>): </b> + <xsl:apply-templates/> + </p> + </blockquote> + </xsl:template> + + + <xsl:template match="note"> + <blockquote> + <b>NOTE: </b> + <xsl:apply-templates/> + </blockquote> + </xsl:template> + + <xsl:template match="issue/p|note/p"> + <xsl:apply-templates/> + </xsl:template> +<!-- +******************************************************************* + +Productions + +******************************************************************* +--> + <xsl:template match="scrap"> + <xsl:if test="string(head)"> + <h5><xsl:value-of select="head"/></h5> + </xsl:if> + <table class="scrap"> + <tbody> + <xsl:apply-templates select="prodgroup|prod"/> + </tbody> + </table> + </xsl:template> + + + <xsl:template match="prod"> + <!-- select elements that start a row --> + <xsl:apply-templates select=" +*[self::lhs + or ((self::vc or self::wfc or self::com) + and not(preceding-sibling::*[1][self::rhs])) + or (self::rhs + and not(preceding-sibling::*[1][self::lhs]))] +"/> + </xsl:template> + + <xsl:template match="lhs"> + <tr valign="baseline"> + <td><a name="{../@id}"/> + <xsl:number from="body" level="any" format="[1] "/> + </td> + <td><xsl:apply-templates/></td> + <td><xsl:text> ::= </xsl:text></td> + <xsl:for-each select="following-sibling::*[1]"> + <td><xsl:apply-templates mode="cell" select="."/></td> + <td><xsl:apply-templates mode="cell" select="following-sibling::*[1][self::vc or self::wfc or self::com]"/></td> + </xsl:for-each> + </tr> + </xsl:template> + + <xsl:template match="rhs"> + <tr valign="baseline"> + <td></td> + <td></td> + <td></td> + <td><xsl:apply-templates mode="cell" select="."/></td> + <td><xsl:apply-templates mode="cell" select="following-sibling::*[1][self::vc or self::wfc or self::com]"/></td> + </tr> + </xsl:template> + + <xsl:template match="vc|wfc|com"> + <tr valign="baseline"> + <td></td> + <td></td> + <td></td> + <td></td> + <td><xsl:apply-templates mode="cell" select="."/></td> + </tr> + </xsl:template> + + + <xsl:template match="prodgroup"> + <xsl:apply-templates/> + </xsl:template> + + <xsl:template match="com" mode="cell"> + <xsl:text>/*</xsl:text> + <xsl:apply-templates/> + <xsl:text>*/</xsl:text> + </xsl:template> + + <xsl:template match="rhs" mode="cell"> + <xsl:apply-templates/> + </xsl:template> + + <xsl:template match="vc" mode="cell"> + <xsl:text>[ VC: </xsl:text> + <a href="#{@def}"> + <xsl:value-of select="id(@def)/head"/> + </a> + <xsl:text> ]</xsl:text> + <xsl:apply-templates/> + </xsl:template> + + <xsl:template match="wfc" mode="cell"> + <xsl:text>[ WFC: </xsl:text> + <a href="#{@def}"> + <xsl:value-of select="id(@def)/head"/> + </a> + <xsl:text> ]</xsl:text> + <xsl:apply-templates/> + </xsl:template> +<!-- +******************************************************************* + +References + +******************************************************************* +--> + <xsl:template match="p/loc" priority="1"> + <a href="{@href}"><xsl:apply-templates/></a> + </xsl:template> + + <xsl:template match="publoc/loc|latestloc/loc|prevlocs/loc"> + <a href="{@href}"><xsl:apply-templates/></a> + <br/> + </xsl:template> + + <xsl:template match="loc"> + <a href="{@href}"><xsl:apply-templates/></a> + </xsl:template> + + + <xsl:template match="bibref"> + <a href="#{@ref}"> + <xsl:text>[</xsl:text> + <xsl:value-of select="id(@ref)/@key"/> + <xsl:apply-templates/> + <xsl:text>]</xsl:text> + </a> + </xsl:template> + + <xsl:template match="specref"> + <a href="#{@ref}"> + <xsl:text>[</xsl:text> + <b> + <xsl:for-each select="id(@ref)/head"> + <xsl:apply-templates select=".." mode="number"/> + <xsl:apply-templates/> + </xsl:for-each> + </b> + <xsl:apply-templates/> + <xsl:text>]</xsl:text> + </a> + </xsl:template> + <xsl:template match="xspecref|xtermref"> + <a href="{@href}"> + <xsl:apply-templates/> + </a> + </xsl:template> + <xsl:template match="termref"> + <a href="#{@def}"> + <xsl:apply-templates/> + </a> + </xsl:template> + + <xsl:template match="titleref"> + <a href="#{@href}"> + <xsl:apply-templates/> + </a> + </xsl:template> + + <xsl:template match="termdef"> + <a name="{@id}"> + </a> + <xsl:apply-templates/> + </xsl:template> + + + <xsl:template match="vcnote"> + <a name="{@id}"></a> + <p><b>Validity Constraint: <xsl:value-of select="head"/></b></p> + <xsl:apply-templates/> + </xsl:template> + + <xsl:template match="wfcnote"> + <a name="{@id}"></a> + <p><b>Well Formedness Constraint: <xsl:value-of select="head"/></b></p> + <xsl:apply-templates/> + </xsl:template> + +<!-- +******************************************************************* + +Inlines + +******************************************************************* +--> + <xsl:template match="termdef"> + <a name="{@id}"> + </a> + <xsl:apply-templates/> + </xsl:template> + + <xsl:template match="term"> + <b><xsl:apply-templates/></b> + </xsl:template> + + <xsl:template match="orglist/member[1]" priority="2"> + <xsl:apply-templates select="*"/> + </xsl:template> + + <xsl:template match="orglist/member"> + <xsl:text>; </xsl:text> + <xsl:apply-templates select="*"/> + </xsl:template> + + <xsl:template match="orglist/member/affiliation"> + <xsl:text>, </xsl:text> + <xsl:apply-templates/> + </xsl:template> + <xsl:template match="orglist/member/role"> + <xsl:text> (</xsl:text> + <xsl:apply-templates/> + <xsl:text>)</xsl:text> + </xsl:template> + + <xsl:template match="code"> + <code> + <xsl:apply-templates/> + </code> + </xsl:template> + + <xsl:template match="emph"> + <i> + <xsl:apply-templates/> + </i> + </xsl:template> +<!-- +******************************************************************* + +Lists + +******************************************************************* +--> + <xsl:template match="blist"> + <dl> + <xsl:apply-templates/> + </dl> + </xsl:template> + + <xsl:template match="slist"> + <ul> + <xsl:apply-templates/> + </ul> + </xsl:template> + <xsl:template match="sitem"> + <li> + <xsl:apply-templates/> + </li> + </xsl:template> + + <xsl:template match="blist/bibl"> + <dt> + <a name="{@id}"> + <xsl:value-of select="@key"/> + </a> + </dt> + <dd> + <xsl:apply-templates/> + </dd> + </xsl:template> + + <xsl:template match="olist"> + <ol> + <xsl:apply-templates/> + </ol> + </xsl:template> + + <xsl:template match="ulist"> + <!-- + <ul type="circle"> + --> + <ul> + <xsl:apply-templates/> + </ul> + </xsl:template> + + <xsl:template match="glist"> + <dl> + <xsl:apply-templates/> + </dl> + </xsl:template> + + <xsl:template match="item"> + <li> + <xsl:apply-templates/> + </li> + </xsl:template> + + <xsl:template match="label"> + <dt> + <b><xsl:apply-templates/></b> + </dt> + </xsl:template> + + <xsl:template match="def"> + <dd> + <xsl:apply-templates/> + </dd> + </xsl:template> + + <xsl:template match="orglist"> + <xsl:apply-templates select="*"/> + </xsl:template> + + + <xsl:template match="olist"> + <ol> + <xsl:apply-templates/> + </ol> + </xsl:template> + + +<!-- +******************************************************************* + +Empty templates + +******************************************************************* +--> + <xsl:template match="w3c-designation"> + </xsl:template> + + <xsl:template match="w3c-doctype"> + </xsl:template> + + <xsl:template match="header/pubdate"> + </xsl:template> + + + <xsl:template match="spec/header/title"> + </xsl:template> + + <xsl:template match="revisiondesc"> + </xsl:template> + + <xsl:template match="pubstmt"> + </xsl:template> + + <xsl:template match="sourcedesc"> + </xsl:template> + + <xsl:template match="langusage"> + </xsl:template> + + <xsl:template match="version"> + </xsl:template> +<!-- +******************************************************************* + +Macros + + +******************************************************************* +--> + + <xsl:template name="copyright"> + <p class="copyright"> + <a href="http://www.w3.org/Consortium/Legal/ipr-notice.html#Copyright"> + Copyright</a> © 1999 <a href="http://www.w3.org">W3C</a> + (<a href="http://www.lcs.mit.edu">MIT</a>, + <a href="http://www.inria.fr/">INRIA</a>, + <a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C + <a href="http://www.w3.org/Consortium/Legal/ipr-notice.html#Legal_Disclaimer">liability</a>, + <a href="http://www.w3.org/Consortium/Legal/ipr-notice.html#W3C_Trademarks">trademark</a>, + <a href="http://www.w3.org/Consortium/Legal/copyright-documents.html">document use</a> and + <a href="http://www.w3.org/Consortium/Legal/copyright-software.html">software licensing</a> rules apply. + </p> + </xsl:template> + + <xsl:template name="toc"> + <xsl:for-each select="/spec/body/div1"> + <xsl:call-template name="makeref"/> + <br/> + + <xsl:for-each select="div2"> + <xsl:text> </xsl:text> + <xsl:call-template name="makeref"/> + <br/> + <xsl:for-each select="div3"> + <xsl:text> </xsl:text> + <xsl:call-template name="makeref"/> + <br/> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + + <h3>Appendices</h3> + + <xsl:for-each select="/spec/back/div1 | /spec/back/inform-div1"> + <xsl:call-template name="makeref"/> + <br/> + + <xsl:for-each select="div2"> + <xsl:text> </xsl:text> + <xsl:call-template name="makeref"/> + <br/> + + <xsl:for-each select="div3"> + <xsl:text> </xsl:text> + <xsl:call-template name="makeref"/> + <br/> + </xsl:for-each> + </xsl:for-each> + </xsl:for-each> + </xsl:template> + + <xsl:template name="insertID"> + <xsl:choose> + <xsl:when test="@id"> + <a name="{@id}"/> + </xsl:when> + <xsl:otherwise> + <a name="section-{translate(head,' ','-')}"/> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + + <xsl:template name="makeref"> + <xsl:apply-templates select="." mode="number"/> + <xsl:choose> + <xsl:when test="@id"> + <a href="#{@id}"> + <xsl:value-of select="head"/> + </a> + </xsl:when> + <xsl:otherwise> + <a href="#section-{translate(head,' ','-')}"> + <xsl:value-of select="head"/> + </a> + </xsl:otherwise> + </xsl:choose> + <xsl:for-each select="head"> + <xsl:call-template name="inform"/> + </xsl:for-each> + </xsl:template> + + <xsl:template name="inform"> + <xsl:if test="parent::inform-div1"> + <xsl:text> (Non-Normative)</xsl:text> + </xsl:if> + </xsl:template> + + <xsl:template match="nt"> + <a href="#{@def}"><xsl:apply-templates/></a> + </xsl:template> + + <xsl:template match="xnt"> + <a href="{@href}"><xsl:apply-templates/></a> + </xsl:template> + + <xsl:template match="quote"> + <xsl:text>"</xsl:text> + <xsl:apply-templates/> + <xsl:text>"</xsl:text> + </xsl:template> + + <xsl:template mode="number" match="back//*"> + <xsl:number level="multiple" + count="inform-div1|div1|div2|div3|div4" + format="A.1 "/> + </xsl:template> + <xsl:template mode="number" match="*"> + <xsl:number level="multiple" + count="inform-div1|div1|div2|div3|div4" + format="1.1 "/> + </xsl:template> + + + <!-- + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + --> + +</xsl:stylesheet> |