map2pluginImpl.xsl 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348
  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. 2006 All Rights Reserved. -->
  6. <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
  7. <xsl:import href="plugin:org.dita.base:xsl/common/output-message.xsl"/>
  8. <xsl:param name="version">0.0.0</xsl:param>
  9. <xsl:param name="provider">DITA</xsl:param>
  10. <xsl:param name="TOCROOT">toc</xsl:param>
  11. <xsl:param name="osgi.symbolic.name" select="''"/>
  12. <xsl:param name="fragment.country" select="''"/>
  13. <xsl:param name="fragment.lang" select="''"/>
  14. <xsl:param name="dita.plugin.output" />
  15. <xsl:param name="plugin"/>
  16. <xsl:variable name="newline">
  17. <xsl:text>&#10;</xsl:text></xsl:variable>
  18. <!-- Define the error message prefix identifier -->
  19. <!-- Deprecated since 2.3 -->
  20. <xsl:variable name="msgprefix">DOTX</xsl:variable>
  21. <xsl:template match="/">
  22. <xsl:call-template name="eclipse.plugin.init"/>
  23. </xsl:template>
  24. <xsl:template name="eclipse.plugin.init">
  25. <xsl:if test="$dita.plugin.output !=''">
  26. <xsl:choose>
  27. <xsl:when test="$dita.plugin.output ='dita.eclipse.fragment'">
  28. <xsl:apply-templates mode="eclipse.fragment"/>
  29. </xsl:when>
  30. <xsl:when test="$dita.plugin.output ='dita.eclipse.properties'">
  31. <xsl:apply-templates mode="eclipse.properties"/>
  32. </xsl:when>
  33. <xsl:when test="$dita.plugin.output ='dita.eclipse.manifest'">
  34. <xsl:apply-templates mode="eclipse.manifest"/>
  35. </xsl:when>
  36. <xsl:when test="$dita.plugin.output ='dita.eclipse.plugin'">
  37. <xsl:apply-templates mode="eclipse.plugin"/>
  38. </xsl:when>
  39. <!-- XSLT 2.0 param value used to generate all eclipse plugin related files.-->
  40. <xsl:when test="$dita.plugin.output ='dita.eclipse.all'">
  41. </xsl:when>
  42. <!-- Produce the content for the plugin.xml file -->
  43. <xsl:otherwise>
  44. <xsl:apply-templates />
  45. </xsl:otherwise>
  46. </xsl:choose>
  47. </xsl:if>
  48. <xsl:if test="$dita.plugin.output =''">
  49. <xsl:apply-templates />
  50. </xsl:if>
  51. </xsl:template>
  52. <!-- Depracated Template: Use the template with mode="eclipse.plugin" instead -->
  53. <xsl:template match="*[contains(@class, ' map/map ')]">
  54. <xsl:element name="plugin">
  55. <xsl:attribute name="name">
  56. <xsl:choose>
  57. <xsl:when test="*[contains(@class, ' topic/title ')]">
  58. <xsl:apply-templates select="*[contains(@class,' topic/title ')]" mode="text-only"/>
  59. </xsl:when>
  60. <xsl:when test="@title">
  61. <xsl:value-of select="@title"/>
  62. </xsl:when>
  63. <xsl:otherwise>
  64. <xsl:text>Sample Title</xsl:text>
  65. </xsl:otherwise>
  66. </xsl:choose>
  67. </xsl:attribute>
  68. <xsl:attribute name="id">
  69. <xsl:choose>
  70. <xsl:when test="@id">
  71. <xsl:value-of select="@id"/>
  72. </xsl:when>
  73. <xsl:otherwise>
  74. <xsl:text>org.sample.help.doc</xsl:text>
  75. <xsl:call-template name="output-message">
  76. <xsl:with-param name="id" select="'DOTX050W'"/>
  77. </xsl:call-template>
  78. </xsl:otherwise>
  79. </xsl:choose>
  80. </xsl:attribute>
  81. <xsl:attribute name="version">
  82. <xsl:value-of select="$version"/>
  83. </xsl:attribute>
  84. <xsl:attribute name="provider-name">
  85. <xsl:value-of select="$provider"/>
  86. </xsl:attribute>
  87. <xsl:element name="extension">
  88. <xsl:attribute name="point">
  89. <xsl:text>org.eclipse.help.toc</xsl:text>
  90. </xsl:attribute>
  91. <xsl:element name="toc">
  92. <xsl:attribute name="file">
  93. <xsl:value-of select="$TOCROOT"/>
  94. <xsl:text>.xml</xsl:text>
  95. </xsl:attribute>
  96. <xsl:attribute name="primary">
  97. <xsl:text>true</xsl:text>
  98. </xsl:attribute>
  99. </xsl:element>
  100. </xsl:element>
  101. <xsl:element name="extension">
  102. <xsl:attribute name="point">
  103. <xsl:text>org.eclipse.help.index</xsl:text>
  104. </xsl:attribute>
  105. <xsl:element name="index">
  106. <xsl:attribute name="file">
  107. <xsl:text>index.xml</xsl:text>
  108. </xsl:attribute>
  109. </xsl:element>
  110. </xsl:element>
  111. </xsl:element>
  112. </xsl:template>
  113. <!-- The elipse.plugin mode teamplate is used to create a plugin.xml file. -->
  114. <xsl:template match="*[contains(@class, ' map/map ')]" mode="eclipse.plugin">
  115. <xsl:element name="plugin">
  116. <!-- <xsl:attribute name="name">
  117. <xsl:choose>
  118. <xsl:when test="*[contains(@class, ' topic/title ')]">
  119. <xsl:value-of select="*[contains(@class, ' topic/title ')]"/>
  120. </xsl:when>
  121. <xsl:when test="@title">
  122. <xsl:value-of select="@title"/>
  123. </xsl:when>
  124. <xsl:otherwise>
  125. <xsl:text>Sample Title</xsl:text>
  126. </xsl:otherwise>
  127. </xsl:choose>
  128. </xsl:attribute>
  129. <xsl:attribute name="id">
  130. <xsl:choose>
  131. <xsl:when test="@id">
  132. <xsl:value-of select="@id"/>
  133. </xsl:when>
  134. <xsl:otherwise>
  135. <xsl:text>org.sample.help.doc</xsl:text>
  136. <xsl:call-template name="output-message">
  137. <xsl:with-param name="id" select="'DOTX050W'"/>
  138. </xsl:call-template>
  139. </xsl:otherwise>
  140. </xsl:choose>
  141. </xsl:attribute>
  142. <xsl:attribute name="version">
  143. <xsl:value-of select="$version"/>
  144. </xsl:attribute>
  145. <xsl:attribute name="provider-name">
  146. <xsl:value-of select="$provider"/>
  147. </xsl:attribute>-->
  148. <xsl:element name="extension">
  149. <xsl:attribute name="point">
  150. <xsl:text>org.eclipse.help.toc</xsl:text>
  151. </xsl:attribute>
  152. <xsl:element name="toc">
  153. <xsl:attribute name="file">
  154. <xsl:value-of select="$TOCROOT"/>
  155. <xsl:text>.xml</xsl:text>
  156. </xsl:attribute>
  157. <xsl:attribute name="primary">
  158. <xsl:text>true</xsl:text>
  159. </xsl:attribute>
  160. </xsl:element>
  161. </xsl:element>
  162. <xsl:element name="extension">
  163. <xsl:attribute name="point">
  164. <xsl:text>org.eclipse.help.index</xsl:text>
  165. </xsl:attribute>
  166. <xsl:element name="index">
  167. <xsl:attribute name="file">
  168. <xsl:text>index.xml</xsl:text>
  169. </xsl:attribute>
  170. </xsl:element>
  171. </xsl:element>
  172. </xsl:element>
  173. </xsl:template>
  174. <xsl:template match="*[contains(@class, ' map/map ')]" mode="eclipse.fragment">
  175. <xsl:element name="fragment">
  176. <xsl:choose>
  177. <xsl:when test="@title"><xsl:attribute name="name">%name</xsl:attribute>
  178. </xsl:when>
  179. <xsl:when test="*[contains(@class, ' topic/title ')]">
  180. <xsl:apply-templates select="*[contains(@class,' topic/title ')]" mode="text-only"/>
  181. </xsl:when>
  182. <xsl:otherwise><xsl:attribute name="name">Sample Title</xsl:attribute>
  183. </xsl:otherwise>
  184. </xsl:choose>
  185. <xsl:choose>
  186. <xsl:when test="$osgi.symbolic.name!=''">
  187. <xsl:attribute name="plugin-id"><xsl:value-of select="$osgi.symbolic.name"/></xsl:attribute>
  188. <xsl:if test="$fragment.lang!=''">
  189. <xsl:choose>
  190. <xsl:when test="$fragment.country!=''">
  191. <xsl:attribute name="id"><xsl:value-of select="$osgi.symbolic.name"/>.<xsl:value-of select="$fragment.lang"/>.<xsl:value-of select="$fragment.country"/></xsl:attribute>
  192. </xsl:when>
  193. <xsl:otherwise>
  194. <xsl:attribute name="id"><xsl:value-of select="$osgi.symbolic.name"/>.<xsl:value-of select="$fragment.lang"/></xsl:attribute>
  195. </xsl:otherwise>
  196. </xsl:choose>
  197. </xsl:if>
  198. </xsl:when>
  199. <xsl:when test="@id">
  200. <xsl:attribute name="plugin-id"><xsl:value-of select="@id"/></xsl:attribute>
  201. <xsl:if test="$fragment.lang!=''">
  202. <xsl:choose>
  203. <xsl:when test="$fragment.country!=''">
  204. <xsl:attribute name="id"><xsl:value-of select="@id"/>.<xsl:value-of select="$fragment.lang"/>.<xsl:value-of select="$fragment.country"/></xsl:attribute>
  205. </xsl:when>
  206. <xsl:otherwise>
  207. <xsl:attribute name="id"><xsl:value-of select="@id"/>.<xsl:value-of select="$fragment.lang"/></xsl:attribute>
  208. </xsl:otherwise>
  209. </xsl:choose>
  210. </xsl:if>
  211. </xsl:when>
  212. <xsl:otherwise>
  213. <xsl:attribute name="plugin-id">org.sample.help.doc</xsl:attribute>
  214. <xsl:attribute name="id">org.sample.help.doc.sample.lang</xsl:attribute>
  215. <xsl:call-template name="output-message">
  216. <xsl:with-param name="id" select="'DOTX050W'"/>
  217. </xsl:call-template>
  218. </xsl:otherwise>
  219. </xsl:choose>
  220. <xsl:attribute name="plugin-version">
  221. <xsl:value-of select="$version"/>
  222. </xsl:attribute>
  223. <xsl:attribute name="version">
  224. <xsl:value-of select="$version"/>
  225. </xsl:attribute>
  226. <xsl:attribute name="provider-name">
  227. <!-- <xsl:value-of select="$provider"/> -->
  228. <xsl:text>%providerName</xsl:text>
  229. </xsl:attribute>
  230. <!-- <xsl:apply-templates/> -->
  231. </xsl:element>
  232. </xsl:template>
  233. <xsl:template match="*[contains(@class, ' map/map ')]" mode="eclipse.properties">
  234. <xsl:text># NLS_MESSAGEFORMAT_NONE</xsl:text><xsl:value-of select="$newline"/>
  235. <xsl:text># NLS_ENCODING=UTF-8</xsl:text><xsl:value-of select="$newline"/>
  236. <!--<xsl:value-of select="$newline"/>-->
  237. <xsl:choose>
  238. <xsl:when test="@title">
  239. <xsl:text>name=</xsl:text><xsl:value-of select="@title"/>
  240. </xsl:when>
  241. <xsl:when test="*[contains(@class, ' topic/title ')]">
  242. <xsl:text>name=</xsl:text><xsl:apply-templates select="*[contains(@class,' topic/title ')]" mode="text-only"/>
  243. </xsl:when>
  244. <xsl:otherwise>
  245. <xsl:text>name=Sample Title</xsl:text>
  246. </xsl:otherwise>
  247. </xsl:choose>
  248. <xsl:value-of select="$newline"/>
  249. <xsl:text>providerName=</xsl:text><xsl:value-of select="$provider"/>
  250. </xsl:template>
  251. <xsl:template match="*[contains(@class, ' map/map ')]" mode="eclipse.manifest">
  252. <xsl:text>Bundle-Version: </xsl:text><xsl:value-of select="$version"/><xsl:value-of select="$newline"/>
  253. <xsl:text>Manifest-Version: 1.0</xsl:text><xsl:value-of select="$newline"/>
  254. <xsl:text>Bundle-ManifestVersion: 2</xsl:text><xsl:value-of select="$newline"/>
  255. <xsl:text>Bundle-Localization: plugin</xsl:text><xsl:value-of select="$newline"/>
  256. <xsl:text>Bundle-Name: %name</xsl:text><xsl:value-of select="$newline"/>
  257. <xsl:text>Bundle-Vendor: %providerName</xsl:text><xsl:value-of select="$newline"/>
  258. <xsl:choose>
  259. <xsl:when test="$plugin='true'">
  260. <xsl:text>Eclipse-LazyStart: true</xsl:text><xsl:value-of select="$newline"/>
  261. <xsl:choose>
  262. <xsl:when test="$osgi.symbolic.name!=''">
  263. <xsl:text>Bundle-SymbolicName: </xsl:text><xsl:value-of select="$osgi.symbolic.name"/>;<xsl:text> singleton:=true</xsl:text><xsl:value-of select="$newline"/>
  264. </xsl:when>
  265. <xsl:when test="@id">
  266. <xsl:text>Bundle-SymbolicName: </xsl:text><xsl:value-of select="@id"/>;<xsl:text> singleton:=true</xsl:text><xsl:value-of select="$newline"/>
  267. </xsl:when>
  268. <xsl:otherwise>
  269. <xsl:text>Bundle-SymbolicName: org.sample.help.doc; singleton:=true</xsl:text><xsl:value-of select="$newline"/>
  270. <xsl:call-template name="output-message">
  271. <xsl:with-param name="id" select="'DOTX050W'"/>
  272. </xsl:call-template>
  273. </xsl:otherwise>
  274. </xsl:choose>
  275. </xsl:when>
  276. <xsl:otherwise>
  277. <xsl:choose>
  278. <xsl:when test="@id">
  279. <xsl:if test="$fragment.lang!=''">
  280. <xsl:text>Fragment-Host: </xsl:text><xsl:value-of select="@id"/>;
  281. <xsl:text>Bundle-SymbolicName: </xsl:text>
  282. <xsl:choose>
  283. <xsl:when test="$fragment.country!=''">
  284. <xsl:value-of select="@id"/>.<xsl:value-of select="$fragment.lang"/>.<xsl:value-of select="$fragment.country"/>;<xsl:text/>
  285. </xsl:when>
  286. <xsl:otherwise>
  287. <xsl:value-of select="@id"/>.<xsl:value-of select="$fragment.lang"/>;<xsl:text/>
  288. </xsl:otherwise>
  289. </xsl:choose>
  290. </xsl:if>
  291. <xsl:if test="$fragment.lang=''">
  292. <xsl:text>Bundle-SymbolicName: </xsl:text><xsl:value-of select="@id"/><xsl:value-of select="$newline"/>
  293. </xsl:if>
  294. </xsl:when>
  295. <xsl:otherwise>
  296. <xsl:text>Bundle-SymbolicName: org.sample.help.doc.</xsl:text>
  297. <xsl:choose>
  298. <xsl:when test="$fragment.lang!=''">
  299. <xsl:choose>
  300. <xsl:when test="$fragment.country!=''">
  301. <xsl:value-of select="$fragment.lang"/>.<xsl:value-of select="$fragment.country"/>;
  302. </xsl:when>
  303. <xsl:otherwise>
  304. <xsl:value-of select="$fragment.lang"/>;
  305. </xsl:otherwise>
  306. </xsl:choose>
  307. </xsl:when>
  308. <!-- We shouldn' t be getting here, but just in case -->
  309. <xsl:otherwise>
  310. <xsl:text>lang; </xsl:text>
  311. </xsl:otherwise>
  312. </xsl:choose>
  313. <xsl:value-of select="$newline"/>
  314. <xsl:text>Fragment-Host: org.sample.help.doc;</xsl:text><xsl:value-of select="$newline"/>
  315. <xsl:call-template name="output-message">
  316. <xsl:with-param name="id" select="'DOTX050W'"/>
  317. </xsl:call-template>
  318. </xsl:otherwise>
  319. </xsl:choose>
  320. </xsl:otherwise>
  321. </xsl:choose>
  322. </xsl:template>
  323. </xsl:stylesheet>