819 lines
		
	
	
		
			26 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
			
		
		
	
	
			819 lines
		
	
	
		
			26 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
| <?xml version="1.0"?>
 | |
| <xsl:stylesheet version="1.0"
 | |
|   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 | |
|   xmlns:src="http://purl.oclc.org/dsdl/9573-11amd1/ns/structure/1.0"
 | |
|   xmlns="http://www.w3.org/1999/xhtml">
 | |
|   <xsl:import href="stdex_front.xsl" />
 | |
|   <xsl:import href="stdex_toc.xsl" />
 | |
|   <xsl:import href="stdex_back.xsl" />
 | |
|   <xsl:output method="html" doctype-public="-//W3C//DTD HTML 4.0//EN" encoding="UTF-8" />
 | |
|   <!-- XSLT stylesheet for ISO/IEC stdex.rnc -->
 | |
|   <!-- version.0.51 -->
 | |
|   <xsl:template match="/">
 | |
|     <!-- contents: { document } -->
 | |
|     <xsl:apply-templates />
 | |
|   </xsl:template>
 | |
|   <xsl:template match="/src:document">
 | |
|     <!-- contents: { head, body } -->
 | |
|     <html>
 | |
|       <head>
 | |
|         <title>ISO/IEC IT --- Ver.0.50 ---</title>
 | |
|       </head>
 | |
|       <link rel="stylesheet" href="stdex.css" type="text/css"  />
 | |
|       <body>
 | |
|         <xsl:call-template name="frontm" />
 | |
|         <hr />
 | |
|         <xsl:call-template name="toc" />
 | |
|         <hr />
 | |
|         <xsl:apply-templates />
 | |
|         <xsl:call-template name="backm" />
 | |
|       </body>
 | |
|     </html>
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:head">
 | |
|     <!-- contents: { organization & ... } -->
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:foreword">
 | |
|     <!-- contents: { block*, part-list? } -->
 | |
|     <xsl:variable name="text">
 | |
|       <xsl:choose>
 | |
|         <xsl:when test="/src:document/src:head/src:document-language='E'">
 | |
|           <xsl:text>Foreword</xsl:text>
 | |
|         </xsl:when>
 | |
|         <xsl:otherwise>
 | |
|           <xsl:text>Avant-propos</xsl:text>
 | |
|         </xsl:otherwise>
 | |
|       </xsl:choose>
 | |
|     </xsl:variable>
 | |
|     <h1>
 | |
|       <xsl:call-template name="anchor-text">
 | |
|         <xsl:with-param name="anc">foreword</xsl:with-param>
 | |
|         <xsl:with-param name="text" select="$text"/>
 | |
|       </xsl:call-template>
 | |
|     </h1>
 | |
|     <xsl:apply-templates />
 | |
|     <hr />
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:part-list">
 | |
|     <!-- contents: { part+ } -->
 | |
|     <ul>
 | |
|       <xsl:apply-templates />
 | |
|     </ul>
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:part">
 | |
|     <!-- contents: { number, title } -->
 | |
|     <li>
 | |
|       <span class="italic">
 | |
|         <xsl:text>- Part </xsl:text>
 | |
|         <xsl:apply-templates select="src:number"/>
 | |
|         <xsl:text>: </xsl:text>
 | |
|         <xsl:apply-templates select="src:title"/>
 | |
|       </span>
 | |
|     </li>
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:part/src:number">
 | |
|     <!-- contents: { positive-integer } -->
 | |
|     <xsl:apply-templates />
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:part/src:title">
 | |
|     <!-- contents: { text } -->
 | |
|     <xsl:apply-templates />
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:introduction">
 | |
|     <!-- contents: { block } -->
 | |
|     <h1>
 | |
|       <xsl:call-template name="anchor-text">
 | |
|         <xsl:with-param name="anc">introduction</xsl:with-param>
 | |
|         <xsl:with-param name="text">Introduction</xsl:with-param>
 | |
|       </xsl:call-template>
 | |
|     </h1>
 | |
|     <xsl:apply-templates />
 | |
|     <hr />
 | |
|   </xsl:template>
 | |
|   <xsl:template name="anchor-text">
 | |
|     <xsl:param name="anc" />
 | |
|     <xsl:param name="text" />
 | |
|     <span id="{$anc}">
 | |
|       <xsl:value-of select="$text" />
 | |
|     </span>
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:warning">
 | |
|     <!-- contents: { attlist.warning, p* } -->
 | |
|     <xsl:text>WARNING-</xsl:text>
 | |
|     <xsl:apply-templates />
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:scope">
 | |
|     <!-- contents: { block } -->
 | |
|     <xsl:variable name="nth">
 | |
|       <xsl:number level="multiple" count="src:scope|src:conf|src:normative-references|src:terms-and-definitions|src:clause" />
 | |
|     </xsl:variable>
 | |
|     <xsl:variable name="text">
 | |
|       <xsl:choose>
 | |
|         <xsl:when test="/src:document/src:head/src:document-language='E'">
 | |
|           <xsl:text>Scope</xsl:text>
 | |
|         </xsl:when>
 | |
|         <xsl:otherwise>
 | |
|           <xsl:text>Domaine d'application</xsl:text>
 | |
|         </xsl:otherwise>
 | |
|       </xsl:choose>
 | |
|     </xsl:variable>
 | |
|     <h1>
 | |
|       <xsl:call-template name="anchor-text">
 | |
|         <xsl:with-param name="anc" select="$nth" />
 | |
|         <xsl:with-param name="text" select="concat($nth, ' ', $text)" />
 | |
|       </xsl:call-template>
 | |
|     </h1>
 | |
|     <xsl:apply-templates />
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:conf">
 | |
|     <!-- contents: { titled-clause } -->
 | |
|     <xsl:apply-templates />
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:normative-references">
 | |
|     <!-- contents: { block*, referenced-document+ } -->
 | |
|     <xsl:variable name="nth">
 | |
|       <xsl:number level="multiple" count="src:scope|src:conf|src:normative-references|src:terms-and-definitions|src:clause" />
 | |
|     </xsl:variable>
 | |
|     <xsl:variable name="text">
 | |
|       <xsl:choose>
 | |
|         <xsl:when test="/src:document/src:head/src:document-language='E'">
 | |
|           <xsl:text>Normative references</xsl:text>
 | |
|         </xsl:when>
 | |
|         <xsl:otherwise>
 | |
|           <xsl:text>Références normatives</xsl:text>
 | |
|         </xsl:otherwise>
 | |
|       </xsl:choose>
 | |
|     </xsl:variable>
 | |
|     <h1>
 | |
|       <xsl:call-template name="anchor-text">
 | |
|         <xsl:with-param name="anc" select="$nth" />
 | |
|         <xsl:with-param name="text" select="concat($nth, ' ', $text)" />
 | |
|       </xsl:call-template>
 | |
|     </h1>
 | |
|     <xsl:apply-templates />
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:referenced-document">
 | |
|     <!-- contents: { id, abbrev, title, field*, url } -->
 | |
|     <dl>
 | |
|       <dd>
 | |
|         <xsl:apply-templates />
 | |
|       </dd>
 | |
|     </dl>
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:abbrev">
 | |
|     <xsl:apply-templates />
 | |
|     <xsl:text>, </xsl:text>
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:referenced-document/src:title">
 | |
|     <span class="italic">
 | |
|       <xsl:apply-templates />
 | |
|     </span>
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:terms-and-definitions">
 | |
|     <!-- contents: { terms-and-definitions-content } -->
 | |
|     <xsl:variable name="nth">
 | |
|       <xsl:number level="multiple" count="src:scope|src:conf|src:normative-references|src:terms-and-definitions|src:clause" />
 | |
|     </xsl:variable>
 | |
|     <xsl:variable name="text">
 | |
|       <xsl:choose>
 | |
|         <xsl:when test="/src:document/src:head/src:document-language='E'">
 | |
|           <xsl:text>Terms and definitions</xsl:text>
 | |
|         </xsl:when>
 | |
|         <xsl:otherwise>
 | |
|           <xsl:text>Termes, définitions et symboles</xsl:text>
 | |
|         </xsl:otherwise>
 | |
|       </xsl:choose>
 | |
|     </xsl:variable>
 | |
|     <h1>
 | |
|       <xsl:call-template name="anchor-text">
 | |
|         <xsl:with-param name="anc" select="$nth" />
 | |
|         <xsl:with-param name="text" select="concat($nth, ' ', $text)" />
 | |
|       </xsl:call-template>
 | |
|     </h1>
 | |
|     <dl>
 | |
|       <xsl:apply-templates />
 | |
|     </dl>
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:term-and-definition">
 | |
|     <!-- contents: { term, term*, definition, (example, note, warning)* } -->
 | |
|     <xsl:apply-templates />
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:term-and-definition/src:term">
 | |
|     <!-- contents: { text } -->
 | |
|     <dt>
 | |
|       <xsl:apply-templates />
 | |
|     </dt>
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:term-and-definition/src:definition">
 | |
|     <!-- contents: { inline } -->
 | |
|     <dd>
 | |
|       <xsl:apply-templates />
 | |
|     </dd>
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:clause">
 | |
|     <!-- contents: { id, title, clause-content } -->
 | |
|     <xsl:apply-templates />
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:clause/src:title">
 | |
|     <!-- contents: { text | code } -->
 | |
|     <xsl:variable name="level" select="count(ancestor::src:clause|ancestor::src:annex)"  />
 | |
|     <xsl:variable name="nth">
 | |
|       <xsl:choose>
 | |
|         <xsl:when test="ancestor::src:annex">
 | |
|           <xsl:number level="multiple" count="src:annex|src:annex//src:clause" format="A.1" />
 | |
|         </xsl:when>
 | |
|         <xsl:otherwise>
 | |
|           <xsl:number level="multiple" count="src:scope|src:conf|src:normative-references|src:terms-and-definitions|src:clause" format="1.1" />
 | |
|         </xsl:otherwise>
 | |
|       </xsl:choose>
 | |
|     </xsl:variable>
 | |
|     <xsl:element name="h{$level}">
 | |
|       <xsl:call-template name="anchor-text">
 | |
|         <xsl:with-param name="anc" select="$nth" />
 | |
|         <xsl:with-param name="text" select="concat($nth, ' ', .)" />
 | |
|       </xsl:call-template>
 | |
|     </xsl:element>
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:annex">
 | |
|     <!-- contents: { id, @normative, title, clause-content } -->
 | |
|     <xsl:apply-templates />
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:annex/src:title">
 | |
|     <!-- contents: { text | code } -->
 | |
|     <xsl:variable name="nth">
 | |
|       <xsl:number level="multiple" count="src:annex" format="A" />
 | |
|     </xsl:variable>
 | |
|     <h1 class="annex">
 | |
|       <xsl:text>Annex </xsl:text>
 | |
|       <xsl:value-of select="$nth" />
 | |
|       <br />
 | |
|       <xsl:choose>
 | |
|         <xsl:when test="../@normative = 'true'">
 | |
|           <xsl:text>(normative)</xsl:text>
 | |
|         </xsl:when>
 | |
|         <xsl:otherwise>
 | |
|           <xsl:text>(informative)</xsl:text>
 | |
|         </xsl:otherwise>
 | |
|       </xsl:choose>
 | |
|       <br />
 | |
|       <xsl:call-template name="anchor-text">
 | |
|         <xsl:with-param name="anc" select="$nth" />
 | |
|         <xsl:with-param name="text" select="." />
 | |
|       </xsl:call-template>
 | |
|     </h1>
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:bibliography">
 | |
|     <!-- contents: { referenced-document+ } -->
 | |
|     <xsl:variable name="text">
 | |
|       <xsl:choose>
 | |
|         <xsl:when test="/src:document/src:head/src:document-language='E'">
 | |
|           <xsl:text>Bibliography</xsl:text>
 | |
|         </xsl:when>
 | |
|         <xsl:otherwise>
 | |
|           <xsl:text>Bibliographie</xsl:text>
 | |
|         </xsl:otherwise>
 | |
|       </xsl:choose>
 | |
|     </xsl:variable>
 | |
|     <h1>
 | |
|       <xsl:call-template name="anchor-text">
 | |
|         <xsl:with-param name="anc">bibliography</xsl:with-param>
 | |
|         <xsl:with-param name="text" select="$text"/>
 | |
|       </xsl:call-template>
 | |
|     </h1>
 | |
|     <ol>
 | |
|       <xsl:apply-templates />
 | |
|     </ol>
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:bibliography/src:referenced-document">
 | |
|     <li>
 | |
|       <xsl:number format="[1] " />
 | |
|       <xsl:apply-templates />
 | |
|     </li>
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:index">
 | |
|     <!-- contents: { attlist.index, text } -->
 | |
|     <h1>
 | |
|       <xsl:call-template name="anchor-text">
 | |
|         <xsl:with-param name="anc">index</xsl:with-param>
 | |
|         <xsl:with-param name="text">Index</xsl:with-param>
 | |
|       </xsl:call-template>
 | |
|     </h1>
 | |
|     <xsl:apply-templates />
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:p">
 | |
|     <!-- contents: { inline } -->
 | |
|     <p>
 | |
|       <xsl:apply-templates />
 | |
|     </p>
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:ol">
 | |
|     <!-- contents: { li } -->
 | |
|     <ol>
 | |
|       <xsl:apply-templates />
 | |
|     </ol>
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:ol/src:li">
 | |
|     <!-- contents: { id, block+ } -->
 | |
|     <xsl:variable name="level" select="count(ancestor::src:ol) mod 3" />
 | |
|     <xsl:variable name="format">
 | |
|       <xsl:choose>
 | |
|         <xsl:when test="$level=1">
 | |
|           <xsl:text>a) </xsl:text>
 | |
|         </xsl:when>
 | |
|         <xsl:when test="$level=2">
 | |
|           <xsl:text>1) </xsl:text>
 | |
|         </xsl:when>
 | |
|         <xsl:otherwise>
 | |
|           <xsl:text>i) </xsl:text>
 | |
|         </xsl:otherwise>
 | |
|       </xsl:choose>
 | |
|     </xsl:variable>
 | |
|     <li>
 | |
|       <xsl:number format="{$format}" />
 | |
|       <xsl:apply-templates />
 | |
|     </li>
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:ul">
 | |
|     <!-- contents: { li } -->
 | |
|     <ul>
 | |
|       <xsl:apply-templates />
 | |
|     </ul>
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:ul/src:li">
 | |
|     <!-- contents: { block+ } -->
 | |
|     <xsl:variable name="level" select="count(ancestor::src:ul)" />
 | |
|     <xsl:choose>
 | |
|       <xsl:when test="$level=2">
 | |
|         <li>· <xsl:apply-templates /></li>
 | |
|       </xsl:when>
 | |
|       <xsl:otherwise>
 | |
|         <li>- <xsl:apply-templates /></li>
 | |
|       </xsl:otherwise>
 | |
|     </xsl:choose>
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:notation-list">
 | |
|     <!-- contents: { notation-item+ } -->
 | |
|     <dl compact="1">
 | |
|       <xsl:apply-templates />
 | |
|     </dl>
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:notation-item">
 | |
|     <!-- contents: { notation, notation-definition } -->
 | |
|     <xsl:apply-templates />
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:notation">
 | |
|     <!-- contents: { inline } -->
 | |
|     <dt>
 | |
|       <xsl:apply-templates />
 | |
|     </dt>
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:notation-definition">
 | |
|     <!-- contents: { p, (p | note)* } -->
 | |
|     <dd>
 | |
|       <xsl:apply-templates />
 | |
|     </dd>
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:example">
 | |
|     <!-- contents: { p+ } -->
 | |
|     <xsl:variable name="text">
 | |
|       <xsl:choose>
 | |
|         <xsl:when test="/src:document/src:head/src:document-language='E'">
 | |
|           <xsl:text>EXAMPLE</xsl:text>
 | |
|         </xsl:when>
 | |
|         <xsl:otherwise>
 | |
|           <xsl:text>EXEMPLE</xsl:text>
 | |
|         </xsl:otherwise>
 | |
|       </xsl:choose>
 | |
|     </xsl:variable>
 | |
|     <p>
 | |
|       <xsl:value-of select="$text" />
 | |
|       <xsl:text> </xsl:text>
 | |
|       <xsl:if test="count(../src:xmp) > 1">
 | |
|         <xsl:number level="single" count="src:xmp" format="1 " />
 | |
|       </xsl:if>
 | |
|       <xsl:apply-templates />
 | |
|     </p>
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:note">
 | |
|     <!-- contents: { p+ } -->
 | |
|     <p class="note">
 | |
|       <xsl:text>NOTE  </xsl:text>
 | |
|       <xsl:if test="count(../src:note) > 1">
 | |
|         <xsl:number level="single" count="src:note" format="1 " />
 | |
|       </xsl:if>
 | |
|       <xsl:apply-templates />
 | |
|     </p>
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:code">
 | |
|     <!-- contents: { text } -->
 | |
|     <code>
 | |
|       <xsl:apply-templates />
 | |
|     </code>
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:b">
 | |
|     <!-- contents: { text } -->
 | |
|     <b>
 | |
|       <xsl:apply-templates />
 | |
|     </b>
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:i">
 | |
|     <!-- contents: { text } -->
 | |
|     <span class="italic">
 | |
|       <xsl:apply-templates />
 | |
|     </span>
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:u">
 | |
|     <!-- contents: { text } -->
 | |
|     <u>
 | |
|       <xsl:apply-templates />
 | |
|     </u>
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:sup">
 | |
|     <!-- contents: { text } -->
 | |
|     <sup>
 | |
|       <xsl:apply-templates />
 | |
|     </sup>
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:sub">
 | |
|     <!-- contents: { text } -->
 | |
|     <sub>
 | |
|       <xsl:apply-templates />
 | |
|     </sub>
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:var">
 | |
|     <!-- contents: { text } -->
 | |
|     <var>
 | |
|       <xsl:apply-templates />
 | |
|     </var>
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:This | src:this">
 | |
|     <!-- contents: { empty } -->
 | |
|     <!-- F: la présente Norme internationale -->
 | |
|     <xsl:choose>
 | |
|       <xsl:when test="/src:document/src:head/src:part-number">
 | |
|         <xsl:choose>
 | |
|           <xsl:when test="/src:document/src:head/src:document-language='E'">
 | |
|             <xsl:value-of select="local-name()"/>
 | |
|             <xsl:text> part of </xsl:text>
 | |
|           </xsl:when>
 | |
|         </xsl:choose>
 | |
|         <xsl:value-of select="/src:document/src:head/src:organization"/>
 | |
|         <xsl:text> </xsl:text>
 | |
|         <xsl:value-of select="/src:document/src:head/src:document-number"/>
 | |
|       </xsl:when>
 | |
|       <xsl:otherwise>
 | |
|         <xsl:choose>
 | |
|           <xsl:when test="/src:document/src:head/src:document-language='E'">
 | |
|             <xsl:value-of select="local-name()"/>
 | |
|             <xsl:value-of select="/src:document/src:head/src:document-type"/>
 | |
|           </xsl:when>
 | |
|           <xsl:otherwise>
 | |
|             <xsl:choose>
 | |
|               <xsl:when test="local-name()='This'">
 | |
|                 <xsl:text>La</xsl:text>
 | |
|               </xsl:when>
 | |
|               <xsl:otherwise>
 | |
|                 <xsl:text>la</xsl:text>
 | |
|               </xsl:otherwise>
 | |
|             </xsl:choose>
 | |
|             <xsl:text> présente </xsl:text>
 | |
|             <xsl:choose>
 | |
|               <xsl:when test="/src:document/src:head/src:document-type='International Standard'">
 | |
|                 <xsl:text>Norme internationale</xsl:text>
 | |
|               </xsl:when>
 | |
|             </xsl:choose>
 | |
|           </xsl:otherwise>
 | |
|         </xsl:choose>
 | |
|       </xsl:otherwise>
 | |
|     </xsl:choose>
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:Xref | src:xref">
 | |
|     <xsl:variable name="to" select="@to" />
 | |
|     <xsl:for-each select="//src:*[@id=$to]">
 | |
|       <xsl:call-template name="xref-one" />
 | |
|     </xsl:for-each>
 | |
|   </xsl:template>
 | |
|   <xsl:template name="xref-one">
 | |
|     <xsl:choose>
 | |
|       <xsl:when test="self::src:figure">
 | |
|         <xsl:choose>
 | |
|           <xsl:when test="ancestor::src:annex">
 | |
|             <xsl:number level="multiple" count="src:annex|src:figure" format="A.1 " />
 | |
|           </xsl:when>
 | |
|           <xsl:otherwise>
 | |
|             <xsl:number level="any" count="src:figure" />
 | |
|           </xsl:otherwise>
 | |
|         </xsl:choose>
 | |
|       </xsl:when>
 | |
|       <xsl:when test="self::src:table">
 | |
|         <xsl:choose>
 | |
|           <xsl:when test="ancestor::src:annex">
 | |
|             <xsl:number level="multiple" count="src:annex|src:table" format="A.1 " />
 | |
|           </xsl:when>
 | |
|           <xsl:otherwise>
 | |
|             <xsl:number level="any" count="src:table" />
 | |
|           </xsl:otherwise>
 | |
|         </xsl:choose>
 | |
|       </xsl:when>
 | |
|       <xsl:when test="self::src:li">
 | |
|         <xsl:variable name="level" select="count(ancestor::src:ol) mod 3" />
 | |
|         <xsl:variable name="format">
 | |
|           <xsl:choose>
 | |
|             <xsl:when test="$level=1">
 | |
|               <xsl:text>a) </xsl:text>
 | |
|             </xsl:when>
 | |
|             <xsl:when test="$level=2">
 | |
|               <xsl:text>1) </xsl:text>
 | |
|             </xsl:when>
 | |
|             <xsl:otherwise>
 | |
|               <xsl:text>i) </xsl:text>
 | |
|             </xsl:otherwise>
 | |
|           </xsl:choose>
 | |
|         </xsl:variable>
 | |
|         <xsl:number format="{$format}" />
 | |
|       </xsl:when>
 | |
|       <xsl:when test="ancestor::src:clause">
 | |
|         <xsl:number level="multiple" count="src:scope|src:conf|src:normative-references|src:terms-and-definitions|src:clause" format="1.1 " />
 | |
|       </xsl:when>
 | |
|       <xsl:when test="self::src:referenced-document">
 | |
|         <xsl:value-of select="src:abbrev" />
 | |
|       </xsl:when>
 | |
|       <xsl:otherwise>
 | |
|         <xsl:number level="multiple" count="src:annex" format="A.1 " />
 | |
|       </xsl:otherwise>
 | |
|     </xsl:choose>
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:firstterm">
 | |
|     <!-- contents: { text } -->
 | |
|       <xsl:apply-templates />
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:strong">
 | |
|     <!-- contents: { text } -->
 | |
|     <strong>
 | |
|       <xsl:apply-templates />
 | |
|     </strong>
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:artwork">
 | |
|     <!-- contents: { attlist.artwork } -->
 | |
|     <img src="{@entity}.jpg" />
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:footnote">
 | |
|     <!-- contents: { id, (text | p)+ } -->
 | |
|     <xsl:element name="a">
 | |
|       <xsl:attribute name="onClick">
 | |
|         <xsl:text>alert('</xsl:text>
 | |
|         <xsl:call-template name="fn-mark" />
 | |
|         <xsl:apply-templates />
 | |
|         <xsl:text>')</xsl:text>
 | |
|       </xsl:attribute>
 | |
|       <sup>
 | |
|         <xsl:call-template name="fn-mark" />
 | |
|       </sup>
 | |
|     </xsl:element>
 | |
|   </xsl:template>
 | |
|   <xsl:template name="fn-mark">
 | |
|     <xsl:choose>
 | |
|       <xsl:when test="ancestor::src:figure">
 | |
|         <xsl:number level="single" count="src:fn" format="a) " />
 | |
|       </xsl:when>
 | |
|       <xsl:when test="ancestor::src:table">
 | |
|         <xsl:number level="single" count="src:fn" format="a) " />
 | |
|       </xsl:when>
 | |
|       <xsl:otherwise>
 | |
|         <xsl:number value="count(preceding::src:fn)-count(preceding::src:fn[ancestor::src:figure or
 | |
|           ancestor::src:table])+1" format="1) " />
 | |
|       </xsl:otherwise>
 | |
|     </xsl:choose>
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:table">
 | |
|     <!-- contents: { @pgwide, title?, block+ } -->
 | |
|     <div align="center">
 | |
|       <xsl:apply-templates />
 | |
|       <br />
 | |
|     </div>
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:table/src:title">
 | |
|     <xsl:variable name="ref">
 | |
|       <xsl:choose>
 | |
|         <xsl:when test="ancestor::src:annex">
 | |
|           <xsl:number level="multiple" count="src:annex|src:table" format="A.1 " />
 | |
|         </xsl:when>
 | |
|         <xsl:otherwise>
 | |
|           <xsl:number level="any" count="src:table" />
 | |
|         </xsl:otherwise>
 | |
|       </xsl:choose>
 | |
|     </xsl:variable>
 | |
|     <xsl:variable name="text">
 | |
|       <xsl:choose>
 | |
|         <xsl:when test="/src:document/src:head/src:document-language='E'">
 | |
|           <xsl:text>Table</xsl:text>
 | |
|         </xsl:when>
 | |
|         <xsl:otherwise>
 | |
|           <xsl:text>Tableau</xsl:text>
 | |
|         </xsl:otherwise>
 | |
|       </xsl:choose>
 | |
|     </xsl:variable>
 | |
|     <!-- caption -->
 | |
|       <b>
 | |
|         <span id="tab{$ref}">
 | |
|           <xsl:value-of select="concat($text, ' ', $ref)" /> – <xsl:value-of select="." />
 | |
|         </span>
 | |
|       </b>
 | |
|     <!-- /caption -->
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:figure">
 | |
|     <!-- contents: { @pgwide, title?, block+ } -->
 | |
|     <div align="center">
 | |
|       <xsl:apply-templates select="*[not(self::src:title)]"/>
 | |
|       <xsl:apply-templates select="src:title"/>
 | |
|     </div>
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:figure/src:title">
 | |
|     <xsl:variable name="ref">
 | |
|       <xsl:choose>
 | |
|         <xsl:when test="ancestor::src:annex">
 | |
|           <xsl:number level="multiple" count="src:annex|src:figure" format="A.1 " />
 | |
|         </xsl:when>
 | |
|         <xsl:otherwise>
 | |
|           <xsl:number level="any" count="src:figure" />
 | |
|         </xsl:otherwise>
 | |
|       </xsl:choose>
 | |
|     </xsl:variable>
 | |
|     <div align="center">
 | |
|       <b>
 | |
|         <span id="fig{$ref}">
 | |
|           <xsl:text>Figure </xsl:text>
 | |
|           <xsl:value-of select="$ref" /> – <xsl:value-of select="." />
 | |
|         </span>
 | |
|       </b>
 | |
|     </div>
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:tabular">
 | |
|     <table>
 | |
|       <xsl:choose>
 | |
|         <xsl:when test="@frame="none"" />
 | |
|         <xsl:otherwise>
 | |
|           <xsl:attribute name="border" />
 | |
|         </xsl:otherwise>
 | |
|       </xsl:choose>
 | |
|       <xsl:apply-templates />
 | |
|     </table>
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:tgroup">
 | |
|     <xsl:apply-templates select="src:colspec" />
 | |
|     <xsl:apply-templates select="src:thead" />
 | |
|     <xsl:apply-templates select="src:tbody" />
 | |
|     <xsl:apply-templates select="src:tfoot" />
 | |
|     <tr>
 | |
|       <td colspan="100">
 | |
|         <xsl:apply-templates select=".//src:note" />
 | |
|       </td>
 | |
|     </tr>
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:colspec" />
 | |
|   <xsl:template match="src:thead">
 | |
|     <xsl:apply-templates />
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:tbody">
 | |
|     <xsl:apply-templates />
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:tfoot">
 | |
|     <xsl:apply-templates />
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:row">
 | |
|     <tr>
 | |
|       <xsl:choose>
 | |
|         <xsl:when test="parent::src:thead or parent::src:tfoot">
 | |
|           <xsl:attribute name="bgcolor">#d0d0d0</xsl:attribute>
 | |
|         </xsl:when>
 | |
|       </xsl:choose>
 | |
|       <xsl:choose>
 | |
|         <xsl:when test="@valign">
 | |
|           <xsl:attribute name="valign">
 | |
|             <xsl:value-of select="@valign" />
 | |
|           </xsl:attribute>
 | |
|         </xsl:when>
 | |
|         <xsl:when test="parent::src:*[@valign]">
 | |
|           <xsl:attribute name="valign">
 | |
|             <xsl:value-of select="parent::src:*[@valign]/@valign" />
 | |
|           </xsl:attribute>
 | |
|         </xsl:when>
 | |
|         <xsl:when test="parent::src:thead">
 | |
|           <xsl:attribute name="valign">bottom</xsl:attribute>
 | |
|         </xsl:when>
 | |
|         <xsl:otherwise>
 | |
|           <xsl:attribute name="valign">top</xsl:attribute>
 | |
|         </xsl:otherwise>
 | |
|       </xsl:choose>
 | |
|       <xsl:choose>
 | |
|         <xsl:when test="@align">
 | |
|           <xsl:attribute name="align">
 | |
|             <xsl:value-of select="@align" />
 | |
|           </xsl:attribute>
 | |
|         </xsl:when>
 | |
|         <xsl:when test="ancestor::src:*[@align]">
 | |
|           <xsl:attribute name="align">
 | |
|             <xsl:value-of select="ancestor::src:*[@align]/@align" />
 | |
|           </xsl:attribute>
 | |
|         </xsl:when>
 | |
|       </xsl:choose>
 | |
|       <xsl:apply-templates />
 | |
|     </tr>
 | |
|   </xsl:template>
 | |
|   <xsl:template match="src:entry">
 | |
|     <xsl:choose>
 | |
|       <xsl:when test="ancestor::src:thead">
 | |
|         <xsl:call-template name="ent">
 | |
|           <xsl:with-param name="tag">th</xsl:with-param>
 | |
|         </xsl:call-template>
 | |
|       </xsl:when>
 | |
|       <xsl:otherwise>
 | |
|         <xsl:call-template name="ent">
 | |
|           <xsl:with-param name="tag">td</xsl:with-param>
 | |
|         </xsl:call-template>
 | |
|       </xsl:otherwise>
 | |
|     </xsl:choose>
 | |
|   </xsl:template>
 | |
|   <xsl:template name="ent">
 | |
|     <xsl:param name="tag" />
 | |
|     <xsl:element name="{$tag}">
 | |
|       <xsl:if test="@valign">
 | |
|         <xsl:attribute name="valign">
 | |
|           <xsl:value-of select="@valign" />
 | |
|         </xsl:attribute>
 | |
|       </xsl:if>
 | |
|       <xsl:choose>
 | |
|         <xsl:when test="@align">
 | |
|           <xsl:attribute name="align">
 | |
|             <xsl:value-of select="@align" />
 | |
|           </xsl:attribute>
 | |
|         </xsl:when>
 | |
|         <xsl:when test="ancestor::src:*[@align]">
 | |
|           <xsl:attribute name="align">
 | |
|             <xsl:value-of select="ancestor::src:*[@align]/@align" />
 | |
|           </xsl:attribute>
 | |
|         </xsl:when>
 | |
|       </xsl:choose>
 | |
|       <xsl:if test="@morerows">
 | |
|         <xsl:attribute name="rowspan">
 | |
|           <xsl:value-of select="@morerows + 1" />
 | |
|         </xsl:attribute>
 | |
|       </xsl:if>
 | |
|       <xsl:if test="@namest and @nameend">
 | |
|         <xsl:call-template name="colspan">
 | |
|           <xsl:with-param name="namest" select="@namest" />
 | |
|           <xsl:with-param name="nameend" select="@nameend" />
 | |
|         </xsl:call-template>
 | |
|       </xsl:if>
 | |
|       <xsl:apply-templates />
 | |
|     </xsl:element>
 | |
|   </xsl:template>
 | |
|   <xsl:template name="colspan">
 | |
|     <xsl:param name="namest" />
 | |
|     <xsl:param name="nameend" />
 | |
|     <xsl:call-template name="colspan-sub">
 | |
|       <xsl:with-param name="numst">
 | |
|         <xsl:choose>
 | |
|           <xsl:when test="parent::src:row/preceding-sibling::src:colspec[@colname=$namest]">
 | |
|             <xsl:value-of
 | |
|               select="count(parent::src:row/preceding-sibling::src:colspec[@colname=$namest]/preceding-sibling::src:colspec)"
 | |
|              />
 | |
|           </xsl:when>
 | |
|           <xsl:otherwise>
 | |
|             <xsl:value-of
 | |
|               select="count(ancestor::src:tgroup/child::src:colspec[@colname=$namest]/preceding-sibling::src:colspec)"
 | |
|              />
 | |
|           </xsl:otherwise>
 | |
|         </xsl:choose>
 | |
|       </xsl:with-param>
 | |
|       <xsl:with-param name="numend">
 | |
|         <xsl:choose>
 | |
|           <xsl:when test="parent::src:row/preceding-sibling::src:colspec[@colname=$nameend]">
 | |
|             <xsl:value-of
 | |
|               select="count(parent::src:row/preceding-sibling::src:colspec[@colname=$nameend]/preceding-sibling::src:colspec)"
 | |
|              />
 | |
|           </xsl:when>
 | |
|           <xsl:otherwise>
 | |
|             <xsl:value-of
 | |
|               select="count(ancestor::src:tgroup/child::src:colspec[@colname=$nameend]/preceding-sibling::src:colspec)"
 | |
|              />
 | |
|           </xsl:otherwise>
 | |
|         </xsl:choose>
 | |
|       </xsl:with-param>
 | |
|     </xsl:call-template>
 | |
|   </xsl:template>
 | |
|   <xsl:template name="colspan-sub">
 | |
|     <xsl:param name="numst" />
 | |
|     <xsl:param name="numend" />
 | |
|     <xsl:attribute name="colspan">
 | |
|       <xsl:value-of select="$numend - $numst + 1" />
 | |
|     </xsl:attribute>
 | |
|   </xsl:template>
 | |
| 
 | |
|   <xsl:template match="text()">
 | |
|     <xsl:if test="normalize-space(.)!=' '">
 | |
|       <xsl:value-of select="." />
 | |
|     </xsl:if>
 | |
|   </xsl:template>
 | |
| 
 | |
| </xsl:stylesheet> | 
