programming2db.xsl 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225
  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <!-- This file is part of the DITA Open Toolkit project hosted on
  3. Sourceforge.net. See the accompanying license.txt file for
  4. applicable licenses.-->
  5. <!-- (c) Copyright IBM Corp. 2004, 2005 All Rights Reserved. -->
  6. <xsl:stylesheet version="2.0"
  7. xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  8. <xsl:output
  9. method="xml"
  10. indent="yes"
  11. omit-xml-declaration="no"
  12. standalone="no"
  13. doctype-public="-//OASIS//DTD DocBook XML V4.1.2//EN"
  14. doctype-system="docbookx.dtd"/>
  15. <xsl:template match="*[contains(@class,' pr-d/codeblock ')]">
  16. <programlisting>
  17. <xsl:call-template name="setStandardAttr">
  18. <xsl:with-param name="IDPrefix" select="'cdblk'"/>
  19. </xsl:call-template>
  20. <xsl:apply-templates/>
  21. </programlisting>
  22. </xsl:template>
  23. <!-- parml handled by base dl processing -->
  24. <xsl:template match="*[contains(@class,' pr-d/apiname ')]">
  25. <function>
  26. <xsl:call-template name="setStandardAttr">
  27. <xsl:with-param name="IDPrefix" select="'apinm'"/>
  28. </xsl:call-template>
  29. <xsl:apply-templates/>
  30. </function>
  31. </xsl:template>
  32. <xsl:template match="*[contains(@class,' pr-d/codeph ')]">
  33. <literal>
  34. <xsl:call-template name="setStandardAttr">
  35. <xsl:with-param name="IDPrefix" select="'cdph'"/>
  36. </xsl:call-template>
  37. <xsl:apply-templates/>
  38. </literal>
  39. </xsl:template>
  40. <xsl:template match="*[contains(@class,' pr-d/option ')]">
  41. <option>
  42. <xsl:call-template name="setStandardAttr">
  43. <xsl:with-param name="IDPrefix" select="'optn'"/>
  44. </xsl:call-template>
  45. <xsl:apply-templates/>
  46. </option>
  47. </xsl:template>
  48. <xsl:template match="*[contains(@class,' pr-d/parmname ')]">
  49. <parameter>
  50. <xsl:call-template name="setStandardAttr">
  51. <xsl:with-param name="IDPrefix" select="'prmnm'"/>
  52. </xsl:call-template>
  53. <xsl:apply-templates/>
  54. </parameter>
  55. </xsl:template>
  56. <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  57. - SYNTAX
  58. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
  59. <xsl:template match="*[contains(@class,' pr-d/syntaxdiagram ')]">
  60. <xsl:call-template name="wrapTitle">
  61. <xsl:with-param name="wrapElem" select="'blockquote'"/>
  62. <xsl:with-param name="coreElem" select="'synopsis'"/>
  63. <xsl:with-param name="titleSpec" select="' topic/title '"/>
  64. <xsl:with-param name="IDPrefix" select="'syntx'"/>
  65. </xsl:call-template>
  66. </xsl:template>
  67. <xsl:template match="*[contains(@class,' pr-d/syntaxdiagram ')] /
  68. *[contains(@class,' topic/title ')] |
  69. *[contains(@class,' pr-d/synblk ')] /
  70. *[contains(@class,' topic/title ')]">
  71. <emphasis role="bold">
  72. <xsl:call-template name="setStandardAttr">
  73. <xsl:with-param name="IDPrefix" select="'synttl'"/>
  74. </xsl:call-template>
  75. <xsl:apply-templates/>
  76. </emphasis>
  77. </xsl:template>
  78. <xsl:template match="*[contains(@class,' pr-d/synblk ')]">
  79. <synopsis>
  80. <xsl:call-template name="setStandardAttr">
  81. <xsl:with-param name="IDPrefix" select="'synblk'"/>
  82. </xsl:call-template>
  83. <xsl:apply-templates/>
  84. </synopsis>
  85. </xsl:template>
  86. <xsl:template match="*[contains(@class,' pr-d/groupseq ')]">
  87. <synopsis>
  88. <xsl:call-template name="setStandardAttr">
  89. <xsl:with-param name="IDPrefix" select="'grpsq'"/>
  90. </xsl:call-template>
  91. <xsl:apply-templates/>
  92. </synopsis>
  93. </xsl:template>
  94. <!-- each subelement might be wrapped in an optional element -->
  95. <xsl:template match="*[contains(@class,' pr-d/groupchoice ')]">
  96. <synopsis>
  97. <xsl:call-template name="setStandardAttr">
  98. <xsl:with-param name="IDPrefix" select="'grpchc'"/>
  99. </xsl:call-template>
  100. <xsl:apply-templates/>
  101. </synopsis>
  102. </xsl:template>
  103. <xsl:template match="*[contains(@class,' pr-d/groupcomp ')]">
  104. <synopsis>
  105. <xsl:call-template name="setStandardAttr">
  106. <xsl:with-param name="IDPrefix" select="'grpcmp'"/>
  107. </xsl:call-template>
  108. <xsl:apply-templates/>
  109. </synopsis>
  110. </xsl:template>
  111. <xsl:template match="*[contains(@class,' pr-d/fragref ')]">
  112. <xref role="fragref" linkend="{@href}">
  113. <xsl:call-template name="setStandardAttr">
  114. <xsl:with-param name="IDPrefix" select="'frgrf'"/>
  115. </xsl:call-template>
  116. </xref>
  117. </xsl:template>
  118. <xsl:template match="*[contains(@class,' pr-d/fragment ')]">
  119. <synopsis>
  120. <xsl:call-template name="setStandardAttr">
  121. <xsl:with-param name="IDPrefix" select="'frgmnt'"/>
  122. </xsl:call-template>
  123. <xsl:apply-templates/>
  124. </synopsis>
  125. </xsl:template>
  126. <xsl:template match="*[contains(@class,' pr-d/synnote ')]">
  127. <xsl:call-template name="footnote">
  128. <xsl:with-param name="IDPrefix" select="'synnt'"/>
  129. </xsl:call-template>
  130. </xsl:template>
  131. <xsl:template match="*[contains(@class,' pr-d/synnoteref ')]">
  132. <footnoteref role="synnoteref" linkend="{@href}">
  133. <xsl:call-template name="setStandardAttr">
  134. <xsl:with-param name="IDPrefix" select="'frgrf'"/>
  135. </xsl:call-template>
  136. </footnoteref>
  137. </xsl:template>
  138. <xsl:template match="*[contains(@class,' pr-d/var ')]">
  139. <symbol>
  140. <xsl:call-template name="setStandardAttr">
  141. <xsl:with-param name="IDPrefix" select="'var'"/>
  142. </xsl:call-template>
  143. <xsl:apply-templates/>
  144. </symbol>
  145. </xsl:template>
  146. <xsl:template match="*[contains(@class,' pr-d/kwd ')]">
  147. <xsl:call-template name="programtext">
  148. <xsl:with-param name="IDPrefix" select="'kwd'"/>
  149. </xsl:call-template>
  150. </xsl:template>
  151. <xsl:template match="*[contains(@class,' pr-d/oper ')]">
  152. <literal>
  153. <xsl:call-template name="setStandardAttr">
  154. <xsl:with-param name="IDPrefix" select="'oper'"/>
  155. </xsl:call-template>
  156. <xsl:if test="@optreq">
  157. <xsl:attribute name="role">
  158. <xsl:value-of select="@optreq"/>
  159. </xsl:attribute>
  160. </xsl:if>
  161. <xsl:apply-templates/>
  162. </literal>
  163. </xsl:template>
  164. <xsl:template match="*[contains(@class,' pr-d/delim ')]">
  165. <literal>
  166. <xsl:call-template name="setStandardAttr">
  167. <xsl:with-param name="IDPrefix" select="'delm'"/>
  168. </xsl:call-template>
  169. <xsl:if test="@optreq">
  170. <xsl:attribute name="role">
  171. <xsl:value-of select="@optreq"/>
  172. </xsl:attribute>
  173. </xsl:if>
  174. <xsl:apply-templates select="@convar|@startend" mode="deflate"/>
  175. <xsl:apply-templates/>
  176. </literal>
  177. </xsl:template>
  178. <xsl:template match="*[contains(@class,' pr-d/sep ')]">
  179. <xsl:call-template name="programtext">
  180. <xsl:with-param name="IDPrefix" select="'sep'"/>
  181. </xsl:call-template>
  182. </xsl:template>
  183. <xsl:template match="*[contains(@class,' pr-d/repsep ')]">
  184. <xsl:call-template name="programtext">
  185. <xsl:with-param name="IDPrefix" select="'repsp'"/>
  186. </xsl:call-template>
  187. </xsl:template>
  188. <!-- DITA synopsis is a phrase, DocBook synopsis a block -->
  189. <xsl:template match="*[contains(@class,' pr-d/synph ')]">
  190. <literal>
  191. <xsl:call-template name="setStandardAttr">
  192. <xsl:with-param name="IDPrefix" select="'snps'"/>
  193. </xsl:call-template>
  194. <xsl:apply-templates/>
  195. </literal>
  196. </xsl:template>
  197. </xsl:stylesheet>