d2a.ditamap.xsl 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <xsl:stylesheet xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning"
  3. xmlns:xs="http://www.w3.org/2001/XMLSchema"
  4. xmlns:p5dkp="http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/dita_kosztorys_projektowy/p5dkp.xsd"
  5. xmlns:p5bws="http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/WPS_Functions.xsd"
  6. xmlns:system_cache__appinfo="http://biuro.biall-net.pl/xmlschema_procesy5/default_db_xml_cache/appinfo.xsd"
  7. xmlns:d2a="http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/dita-to-ant/d2a.xsd"
  8. xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  9. xmlns:p5dg="http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/documentation_generator/documentation_generator.xsd"
  10. xmlns:ditaarch="http://dita.oasis-open.org/architecture/2005/"
  11. xmlns:p5ant="http://biuro.biall-net.pl/xmlschema_procesy5/default_db_xml_cache.public/ant/ant.xsd"
  12. exclude-result-prefixes="xs d2a"
  13. version="2.0">
  14. <!-- ROOT STYLE -->
  15. <xsl:include href="../documentation_generator/p5dg.filepath.xsl"/>
  16. <xsl:include href="d2a.ditamap.PRODUCT.xsl"/>
  17. <xsl:include href="d2a.new_ant_project.child.task.xsl"/>
  18. <xsl:include href="d2a.keyref.element.xsl"/>
  19. <xsl:output indent="yes" /> <!-- use-character-maps="myChars" -->
  20. <xsl:strip-space elements="*"/>
  21. <xsl:param name="d2a:basedir"/>
  22. <xsl:param name="d2a:repository"/>
  23. <xsl:param name="d2a.ditamap.INPUT" required="yes"/>
  24. <xsl:param name="d2a.new_module.INPUT" required="yes"/>
  25. <xsl:param name="d2a:basedir_ROOT_DITA_KEYREF" select="'basedir_ROOT_DITA_KEYREF'"/>
  26. <xsl:param name="d2a:ditaarch.keys.p5ant"> <!-- just to increase resolve speed -->
  27. <d2a:ditaarch.keys.p5ant keyref="platform.ant.project.element">
  28. <project keyref="platform.ant.project.element"/>
  29. <target keyref="platform.ant.project.target.ant.target">
  30. <exec keyref="platform.ant.project.target.exec.element">
  31. <ditaarch:xmlattr keyref="platform.ant.project.target.exec.executable">executable</ditaarch:xmlattr>
  32. <ditaarch:xmlattr keyref="platform.ant.project.target.exec.dir">dir</ditaarch:xmlattr>
  33. </exec>
  34. </target>
  35. </d2a:ditaarch.keys.p5ant>
  36. </xsl:param>
  37. <!-- how to treat dita tasks?
  38. ditaarch:apiname - use/about/implements
  39. topicmeta/keywords/keyword/text() - sets
  40. -->
  41. <!--
  42. set example
  43. <glossterm>File Separator<data><synph><delim>/</delim></synph></data></glossterm>
  44. -->
  45. <!--
  46. not so well set param
  47. <glossterm>
  48. <abbreviated-form keyref="platform.shell.bash.ARGS.parameter">-/-screenshot</abbreviated-form>
  49. </glossterm>
  50. -->
  51. <!-- takie przypisanie / nadpisanie sciezki
  52. <data keyref="wymagania.funkcje.output">
  53. <filepath>/Users/a.binder/Download/</filepath>
  54. <apiname keyref="wymagania.funkcje.output"/></data>
  55. zawsze kluczowi najpierw (parent) przypisuje wartosc (child)
  56. -->
  57. <!-- do poprawy
  58. <syntaxdiagram id="skladnia_bez_sciezki">
  59. <title>Nazwa pliku</title>
  60. <groupseq>
  61. <kwd keyref="platform.shell.bash.ARGS.filename"/>
  62. </groupseq>
  63. </syntaxdiagram>
  64. <syntaxdiagram id="skladnia_z_fullpath">
  65. <title>składnia z pełną ścieżką</title>
  66. <groupseq>
  67. <kwd keyref="platform.shell.bash.ARGS.filepath"/>
  68. <kwd keyref="platform.shell.bash.ARGS.separator"/>
  69. <kwd keyref="platform.shell.bash.ARGS.filename"/>
  70. <fragref href="#filename/skladnia_bez_sciezki"/>
  71. </groupseq>
  72. </syntaxdiagram>
  73. -->
  74. <!-- glossdef wyjasnia struktury kawalek gdzie jest domyślny folder -
  75. ten kawalek sie dokleja do struktury lokalziacji - w pliku
  76. <glossdef>Przeglądarka Intenretowa<syntaxdiagram id="folder_uruchomienia">
  77. <title>Domyślny folder w którym tworzą się pliki podczas tworzenia screenshot /</title>
  78. <groupseq>
  79. <kwd keyref="wymagania.funkcje.parameters.miejsce__kontekst__uruchomienia"/>
  80. <delim><varname keyref="platform.ant.file_separator"/></delim>
  81. </groupseq>
  82. </glossdef>
  83. -->
  84. <!--
  85. tytul nie mowi o wszytkim
  86. <glossterm>
  87. <abbreviated-form keyref="platform.shell.bash.methods.to_file"/>
  88. <abbreviated-form keyref="platform.shell.bash.ARGS.filename">screenshot.png</abbreviated-form>
  89. </glossterm>
  90. <glossdef>
  91. <syntaxdiagram id="syntaxdiagram_a2d_rhv_n2b">
  92. <title>struktura lokalizacji domyślnej tworzonego pliku
  93. <apiname keyref="wymagania.funkcje.output"/>
  94. <apiname keyref="platform.filesystem.wywolania_systemowe.write"/></title>
  95. <groupseq>
  96. <synnoteref href="google_chrome.dita#google_chrome/folder_uruchomienia"/>
  97. <var>screenshot.png</var>
  98. </groupseq>
  99. </syntaxdiagram>
  100. <p>Zawsze tworzy się ten plik jako screenshot i trzeba go zabrać.</p>
  101. <draft-comment author="a.binder">przyjęcie kawałka syntezy z Google Chrome - todo zlozyc to
  102. do interpretera<p>jako ciekawostka to jest to przez przypadek tez nazwa/cecha pliku, do
  103. wykorzystania kontekstowego</p></draft-comment>
  104. </glossdef>
  105. -->
  106. <!--<xsl:character-map name="myChars">
  107. <xsl:output-character character="&quot;" string="&amp;quot;"/>
  108. <xsl:output-character character="&apos;" string="&amp;apos;"/>
  109. </xsl:character-map>-->
  110. <xsl:function name="d2a:p5ant.ditamap.xmlatt">
  111. <xsl:param name="xmlattr.name"/>
  112. <xsl:param name="xmlattr.value"/>
  113. <xsl:attribute name="{$xmlattr.name}"><xsl:value-of select="$xmlattr.value"/></xsl:attribute>
  114. </xsl:function>
  115. <xsl:function name="d2a:p5ant.ditamap.xmlatt.ref">
  116. <xsl:param name="xmlattr.name"/>
  117. <xsl:param name="xmlattr.value"/>
  118. <xsl:attribute name="{$xmlattr.name}">${<xsl:value-of select="$xmlattr.value"/>}</xsl:attribute>
  119. </xsl:function>
  120. <xsl:function name="d2a:ditamap.INPUT.basedir.xmlatt.ref">
  121. <xsl:param name="xmlattr.name"/>
  122. <xsl:copy-of select="d2a:p5ant.ditamap.xmlatt.ref($xmlattr.name,concat($d2a.new_module.INPUT,'.basedir'))"/>
  123. <!--<xsl:attribute name="{$xmlattr.name}">${<xsl:value-of select="$d2a.new_module.INPUT"/>.basedir}</xsl:attribute>-->
  124. </xsl:function>
  125. <xsl:function name="d2a:ditamap.INPUT.basedir.xmlatt">
  126. <xsl:param name="xmlattr.name"/>
  127. <xsl:copy-of select="d2a:p5ant.ditamap.xmlatt($xmlattr.name,concat($d2a.new_module.INPUT,'.basedir'))"/>
  128. <!--<xsl:attribute name="{$xmlattr.name}">${<xsl:value-of select="$d2a.new_module.INPUT"/>.basedir}</xsl:attribute>-->
  129. </xsl:function>
  130. <xsl:function name="d2a:ditamap.INPUT.temp.xmlatt">
  131. <!-- example <property name="html2image.temp" location="/opt/local/pl.procesy5/p5build_SE/temp/WPS_Functions/html2image"/> -->
  132. <xsl:param name="p5dkp:ditafiles.xml"/>
  133. <xsl:param name="xmlattr.name"/>
  134. <!--<xsl:copy-of select="d2a:p5ant.ditamap.xmlatt($xmlattr.name,d2a:keyref.element.root($p5dkp:ditafiles.xml/ancestor-or-self::*,'public_html__WPS_Functions.WPS_Functions.temp'))"/>-->
  135. <xsl:attribute name="{$xmlattr.name}"><xsl:value-of select="d2a:keyref.element.root($p5dkp:ditafiles.xml/ancestor-or-self::*,'public_html__WPS_Functions.WPS_Functions.temp')"/><xsl:value-of select="$d2a.new_module.INPUT"/></xsl:attribute>
  136. <!--<xsl:attribute name="{$xmlattr.name}">${<xsl:value-of select="$d2a.new_module.INPUT"/>.basedir}</xsl:attribute>-->
  137. </xsl:function>
  138. <xsl:template mode="d2a:new_ant_project" match="*">
  139. <xsl:param name="p5dkp:ditafiles.xml" required="yes"/>
  140. <!--<d2a:new_ant_project debug="matched28">-->
  141. <xsl:apply-templates mode="#current"> <!-- d2a:new_ant_project.child -->
  142. <xsl:with-param name="p5dkp:ditafiles.xml" select="$p5dkp:ditafiles.xml"/>
  143. </xsl:apply-templates>
  144. <!--</d2a:new_ant_project>-->
  145. </xsl:template>
  146. <xsl:template match="p5dkp:ditafiles.xml" mode="d2a:new_ant_project.xml">
  147. <d2a:new_ant_project debug="matched36">
  148. <xsl:message>#40 OK cont </xsl:message>
  149. <xsl:apply-templates mode="d2a:new_ant_project" > <!-- select=".//p5dkp:ditafiles.file[@p5dkp:true.path=$d2a.ditamap.INPUT][1]" -->
  150. <xsl:with-param name="p5dkp:ditafiles.xml" select="root()"/>
  151. </xsl:apply-templates>
  152. </d2a:new_ant_project>
  153. </xsl:template>
  154. <xsl:template match="p5dkp:ditafiles.file[@p5dkp:true.path=$d2a.ditamap.INPUT]" mode="d2a:new_ant_project">
  155. <xsl:param name="p5dkp:ditafiles.xml" required="yes"/>
  156. <create_new_WPS_Function PRODUCT.name="p5ant"
  157. vendor-domain="pl.procesy5.WPS_Functions.ant"
  158. p5ant.WPS_Functions.PRODUCT.name.input="{$d2a.new_module.INPUT}"
  159. p5ant.WPS_Functions.PRODUCT.prefix.input="{$d2a.new_module.INPUT}"
  160. basedir="{d2a:basedir(ancestor-or-self::*,$d2a:basedir_ROOT_DITA_KEYREF)}"
  161. p5dg:filename.true.path="{p5dg:filename(@p5dkp:true.path)}"
  162. p5dg:filepath.true.path="{p5dg:filepath.dir(@p5dkp:true.path)}"
  163. >
  164. <xsl:copy-of select="@*"/>
  165. <xsl:variable name="current" select="."/>
  166. <xsl:apply-templates mode="d2a:new_ant_project.child" select="doc(@p5dkp:true.path)">
  167. <xsl:with-param name="p5dkp:ditafiles.xml" select="."/>
  168. </xsl:apply-templates>
  169. <xsl:apply-templates mode="d2a:PRODUCT.new_ant_project.child" select="doc(@p5dkp:true.path)">
  170. <xsl:with-param name="p5dkp:ditafiles.xml" select="."/>
  171. </xsl:apply-templates>
  172. </create_new_WPS_Function>
  173. </xsl:template>
  174. <xsl:function name="d2a:exec.dir">
  175. <xsl:param name="p5dkp:ditafiles.xml"/> <!-- do wykrycia exec dir optymalnego dla build -->
  176. </xsl:function>
  177. <xsl:function name="d2a:keyref"> <!-- to detect main basedir -->
  178. <xsl:param name="p5dkp:ditafiles.xml"/>
  179. <xsl:param name="keyref"/>
  180. <xsl:for-each select="$p5dkp:ditafiles.xml//*[map.keys.eval[keys[@map.keys.eval=$keyref]]][1]">
  181. <xsl:choose>
  182. <xsl:when test="position()=1">
  183. <xsl:attribute name="location"><xsl:value-of select="@p5dkp:true.path"/></xsl:attribute>
  184. </xsl:when>
  185. <xsl:otherwise>
  186. <xsl:message>#72 unintended another d2a:basedir <xsl:value-of select="@*"/></xsl:message>
  187. </xsl:otherwise>
  188. </xsl:choose>
  189. </xsl:for-each>
  190. </xsl:function>
  191. <xsl:function name="d2a:keyref.keyword_prio"> <!-- to detect main basedir -->
  192. <xsl:param name="p5dkp:ditafiles.xml"/>
  193. <xsl:param name="keyref"/>
  194. <!--<d2a:keyref.keyword_prio debug="test97">-->
  195. <!-- todo
  196. <data><filepath><parmname keyref="platform.ant.project.target.exec.dir"/></filepath>
  197. <synph><sep><varname keyref="platform.ant.file_separator"
  198. >/</varname></sep><synph><var>screenshot.png</var></synph>
  199. </synph><apiname keyref="platform.filesystem.File"/><apiname
  200. keyref="wymagania.funkcje.output"/></data>
  201. -->
  202. <xsl:for-each select="$p5dkp:ditafiles.xml//*[map.keys.eval[keys[@map.keys.eval=$keyref]]][1]">
  203. <xsl:choose>
  204. <xsl:when test="position()=1 and topicmeta/keywords">
  205. <!--<keyword id="{@id}" name="{name()}">-->
  206. <!--<xsl:copy-of select="topicmeta//text()"/>-->
  207. <xsl:attribute name="value" select="topicmeta//text()"/>
  208. <!--</keyword>-->
  209. </xsl:when>
  210. <xsl:otherwise>
  211. <NOT_KEYWD_ELSE function="d2a:keyref.keyword_prio">
  212. <xsl:message terminate="no">#72 unintended another d2a:basedir <xsl:value-of select="@*"/>
  213. element: <xsl:value-of select="name()"/>
  214. </xsl:message>
  215. <!--<xsl:copy-of select="." copy-namespaces="no"/>-->
  216. <d2a:keyref>
  217. <xsl:apply-templates mode="d2a:keyref" select="*">
  218. <xsl:with-param name="p5dkp:ditafiles.xml" select="$p5dkp:ditafiles.xml"/>
  219. </xsl:apply-templates>
  220. </d2a:keyref>
  221. </NOT_KEYWD_ELSE>
  222. </xsl:otherwise>
  223. </xsl:choose>
  224. </xsl:for-each>
  225. <!--</d2a:keyref.keyword_prio>-->
  226. <!--<xsl:for-each select="$p5dkp:ditafiles.xml/ancestor-or-self::*[descendant-or-self::map.keys.eval[keys[@map.keys.eval=$keyref]]][1]">
  227. <xsl:for-each select="descendant-or-self::*[ last() and descendant-or-self::map.keys.eval[keys[@map.keys.eval=$keyref]]]"> <!-\- [map.keys.eval[keys[@map.keys.eval=$keyref]]][1] -\->
  228. <TEST name="{name()}" id="{@id}" pos="{position()}" for="{$keyref}">
  229. </TEST>
  230. <!-\-<xsl:choose>
  231. <xsl:when test="position()=1">
  232. <xsl:choose>
  233. <xsl:when test="topicmeta/keywords/keyword/text()">
  234. <xsl:attribute name="value" select="topicmeta/keywords/keyword/text()"/>
  235. </xsl:when>
  236. <xsl:otherwise>
  237. <xsl:attribute name="location"><xsl:value-of select="@p5dkp:true.path"/></xsl:attribute>
  238. </xsl:otherwise>
  239. </xsl:choose>
  240. </xsl:when>
  241. <xsl:otherwise>
  242. <xsl:message>#72 unintended another d2a:basedir <xsl:value-of select="@*"/></xsl:message>
  243. </xsl:otherwise>
  244. </xsl:choose>-\->
  245. </xsl:for-each>
  246. </xsl:for-each>-->
  247. </xsl:function>
  248. <xsl:template mode="d2a:keyref" match="*">
  249. <xsl:param name="p5dkp:ditafiles.xml" required="yes"/>
  250. <xsl:copy copy-namespaces="no">
  251. <xsl:apply-templates mode="#current">
  252. <xsl:with-param name="p5dkp:ditafiles.xml" select="$p5dkp:ditafiles.xml"/>
  253. </xsl:apply-templates>
  254. </xsl:copy>
  255. </xsl:template>
  256. <xsl:template mode="d2a:keyref" match="glossterm|data|filepath">
  257. <xsl:param name="p5dkp:ditafiles.xml" required="yes"/>
  258. <!--<xsl:copy copy-namespaces="no">-->
  259. <xsl:apply-templates mode="#current">
  260. <xsl:with-param name="p5dkp:ditafiles.xml" select="$p5dkp:ditafiles.xml"/>
  261. </xsl:apply-templates>
  262. <!--</xsl:copy>-->
  263. </xsl:template>
  264. <xsl:template mode="d2a:keyref" match="*[@keyref]">
  265. <xsl:param name="p5dkp:ditafiles.xml" required="yes"/>
  266. <xsl:copy copy-namespaces="no">
  267. <xsl:copy-of select="@*"></xsl:copy-of>
  268. <xsl:attribute name="TODO_RESOLVE_KEYREF" select="@keyref"/>
  269. <xsl:apply-templates mode="#current">
  270. <xsl:with-param name="p5dkp:ditafiles.xml" select="$p5dkp:ditafiles.xml"/>
  271. </xsl:apply-templates>
  272. </xsl:copy>
  273. </xsl:template>
  274. <xsl:template mode="d2a:keyref" match="map.keys.keyscope|map.keys.eval|map.keys.audience"/>
  275. <!--<xsl:template mode="d2a:keyref.keyword_prio" match="*|text()|comment()"/>-->
  276. <xsl:function name="d2a:basedir"> <!-- to detect main basedir -->
  277. <xsl:param name="p5dkp:ditafiles.xml"/>
  278. <xsl:param name="d2a:basedir_ROOT_DITA_KEYREF"/>
  279. <xsl:for-each select="$p5dkp:ditafiles.xml//*[map.keys.eval[keys[@map.keys.eval=$d2a:basedir_ROOT_DITA_KEYREF]]][1]">
  280. <xsl:choose>
  281. <xsl:when test="position()=1">
  282. <xsl:value-of select="p5dg:filepath.dir(@p5dkp:true.path)"/>
  283. </xsl:when>
  284. <xsl:otherwise>
  285. <xsl:message>#72 unintended another d2a:basedir <xsl:value-of select="@*"/></xsl:message>
  286. </xsl:otherwise>
  287. </xsl:choose>
  288. </xsl:for-each>
  289. </xsl:function>
  290. <xsl:template mode="d2a:new_ant_project.child" match="topic">
  291. <xsl:param name="p5dkp:ditafiles.xml" required="yes"/>
  292. <xsl:apply-templates mode="#current">
  293. <xsl:with-param name="p5dkp:ditafiles.xml" select="$p5dkp:ditafiles.xml"/>
  294. </xsl:apply-templates>
  295. </xsl:template>
  296. <xsl:template match="task" mode="d2a:new_ant_project.child">
  297. <xsl:param name="p5dkp:ditafiles.xml" required="yes"/> <!-- basedir_old="{d2a:basedir($p5dkp:ditafiles.xml,$d2a:basedir_ROOT_DITA_KEYREF)}" -->
  298. <project
  299. basedir="{d2a:basedir($p5dkp:ditafiles.xml/ancestor-or-self::*/descendant-or-self::*,$d2a:basedir_ROOT_DITA_KEYREF)}"
  300. default="default"
  301. name="{$d2a.new_module.INPUT}">
  302. <xsl:apply-templates mode="d2a:new_ant_project.child.task">
  303. <xsl:with-param name="p5dkp:ditafiles.xml" select="$p5dkp:ditafiles.xml"/>
  304. </xsl:apply-templates>
  305. </project>
  306. </xsl:template>
  307. <xsl:template match="kwd[text()]" mode="d2a:new_ant_project.child.task.bash.groupcomp">
  308. <arg value="{text()}"/>
  309. </xsl:template>
  310. <xsl:template match="var[text()]" mode="d2a:new_ant_project.child.task.bash.groupcomp">
  311. <arg value="{text()}"/>
  312. </xsl:template>
  313. <xsl:template match="var[not(text()) and *]" mode="d2a:new_ant_project.child.task.bash.groupcomp">
  314. <xsl:param name="p5dkp:ditafiles.xml" required="yes"/>
  315. <xsl:apply-templates mode="d2a:new_ant_project.child.task.bash.groupcomp.var">
  316. <xsl:with-param name="p5dkp:ditafiles.xml" select="$p5dkp:ditafiles.xml"/>
  317. </xsl:apply-templates>
  318. </xsl:template>
  319. <xsl:template match="*[@keyref]" mode="d2a:new_ant_project.child.task.bash.groupcomp.var">
  320. <xsl:param name="p5dkp:ditafiles.xml" required="yes"/>
  321. <arg>
  322. <xsl:apply-templates mode="d2a:new_ant_project.child.task.bash.groupcomp.var" select="@*">
  323. <xsl:with-param name="p5dkp:ditafiles.xml" select="$p5dkp:ditafiles.xml"/>
  324. </xsl:apply-templates>
  325. </arg>
  326. </xsl:template>
  327. <xsl:template match="@*" mode="d2a:new_ant_project.child.task.bash.groupcomp.var"/>
  328. <xsl:template match="@keyref" mode="d2a:new_ant_project.child.task.bash.groupcomp.var">
  329. <xsl:param name="p5dkp:ditafiles.xml" required="yes"/>
  330. <xsl:attribute name="value">${<xsl:value-of select="."/>}</xsl:attribute>
  331. </xsl:template>
  332. <xsl:template match="kwd[not(text()) and not(@keyref)]" mode="d2a:new_ant_project.child.task.bash.groupcomp">
  333. <xsl:comment>#92 kwd[not(text())]</xsl:comment>
  334. </xsl:template>
  335. <xsl:template match="kwd[not(text()) and @keyref]" mode="d2a:new_ant_project.child.task.bash.groupcomp">
  336. <xsl:param name="p5dkp:ditafiles.xml" required="yes"/>
  337. <!--<arg debug_keyref="{@keyref}">-->
  338. <arg >
  339. <xsl:apply-templates mode="d2a:new_ant_project.child.task.bash.groupcomp.var" select="@*">
  340. <xsl:with-param name="p5dkp:ditafiles.xml" select="$p5dkp:ditafiles.xml"/>
  341. </xsl:apply-templates>
  342. </arg>
  343. <!--<xsl:attribute name="value"><xsl:value-of select="d2a:keyref($p5dkp:ditafiles.xml,@keyref)"/></xsl:attribute>--><!--</arg>-->
  344. </xsl:template>
  345. <xsl:template mode="d2a:new_ant_project.child" match="*">
  346. <xsl:param name="p5dkp:ditafiles.xml" required="yes"/>
  347. <xsl:comment>#38 match <xsl:value-of select="name()"/></xsl:comment>
  348. <xsl:apply-templates mode="#current">
  349. <xsl:with-param name="p5dkp:ditafiles.xml" select="$p5dkp:ditafiles.xml"/>
  350. </xsl:apply-templates>
  351. </xsl:template>
  352. <xsl:template mode="d2a:new_ant_project.child" match="title">
  353. <xsl:param name="p5dkp:ditafiles.xml" required="yes"/>
  354. <description><xsl:apply-templates mode="d2a:new_ant_project.child.finish">
  355. <xsl:with-param name="p5dkp:ditafiles.xml" select="$p5dkp:ditafiles.xml"/>
  356. </xsl:apply-templates></description>
  357. </xsl:template>
  358. <xsl:template mode="d2a:new_ant_project.child.finish" match="text()|comment()">
  359. <xsl:copy-of select="."/>
  360. </xsl:template>
  361. <xsl:template mode="d2a:new_ant_project.child.task.bash.groupcomp.var d2a:new_ant_project.child.task.bash.groupcomp d2a:new_ant_project.child.task.bash d2a:new_ant_project d2a:new_ant_project.child d2a:new_ant_project.child.task" match="text()|comment()"/>
  362. <xsl:template mode="d2a:new_ant_project.child.finish" match="*"/>
  363. </xsl:stylesheet>