home *** CD-ROM | disk | FTP | other *** search
/ Internet Magazine 2003 October / INTERNET108.ISO / pc / software / windows / building / xmlspy / xmlspyentcomplete5.exe / Data1.cab / _7DF086E07EC940AB92414B596AD87D91 < prev    next >
Encoding:
Extensible Markup Language  |  2002-09-04  |  14.8 KB  |  391 lines

  1. <?xml version='1.0'?>
  2. <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  3.                 xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
  4.                 exclude-result-prefixes="doc"
  5.                 version='1.0'>
  6.  
  7. <!-- ============================================================ -->
  8.  
  9. <xsl:template match="*" mode="object.title.template">
  10.   <xsl:call-template name="gentext.template">
  11.     <xsl:with-param name="context" select="'title'"/>
  12.     <xsl:with-param name="name" select="local-name(.)"/>
  13.   </xsl:call-template>
  14. </xsl:template>
  15.  
  16. <xsl:template match="chapter" mode="object.title.template">
  17.   <xsl:choose>
  18.     <xsl:when test="$chapter.autolabel != 0">
  19.       <xsl:call-template name="gentext.template">
  20.         <xsl:with-param name="context" select="'title-numbered'"/>
  21.         <xsl:with-param name="name" select="local-name(.)"/>
  22.       </xsl:call-template>
  23.     </xsl:when>
  24.     <xsl:otherwise>
  25.       <xsl:call-template name="gentext.template">
  26.         <xsl:with-param name="context" select="'title-unnumbered'"/>
  27.         <xsl:with-param name="name" select="local-name(.)"/>
  28.       </xsl:call-template>
  29.     </xsl:otherwise>
  30.   </xsl:choose>
  31. </xsl:template>
  32.  
  33. <xsl:template match="appendix" mode="object.title.template">
  34.   <xsl:choose>
  35.     <xsl:when test="$appendix.autolabel != 0">
  36.       <xsl:call-template name="gentext.template">
  37.         <xsl:with-param name="context" select="'title-numbered'"/>
  38.         <xsl:with-param name="name" select="local-name(.)"/>
  39.       </xsl:call-template>
  40.     </xsl:when>
  41.     <xsl:otherwise>
  42.       <xsl:call-template name="gentext.template">
  43.         <xsl:with-param name="context" select="'title-unnumbered'"/>
  44.         <xsl:with-param name="name" select="local-name(.)"/>
  45.       </xsl:call-template>
  46.     </xsl:otherwise>
  47.   </xsl:choose>
  48. </xsl:template>
  49.  
  50. <xsl:template match="section|sect1|sect2|sect3|sect4|sect5|simplesect
  51.                      |bridgehead"
  52.               mode="object.title.template">
  53.   <xsl:choose>
  54.     <xsl:when test="$section.autolabel != 0">
  55.       <xsl:call-template name="gentext.template">
  56.         <xsl:with-param name="context" select="'title-numbered'"/>
  57.         <xsl:with-param name="name" select="local-name(.)"/>
  58.       </xsl:call-template>
  59.     </xsl:when>
  60.     <xsl:otherwise>
  61.       <xsl:call-template name="gentext.template">
  62.         <xsl:with-param name="context" select="'title-unnumbered'"/>
  63.         <xsl:with-param name="name" select="local-name(.)"/>
  64.       </xsl:call-template>
  65.     </xsl:otherwise>
  66.   </xsl:choose>
  67. </xsl:template>
  68.  
  69. <xsl:template match="procedure" mode="object.title.template">
  70.   <xsl:choose>
  71.     <xsl:when test="$formal.procedures != 0">
  72.       <xsl:call-template name="gentext.template">
  73.         <xsl:with-param name="context" select="'title'"/>
  74.         <xsl:with-param name="name" select="'procedure.formal'"/>
  75.       </xsl:call-template>
  76.     </xsl:when>
  77.     <xsl:otherwise>
  78.       <xsl:call-template name="gentext.template">
  79.         <xsl:with-param name="context" select="'title'"/>
  80.         <xsl:with-param name="name" select="local-name(.)"/>
  81.       </xsl:call-template>
  82.     </xsl:otherwise>
  83.   </xsl:choose>
  84. </xsl:template>
  85.  
  86. <xsl:template match="article/appendix"
  87.               mode="object.title.template">
  88.   <!-- FIXME: HACK HACK HACK! -->
  89.   <xsl:text>%n. %t</xsl:text>
  90. </xsl:template>
  91.  
  92. <!-- ============================================================ -->
  93.  
  94. <xsl:template match="*" mode="object.subtitle.template">
  95.   <xsl:call-template name="gentext.template">
  96.     <xsl:with-param name="context" select="'subtitle'"/>
  97.     <xsl:with-param name="name" select="local-name(.)"/>
  98.   </xsl:call-template>
  99. </xsl:template>
  100.  
  101. <!-- ============================================================ -->
  102.  
  103. <xsl:template match="*" mode="object.xref.template">
  104.   <xsl:param name="purpose"/>
  105.   <xsl:param name="xrefstyle"/>
  106.   <xsl:param name="referrer"/>
  107.  
  108.   <xsl:call-template name="gentext.template">
  109.     <xsl:with-param name="context" select="'xref'"/>
  110.     <xsl:with-param name="name" select="local-name(.)"/>
  111.     <xsl:with-param name="purpose" select="$purpose"/>
  112.     <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
  113.     <xsl:with-param name="referrer" select="$referrer"/>
  114.   </xsl:call-template>
  115. </xsl:template>
  116.  
  117. <xsl:template match="section|simplesect
  118.                      |sect1|sect2|sect3|sect4|sect5
  119.                      |refsect1|refsect2|refsect3
  120.                      |bridgehead"
  121.               mode="object.xref.template">
  122.   <xsl:choose>
  123.     <xsl:when test="$section.autolabel != 0">
  124.       <xsl:call-template name="gentext.template">
  125.         <xsl:with-param name="context" select="'section-xref-numbered'"/>
  126.         <xsl:with-param name="name" select="local-name(.)"/>
  127.       </xsl:call-template>
  128.     </xsl:when>
  129.     <xsl:otherwise>
  130.       <xsl:call-template name="gentext.template">
  131.         <xsl:with-param name="context" select="'section-xref'"/>
  132.         <xsl:with-param name="name" select="local-name(.)"/>
  133.       </xsl:call-template>
  134.     </xsl:otherwise>
  135.   </xsl:choose>
  136. </xsl:template>
  137.  
  138. <!-- ============================================================ -->
  139.  
  140. <xsl:template match="*" mode="object.title.markup">
  141.   <xsl:param name="allow-anchors" select="0"/>
  142.   <xsl:variable name="template">
  143.     <xsl:apply-templates select="." mode="object.title.template"/>
  144.   </xsl:variable>
  145.  
  146. <!--
  147.   <xsl:message>
  148.     <xsl:text>object.title.markup: </xsl:text>
  149.     <xsl:value-of select="local-name(.)"/>
  150.     <xsl:text>: </xsl:text>
  151.     <xsl:value-of select="$template"/>
  152.   </xsl:message>
  153. -->
  154.  
  155.   <xsl:call-template name="substitute-markup">
  156.     <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
  157.     <xsl:with-param name="template" select="$template"/>
  158.   </xsl:call-template>
  159. </xsl:template>
  160.  
  161. <xsl:template match="*" mode="object.title.markup.textonly">
  162.   <xsl:variable name="title">
  163.     <xsl:apply-templates select="." mode="object.title.markup"/>
  164.   </xsl:variable>
  165.   <xsl:value-of select="$title"/>
  166. </xsl:template>
  167.  
  168. <!-- ============================================================ -->
  169.  
  170. <xsl:template match="*" mode="object.subtitle.markup">
  171.   <xsl:variable name="template">
  172.     <xsl:apply-templates select="." mode="object.subtitle.template"/>
  173.   </xsl:variable>
  174.  
  175.   <xsl:call-template name="substitute-markup">
  176.     <xsl:with-param name="template" select="$template"/>
  177.   </xsl:call-template>
  178. </xsl:template>
  179.  
  180. <!-- ============================================================ -->
  181.  
  182. <xsl:template match="*" mode="object.xref.markup">
  183.   <xsl:param name="purpose"/>
  184.   <xsl:param name="xrefstyle"/>
  185.   <xsl:param name="referrer"/>
  186.  
  187.   <xsl:variable name="template">
  188.     <xsl:apply-templates select="." mode="object.xref.template">
  189.       <xsl:with-param name="purpose" select="$purpose"/>
  190.       <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
  191.       <xsl:with-param name="referrer" select="$referrer"/>
  192.     </xsl:apply-templates>
  193.   </xsl:variable>
  194.  
  195. <!--
  196.   <xsl:message>
  197.     <xsl:text>object.xref.markup: </xsl:text>
  198.     <xsl:value-of select="local-name(.)"/>
  199.     <xsl:text>(</xsl:text>
  200.     <xsl:value-of select="$xrefstyle"/>
  201.     <xsl:text>, </xsl:text>
  202.     <xsl:value-of select="$purpose"/>
  203.     <xsl:text>)</xsl:text>
  204.     <xsl:text>: [</xsl:text>
  205.     <xsl:value-of select="$template"/>
  206.     <xsl:text>]</xsl:text>
  207.   </xsl:message>
  208. -->
  209.  
  210.   <xsl:call-template name="substitute-markup">
  211.     <xsl:with-param name="purpose" select="$purpose"/>
  212.     <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
  213.     <xsl:with-param name="referrer" select="$referrer"/>
  214.     <xsl:with-param name="template" select="$template"/>
  215.   </xsl:call-template>
  216. </xsl:template>
  217.  
  218. <xsl:template match="listitem" mode="object.xref.markup">
  219.   <xsl:choose>
  220.     <xsl:when test="parent::orderedlist">
  221.       <xsl:variable name="template">
  222.         <xsl:apply-templates select="." mode="object.xref.template"/>
  223.       </xsl:variable>
  224.       <xsl:call-template name="substitute-markup">
  225.         <xsl:with-param name="template" select="$template"/>
  226.       </xsl:call-template>
  227.     </xsl:when>
  228.     <xsl:otherwise>
  229.       <xsl:message>
  230.         <xsl:text>Xref is only supported to listitems in an</xsl:text>
  231.         <xsl:text> orderedlist: </xsl:text>
  232.         <xsl:value-of select="@id"/>
  233.       </xsl:message>
  234.       <xsl:text>???</xsl:text>
  235.     </xsl:otherwise>
  236.   </xsl:choose>
  237. </xsl:template>
  238.  
  239. <!-- ============================================================ -->
  240.  
  241. <xsl:template name="substitute-markup">
  242.   <xsl:param name="template" select="''"/>
  243.   <xsl:param name="allow-anchors" select="'0'"/>
  244.   <xsl:param name="title" select="''"/>
  245.   <xsl:param name="subtitle" select="''"/>
  246.   <xsl:param name="label" select="''"/>
  247.   <xsl:param name="pagenumber" select="''"/>
  248.   <xsl:param name="purpose"/>
  249.   <xsl:param name="xrefstyle"/>
  250.   <xsl:param name="referrer"/>
  251.  
  252.   <xsl:choose>
  253.     <xsl:when test="contains($template, '%')">
  254.       <xsl:value-of select="substring-before($template, '%')"/>
  255.       <xsl:variable name="candidate"
  256.              select="substring(substring-after($template, '%'), 1, 1)"/>
  257.       <xsl:choose>
  258.         <xsl:when test="$candidate = 't'">
  259.           <xsl:apply-templates select="." mode="insert.title.markup">
  260.             <xsl:with-param name="purpose" select="$purpose"/>
  261.             <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
  262.             <xsl:with-param name="title">
  263.               <xsl:choose>
  264.                 <xsl:when test="$title != ''">
  265.                   <xsl:copy-of select="$title"/>
  266.                 </xsl:when>
  267.                 <xsl:otherwise>
  268.                   <xsl:apply-templates select="." mode="title.markup">
  269.                     <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
  270.                   </xsl:apply-templates>
  271.                 </xsl:otherwise>
  272.               </xsl:choose>
  273.             </xsl:with-param>
  274.           </xsl:apply-templates>
  275.         </xsl:when>
  276.         <xsl:when test="$candidate = 's'">
  277.           <xsl:apply-templates select="." mode="insert.subtitle.markup">
  278.             <xsl:with-param name="purpose" select="$purpose"/>
  279.             <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
  280.             <xsl:with-param name="subtitle">
  281.               <xsl:choose>
  282.                 <xsl:when test="$subtitle != ''">
  283.                   <xsl:copy-of select="$subtitle"/>
  284.                 </xsl:when>
  285.                 <xsl:otherwise>
  286.                   <xsl:apply-templates select="." mode="subtitle.markup">
  287.                     <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
  288.                   </xsl:apply-templates>
  289.                 </xsl:otherwise>
  290.               </xsl:choose>
  291.             </xsl:with-param>
  292.           </xsl:apply-templates>
  293.         </xsl:when>
  294.         <xsl:when test="$candidate = 'n'">
  295.           <xsl:apply-templates select="." mode="insert.label.markup">
  296.             <xsl:with-param name="purpose" select="$purpose"/>
  297.             <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
  298.             <xsl:with-param name="label">
  299.               <xsl:choose>
  300.                 <xsl:when test="$label != ''">
  301.                   <xsl:copy-of select="$label"/>
  302.                 </xsl:when>
  303.                 <xsl:otherwise>
  304.                   <xsl:apply-templates select="." mode="label.markup"/>
  305.                 </xsl:otherwise>
  306.               </xsl:choose>
  307.             </xsl:with-param>
  308.           </xsl:apply-templates>
  309.         </xsl:when>
  310.         <xsl:when test="$candidate = 'p'">
  311.           <xsl:apply-templates select="." mode="insert.pagenumber.markup">
  312.             <xsl:with-param name="purpose" select="$purpose"/>
  313.             <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
  314.             <xsl:with-param name="pagenumber">
  315.               <xsl:choose>
  316.                 <xsl:when test="$pagenumber != ''">
  317.                   <xsl:copy-of select="$pagenumber"/>
  318.                 </xsl:when>
  319.                 <xsl:otherwise>
  320.                   <xsl:apply-templates select="." mode="pagenumber.markup"/>
  321.                 </xsl:otherwise>
  322.               </xsl:choose>
  323.             </xsl:with-param>
  324.           </xsl:apply-templates>
  325.         </xsl:when>
  326.         <xsl:when test="$candidate = 'd'">
  327.           <xsl:apply-templates select="." mode="insert.direction.markup">
  328.             <xsl:with-param name="purpose" select="$purpose"/>
  329.             <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
  330.             <xsl:with-param name="direction">
  331.               <xsl:choose>
  332.                 <xsl:when test="$referrer">
  333.                   <xsl:variable name="referent-is-below">
  334.                     <xsl:for-each select="preceding::xref">
  335.                       <xsl:if test="generate-id(.) = generate-id($referrer)">1</xsl:if>
  336.                     </xsl:for-each>
  337.                   </xsl:variable>
  338.                   <xsl:choose>
  339.                     <xsl:when test="$referent-is-below = ''">
  340.                       <xsl:call-template name="gentext">
  341.                         <xsl:with-param name="key" select="'above'"/>
  342.                       </xsl:call-template>
  343.                     </xsl:when>
  344.                     <xsl:otherwise>
  345.                       <xsl:call-template name="gentext">
  346.                         <xsl:with-param name="key" select="'below'"/>
  347.                       </xsl:call-template>
  348.                     </xsl:otherwise>
  349.                   </xsl:choose>
  350.                 </xsl:when>
  351.                 <xsl:otherwise>
  352.                   <xsl:message>Attempt to use %d in gentext with no referrer!</xsl:message>
  353.                 </xsl:otherwise>
  354.               </xsl:choose>
  355.             </xsl:with-param>
  356.           </xsl:apply-templates>
  357.         </xsl:when>
  358.         <xsl:when test="$candidate = '%' ">
  359.           <xsl:text>%</xsl:text>
  360.         </xsl:when>
  361.         <xsl:otherwise>
  362.           <xsl:text>%</xsl:text><xsl:value-of select="$candidate"/>
  363.         </xsl:otherwise>
  364.       </xsl:choose>
  365.       <!-- recurse with the rest of the template string -->
  366.       <xsl:variable name="rest"
  367.             select="substring($template,
  368.             string-length(substring-before($template, '%'))+3)"/>
  369.       <xsl:call-template name="substitute-markup">
  370.         <xsl:with-param name="template" select="$rest"/>
  371.         <xsl:with-param name="allow-anchors" select="$allow-anchors"/>
  372.         <xsl:with-param name="title" select="$title"/>
  373.         <xsl:with-param name="subtitle" select="$subtitle"/>
  374.         <xsl:with-param name="label" select="$label"/>
  375.         <xsl:with-param name="pagenumber" select="$label"/>
  376.         <xsl:with-param name="purpose" select="$purpose"/>
  377.         <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
  378.         <xsl:with-param name="referrer" select="$referrer"/>
  379.       </xsl:call-template>
  380.     </xsl:when>
  381.     <xsl:otherwise>
  382.       <xsl:value-of select="$template"/>
  383.     </xsl:otherwise>
  384.   </xsl:choose>
  385. </xsl:template>
  386.  
  387. <!-- ============================================================ -->
  388.  
  389. </xsl:stylesheet>
  390.  
  391.