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

  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!--  domains.xsl 1.03; 2002 May 8
  3.  | DITA domains support for the demo set; extend as needed
  4.  |
  5.  | Copyright IBM Corporation, 2002
  6.  | This file is part of the DITA package on IBM's developerWorks site.
  7.  | See license.txt for disclaimers.
  8.  *-->
  9. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  10.  
  11. <xsl:output method="xml"
  12.             encoding="iso-8859-1"
  13.             indent="yes"
  14.             doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
  15.             doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
  16. />
  17.  
  18.  
  19.  
  20. <!-- Start of UI domain -->
  21.  
  22. <xsl:template match="*[contains(@class,' ui-d/uicontrol ')]" priority="2">
  23.   <!-- insert an arrow before all but the first uicontrol in a menucascade -->
  24.   <xsl:if test="ancestor::*[contains(@class,' ui-d/menucascade ')]">
  25.     <xsl:variable name="uicontrolcount"><xsl:number count="*[contains(@class,' ui-d/uicontrol ')]"/></xsl:variable>
  26.     <xsl:if test="$uicontrolcount>'1'">
  27.       <xsl:text> --> </xsl:text>
  28.     </xsl:if>
  29.   </xsl:if>
  30.   <b>
  31.     <xsl:call-template name="setclass"/>
  32.     <xsl:apply-templates select="@id"/>
  33.     <xsl:apply-templates/>
  34.   </b>
  35. </xsl:template>
  36.  
  37.  
  38. <xsl:template match="*[contains(@class,' ui-d/wintitle ')]" priority="2">
  39.   <span>
  40.     <xsl:call-template name="setclass"/>
  41.     <xsl:apply-templates select="@id"/>
  42.     <xsl:apply-templates/>
  43.   </span>
  44. </xsl:template>
  45.  
  46.  
  47. <xsl:template match="*[contains(@class,' ui-d/menucascade ')]" priority="2">
  48.   <span>
  49.     <xsl:call-template name="setclass"/>
  50.     <xsl:apply-templates select="@id"/>
  51.     <xsl:apply-templates/>
  52.   </span>
  53. </xsl:template>
  54.  
  55.  
  56. <xsl:template match="*[contains(@class,' ui-d/shortcut ')]" priority="2">
  57.   <u>
  58.     <xsl:call-template name="setclass"/>
  59.     <xsl:apply-templates select="@id"/>
  60.     <xsl:apply-templates/>
  61.   </u>
  62. </xsl:template>
  63.  
  64.  
  65. <!-- start of highlighting domain -->
  66.  
  67. <xsl:template match="*[contains(@class,' hi-d/b ')]" priority="2">
  68.   <b>
  69.     <xsl:call-template name="setclass"/>
  70.     <xsl:apply-templates select="@id"/>
  71.     <xsl:apply-templates/>
  72.   </b>
  73. </xsl:template>
  74.  
  75.  
  76. <xsl:template match="*[contains(@class,' hi-d/i ')]" priority="2">
  77.   <i>
  78.     <xsl:call-template name="setclass"/>
  79.     <xsl:apply-templates select="@id"/>
  80.     <xsl:apply-templates/>
  81.   </i>
  82. </xsl:template>
  83.  
  84.  
  85. <xsl:template match="*[contains(@class,' hi-d/u ')]" priority="2">
  86.   <u>
  87.     <xsl:call-template name="setclass"/>
  88.     <xsl:apply-templates select="@id"/>
  89.     <xsl:apply-templates/>
  90.   </u>
  91. </xsl:template>
  92.  
  93.  
  94. <xsl:template match="*[contains(@class,' hi-d/tt ')]" priority="2">
  95.   <tt>
  96.     <xsl:call-template name="setclass"/>
  97.     <xsl:apply-templates select="@id"/>
  98.     <xsl:apply-templates/>
  99.   </tt>
  100. </xsl:template>
  101.  
  102.  
  103. <xsl:template match="*[contains(@class,' hi-d/sup ')]" priority="2">
  104.   <sup>
  105.     <xsl:call-template name="setclass"/>
  106.     <xsl:apply-templates select="@id"/>
  107.     <xsl:apply-templates/>
  108.   </sup>
  109. </xsl:template>
  110.  
  111.  
  112. <xsl:template match="*[contains(@class,' hi-d/sub ')]" priority="2">
  113.   <sub>
  114.     <xsl:call-template name="setclass"/>
  115.     <xsl:apply-templates select="@id"/>
  116.     <xsl:apply-templates/>
  117.   </sub>
  118. </xsl:template>
  119.  
  120.  
  121. <!-- start of programming domain -->
  122.  
  123. <xsl:template match="*[contains(@class,' pr-d/codeph ')]" priority="2">
  124.   <code>
  125.     <xsl:call-template name="setclass"/>
  126.     <xsl:apply-templates select="@id"/>
  127.     <xsl:apply-templates/>
  128.   </code>
  129. </xsl:template>
  130.  
  131.  
  132. <xsl:template match="*[contains(@class,' pr-d/codeblock ')]" priority="2">
  133.   <xsl:if test="contains(@frame,'top')"><hr /></xsl:if>
  134.   <xsl:call-template name="gen-att-label"/>
  135.   <pre>
  136.     <xsl:call-template name="setclass"/>
  137.     <xsl:apply-templates select="@id"/>
  138.     <xsl:if test="@scale">
  139.       <xsl:attribute name="style">font-size: <xsl:value-of select="@scale"/>%;</xsl:attribute>
  140.     </xsl:if>
  141.     <xsl:apply-templates/>
  142.   </pre>
  143.   <xsl:if test="contains(@frame,'bot')"><hr /></xsl:if>
  144. </xsl:template>
  145.  
  146.  
  147. <xsl:template match="*[contains(@class,' pr-d/option ')]" priority="2">
  148.   <span>
  149.     <xsl:call-template name="setclass"/>
  150.     <xsl:apply-templates select="@id"/>
  151.     <xsl:apply-templates/>
  152.   </span>
  153. </xsl:template>
  154.  
  155.  
  156. <xsl:template match="*[contains(@class,' pr-d/var ')]" priority="2">
  157.   <var>
  158.     <xsl:call-template name="setclass"/>
  159.     <xsl:apply-templates select="@id"/>
  160.     <xsl:apply-templates/>
  161.   </var>
  162. </xsl:template>
  163.  
  164.  
  165. <xsl:template match="*[contains(@class,' pr-d/parmname ')]" priority="2">
  166.   <span>
  167.     <xsl:call-template name="setclass"/>
  168.     <xsl:apply-templates select="@id"/>
  169.     <xsl:apply-templates/>
  170.   </span>
  171. </xsl:template>
  172.  
  173.  
  174. <xsl:template match="*[contains(@class,' pr-d/synph ')]" priority="2">
  175.   <span>
  176.     <xsl:call-template name="setclass"/>
  177.     <xsl:apply-templates select="@id"/>
  178.     <xsl:apply-templates/>
  179.   </span>
  180. </xsl:template>
  181.  
  182.  
  183. <xsl:template match="*[contains(@class,' pr-d/oper ')]" priority="2">
  184.   <kbd>
  185.     <xsl:call-template name="setclass"/>
  186.     <xsl:apply-templates select="@id"/>
  187.     <xsl:apply-templates/>
  188.   </kbd>
  189. </xsl:template>
  190.  
  191.  
  192. <xsl:template match="*[contains(@class,' pr-d/delim ')]" priority="2">
  193.   <kbd>
  194.     <xsl:call-template name="setclass"/>
  195.     <xsl:apply-templates select="@id"/>
  196.     <xsl:apply-templates/>
  197.   </kbd>
  198. </xsl:template>
  199.  
  200.  
  201. <xsl:template match="*[contains(@class,' pr-d/sep ')]" priority="2">
  202.   <kbd>
  203.     <xsl:call-template name="setclass"/>
  204.     <xsl:apply-templates select="@id"/>
  205.     <xsl:apply-templates/>
  206.   </kbd>
  207. </xsl:template>
  208.  
  209.  
  210.  
  211. <xsl:template match="*[contains(@class,' pr-d/apiname ')]" priority="2">
  212.   <span>
  213.     <xsl:call-template name="setclass"/>
  214.     <xsl:apply-templates select="@id"/>
  215.     <xsl:apply-templates/>
  216.   </span>
  217. </xsl:template>
  218.  
  219.  
  220. <xsl:template match="*[contains(@class,' pr-d/parml ')]" priority="2">
  221.   <xsl:call-template name="gen-att-label"/>
  222.   <dl>
  223.     <xsl:call-template name="setclass"/>
  224.     <xsl:apply-templates select="@compact"/>
  225.     <xsl:apply-templates select="@id"/>
  226.     <xsl:apply-templates/>
  227.   </dl>
  228. </xsl:template>
  229.  
  230.  
  231. <xsl:template match="*[contains(@class,' pr-d/plentry ')]" priority="2">
  232.   <xsl:apply-templates/>
  233. </xsl:template>
  234.  
  235.  
  236. <xsl:template match="*[contains(@class,' pr-d/pt ')]" priority="2">
  237.   <dt>
  238.     <xsl:call-template name="setclass"/>
  239.     <xsl:apply-templates select="@id"/>
  240.     <b><xsl:apply-templates/></b>
  241.   </dt>
  242. </xsl:template>
  243.  
  244.  
  245. <xsl:template match="*[contains(@class,' pr-d/pd ')]" priority="2">
  246.   <dd>
  247.     <xsl:call-template name="setclass"/>
  248.     <xsl:apply-templates select="@id"/>
  249.     <xsl:apply-templates/>
  250.   </dd>
  251. </xsl:template>
  252.  
  253.  
  254. <!-- syntax diagram -->
  255.  
  256. <xsl:template match="*[contains(@class,' pr-d/synblk ')]" priority="2">
  257.   <span>
  258.     <xsl:call-template name="setclass"/>
  259.     <xsl:apply-templates select="@id"/>
  260.     <xsl:apply-templates/>
  261.   </span>
  262. </xsl:template>
  263.  
  264.  
  265. <xsl:template name="gen-synnotes">
  266.   <h3>Notes:</h3>
  267.   <xsl:for-each select="//synnote">
  268.     <xsl:call-template name="dosynnt"/>
  269.   </xsl:for-each>
  270. </xsl:template>
  271.  
  272. <xsl:template name="dosynnt"> <!-- creates a list of endnotes of synnt content -->
  273.  <xsl:variable name="callout">
  274.   <xsl:choose>
  275.    <xsl:when test="@callout"><xsl:value-of select="@callout"/></xsl:when>
  276.    <xsl:otherwise><xsl:value-of select="@id"/></xsl:otherwise>
  277.   </xsl:choose>
  278.  </xsl:variable>
  279.  <a name="{@id}">{<xsl:value-of select="$callout"/>}</a>
  280.  <table border="1" cellpadding="6">
  281.    <tr><td bgcolor="LightGrey">
  282.      <xsl:apply-templates/>
  283.    </td></tr>
  284.  </table>
  285. </xsl:template>
  286.  
  287.  
  288. <xsl:template match="*[contains(@class,' pr-d/synnoteref ')]" priority="2">
  289. <sup>
  290.   <xsl:element name="a">
  291.   <xsl:attribute name="href">#FNsrc_<xsl:value-of select="@refid"/>
  292.   </xsl:attribute>
  293.     [<xsl:value-of select="@refid"/>]
  294.   </xsl:element>
  295. </sup>
  296. </xsl:template>
  297.  
  298.  
  299. <xsl:template match="*[contains(@class,' pr-d/synnote ')]" priority="2">
  300.   <xsl:choose>
  301.     <xsl:when test="not(@id='')"> <!-- case of an explicit id -->
  302.       <sup>(explicit id <xsl:value-of select="@id"/>)
  303.         <xsl:element name="a">
  304.           <xsl:attribute name="name">FNsrc_<xsl:value-of select="@id"/></xsl:attribute>
  305.           <xsl:attribute name="href">#FNtarg_<xsl:value-of select="@id"/></xsl:attribute>
  306.             <xsl:value-of select="@id"/>
  307.         </xsl:element>
  308.       </sup>
  309.     </xsl:when>
  310.     <xsl:when test="not(@callout='')"> <!-- case of an explicit callout (presume id for now) -->
  311.       <sup>(callout <xsl:value-of select="@callout"/>)
  312.         <xsl:element name="a">
  313.           <xsl:attribute name="name">FNsrc_<xsl:value-of select="@id"/></xsl:attribute>
  314.           <xsl:attribute name="href">#FNtarg_<xsl:value-of select="@id"/></xsl:attribute>
  315.             <xsl:value-of select="@callout"/>
  316.         </xsl:element>
  317.       </sup>
  318.     </xsl:when>
  319.     <xsl:otherwise>
  320.         <xsl:element name="a">
  321.           <xsl:attribute name="href">#</xsl:attribute>
  322.           <xsl:attribute name="onMouseOver">
  323.             <xsl:text>alert('</xsl:text><xsl:apply-templates/><xsl:text>')</xsl:text>
  324.           </xsl:attribute>*</xsl:element>
  325.     </xsl:otherwise>
  326.   </xsl:choose>
  327. </xsl:template>
  328.  
  329.  
  330.  
  331. <xsl:template match="*[contains(@class,' pr-d/syntaxdiagram ')]" priority="2">
  332.     <div style="color: red; margin-bottom: 6pt;">
  333.     <xsl:apply-templates/>
  334.     </div>
  335. </xsl:template>
  336.  
  337. <xsl:template match="*[contains(@class,' pr-d/fragment ')]" priority="2">
  338.     <div>
  339.     <a><xsl:attribute name="name"><xsl:value-of select="title"/></xsl:attribute> </a>
  340.     <xsl:apply-templates/>
  341.     </div>
  342. </xsl:template>
  343.  
  344. <!-- Title is optional-->
  345. <xsl:template match="syntaxdiagram/title">
  346.     <h3>
  347.     <xsl:value-of select="."/>
  348.     </h3>
  349. </xsl:template>
  350.  
  351. <!-- Basically, we want to hide his content. -->
  352. <xsl:template match="*[contains(@class,' pr-d/repsep ')]" priority="2"/>
  353.  
  354.  
  355. <xsl:template match="*[contains(@class,' pr-d/kwd ')]" priority="2">
  356. <kbd>
  357.   <xsl:if test="parent::groupchoice"><xsl:if test="count(preceding-sibling::*)!=0"> | </xsl:if></xsl:if>
  358.   <xsl:if test="@importance='optional'"> [</xsl:if>
  359.   <xsl:choose>
  360.     <xsl:when test="@importance='default'"><u><xsl:value-of select="."/></u></xsl:when>
  361.     <xsl:otherwise><xsl:value-of select="."/></xsl:otherwise>
  362.   </xsl:choose>
  363.   <xsl:if test="@importance='optional'">] </xsl:if>
  364. </kbd>
  365. </xsl:template>
  366.  
  367. <!-- This should test to see if there's a fragment with matching title 
  368. and if so, produce an associative link. -->
  369. <xsl:template match="*[contains(@class,' pr-d/fragref ')]" priority="100">
  370.     <kbd>
  371.       <a><xsl:attribute name="href">#<xsl:value-of select="."/></xsl:attribute>
  372.     <<xsl:value-of select="."/>></a>
  373.     </kbd>
  374. </xsl:template>
  375.  
  376. <!-- Where is the template for var with a priority of 50? -->
  377. <xsl:template match="var" priority="51">
  378.  <var>
  379.   <xsl:if test="parent::groupchoice"> | </xsl:if>
  380.   <xsl:if test="@importance='optional'"> [</xsl:if>
  381.   <xsl:choose>
  382.     <xsl:when test="@importance='default'"><u><xsl:value-of select="."/></u></xsl:when>
  383.     <xsl:otherwise><xsl:value-of select="."/></xsl:otherwise>
  384.   </xsl:choose>
  385.   <xsl:if test="@importance='optional'">] </xsl:if>
  386.  </var>
  387. </xsl:template>
  388.  
  389.  
  390. <xsl:template match="fragment/title">
  391.     <h4><xsl:apply-templates/></h4>
  392. </xsl:template>
  393.  
  394. <xsl:template match="fragment/groupcomp|fragment/groupchoice|fragment/groupseq">
  395.     <blockquote>
  396.     <xsl:call-template name="dogroup"/>
  397.     </blockquote>
  398. </xsl:template>
  399.  
  400.  
  401. <xsl:template match="syntaxdiagram/*[contains(@class,' pr-d/groupcomp ')]|syntaxdiagram/*[contains(@class,' pr-d/groupseq ')]|syntaxdiagram/*[contains(@class,' pr-d/groupchoice ')]">
  402.     <xsl:call-template name="dogroup"/>
  403. </xsl:template>
  404.  
  405.  
  406. <!-- okay, here we have to work each permutation because figgroup/figroup fallback is too general -->
  407. <xsl:template match="*[contains(@class,' pr-d/groupcomp ')]/*[contains(@class,' pr-d/groupcomp ')]">
  408.     <xsl:call-template name="dogroup"/>
  409. </xsl:template>
  410.  
  411. <xsl:template match="*[contains(@class,' pr-d/groupchoice ')]/*[contains(@class,' pr-d/groupchoice ')]">
  412.     <xsl:call-template name="dogroup"/>
  413. </xsl:template>
  414.  
  415. <xsl:template match="*[contains(@class,' pr-d/groupseq ')]/*[contains(@class,' pr-d/groupseq ')]">
  416.     <xsl:call-template name="dogroup"/>
  417. </xsl:template>
  418.  
  419. <xsl:template match="*[contains(@class,' pr-d/groupchoice ')]/*[contains(@class,' pr-d/groupcomp ')]">
  420.     <xsl:call-template name="dogroup"/>
  421. </xsl:template>
  422. <xsl:template match="*[contains(@class,' pr-d/groupchoice ')]/*[contains(@class,' pr-d/groupseq ')]">
  423.     <xsl:call-template name="dogroup"/>
  424. </xsl:template>
  425.  
  426. <xsl:template match="*[contains(@class,' pr-d/groupcomp ')]/*[contains(@class,' pr-d/groupchoice ')]">
  427.     <xsl:call-template name="dogroup"/>
  428. </xsl:template>
  429.  
  430. <xsl:template match="*[contains(@class,' pr-d/groupcomp ')]/*[contains(@class,' pr-d/groupseq ')]">
  431.     <xsl:call-template name="dogroup"/>
  432. </xsl:template>
  433.  
  434. <xsl:template match="*[contains(@class,' pr-d/groupseq ')]/*[contains(@class,' pr-d/groupchoice ')]">
  435.     <xsl:call-template name="dogroup"/>
  436. </xsl:template>
  437.  
  438. <xsl:template match="*[contains(@class,' pr-d/groupseq ')]/*[contains(@class,' pr-d/groupcomp ')]">
  439.     <xsl:call-template name="dogroup"/>
  440. </xsl:template>
  441.  
  442. <!--
  443. <xsl:template match="*[contains(@class,' topic/figgroup ')]/*[contains(@class,' topic/figgroup ')]">
  444.     <xsl:call-template name="dogroup"/>
  445. </xsl:template>
  446. -->
  447.  
  448.  
  449.     <!--xsl:if test="../@choiceseq='choice'"> | </xsl:if-->
  450. <xsl:template name="dogroup">
  451.     <xsl:if test="parent::groupchoice">
  452.         <xsl:if test="count(preceding-sibling::*)!=0"> | </xsl:if>
  453.     </xsl:if>
  454.     <xsl:if test="@importance='optional'">[</xsl:if>
  455.     <xsl:if test="name()='groupchoice'">{</xsl:if>
  456.       <xsl:text> </xsl:text><xsl:apply-templates/><xsl:text> </xsl:text>
  457. <!-- repid processed here before -->
  458.     <xsl:if test="name()='groupchoice'">}</xsl:if>
  459.     <xsl:if test="@importance='optional'">]</xsl:if>
  460. </xsl:template>
  461.  
  462. <xsl:template match="*[contains(@class,' pr-d/groupcomp ')]/title|*[contains(@class,' pr-d/groupseq ')]/title|*[contains(@class,' pr-d/groupseq ')]|title"/>  <!-- Consume title -->
  463.  
  464.  
  465.  
  466.  
  467.  
  468.  
  469.  
  470.  
  471. <!-- start of software domain elements -->
  472.  
  473. <xsl:template match="*[contains(@class,' sw-d/msgph ')]" priority="2">
  474.   <code>
  475.     <xsl:call-template name="setclass"/>
  476.     <xsl:apply-templates select="@id"/>
  477.     <xsl:apply-templates/>
  478.   </code>
  479. </xsl:template>
  480.  
  481.  
  482. <xsl:template match="*[contains(@class,' sw-d/msgblock ')]" priority="2">
  483.   <xsl:if test="contains(@frame,'top')"><hr /></xsl:if>
  484.   <xsl:call-template name="gen-att-label"/>
  485.   <pre>
  486.     <xsl:call-template name="setclass"/>
  487.     <xsl:apply-templates select="@id"/>
  488.     <xsl:if test="@scale">
  489.       <xsl:attribute name="style">font-size: <xsl:value-of select="@scale"/>%;</xsl:attribute>
  490.     </xsl:if>
  491.     <xsl:apply-templates/>
  492.   </pre>
  493.   <xsl:if test="contains(@frame,'bot')"><hr /></xsl:if>
  494. </xsl:template>
  495.  
  496.  
  497. <xsl:template match="*[contains(@class,' sw-d/msgnum ')]" priority="2">
  498.   <span>
  499.     <xsl:call-template name="setclass"/>
  500.     <xsl:apply-templates select="@id"/>
  501.     <xsl:apply-templates/>
  502.   </span>
  503. </xsl:template>
  504.  
  505.  
  506. <xsl:template match="*[contains(@class,' sw-d/cmdname ')]" priority="2">
  507.   <span>
  508.     <xsl:call-template name="setclass"/>
  509.     <xsl:apply-templates select="@id"/>
  510.     <xsl:apply-templates/>
  511.   </span>
  512. </xsl:template>
  513.  
  514.  
  515. <xsl:template match="*[contains(@class,' sw-d/varname ')]" priority="2">
  516.   <var>
  517.     <xsl:call-template name="setclass"/>
  518.     <xsl:apply-templates select="@id"/>
  519.     <xsl:apply-templates/>
  520.   </var>
  521. </xsl:template>
  522.  
  523.  
  524. <xsl:template match="*[contains(@class,' sw-d/filepath ')]" priority="2">
  525.   <tt>
  526.     <xsl:call-template name="setclass"/>
  527.     <xsl:apply-templates select="@id"/>
  528.     <xsl:apply-templates/>
  529.   </tt>
  530. </xsl:template>
  531.  
  532.  
  533. <xsl:template match="*[contains(@class,' sw-d/userinput ')]" priority="2">
  534.   <kbd>
  535.     <xsl:call-template name="setclass"/>
  536.     <xsl:apply-templates select="@id"/>
  537.     <xsl:apply-templates/>
  538.   </kbd>
  539. </xsl:template>
  540.  
  541.  
  542. <xsl:template match="*[contains(@class,' sw-d/systemoutput ')]" priority="2">
  543.   <code>
  544.     <xsl:call-template name="setclass"/>
  545.     <xsl:apply-templates select="@id"/>
  546.     <xsl:apply-templates/>
  547.   </code>
  548. </xsl:template>
  549.  
  550. </xsl:stylesheet>
  551.  
  552.