soaplogic.xsl 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!--
  3. +===================================================================+
  4. | Licensed Materials - Property of IBM
  5. | BI and PM: prmt
  6. | (C) Copyright IBM Corp. 2002, 2011
  7. |
  8. | US Government Users Restricted Rights - Use, duplication or
  9. | disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  10. |
  11. +===================================================================+
  12. -->
  13. <xsl:stylesheet version="1.0"
  14. xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  15. xmlns:sl="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/prmt/soaplogic/"
  16. xmlns:out="dummy-uri"
  17. xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
  18. xmlns:xts="http://developer.cognos.com/schemas/xts/"
  19. xmlns:bus="http://developer.cognos.com/schemas/bibus/3/"
  20. xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
  21. xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
  22. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  23. exclude-result-prefixes="xsl sl xtsext xts">
  24. <xsl:output method="xml" encoding="UTF-8" indent="no"/>
  25. <xsl:namespace-alias stylesheet-prefix="out" result-prefix="xsl"/>
  26. <xsl:template match="sl:soaplogic">
  27. <out:template name="SetParameters">
  28. <parameterValues xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="bus:parameterValue[]">
  29. <out:if test="/root/PromptValues/PromptValue">
  30. <out:call-template name="generateParameters"/>
  31. </out:if>
  32. <out:if test="/root/*[local-name()='additionalParamValues']">
  33. <out:copy-of select="/root/*[local-name()='additionalParamValues']/*/*"/>
  34. </out:if>
  35. </parameterValues>
  36. </out:template>
  37. <out:template name="generateParameters">
  38. <out:for-each select="/root/PromptValues/PromptValue[not(./@name=preceding-sibling::PromptValue/@name)]">
  39. <item xsi:type="bus:parameterValue">
  40. <out:variable name="name" select="@name"/>
  41. <bus:name xsi:type="xsd:string"><out:value-of select="$name"/></bus:name>
  42. <out:choose>
  43. <out:when test="count(./selectChoices/*) &gt; 0">
  44. <bus:value xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="bus:parmValueItem[]">
  45. <out:call-template name="do-prompt-item"/>
  46. <out:for-each select="following-sibling::PromptValue[@name = $name]">
  47. <out:call-template name="do-prompt-item"/>
  48. </out:for-each>
  49. </bus:value>
  50. </out:when>
  51. <out:when test="not(./selectChoices)">
  52. <out:call-template name="do-simple-prompt-item"/>
  53. <out:for-each select="following-sibling::PromptValue[@name = $name]">
  54. <out:call-template name="do-simple-prompt-item"/>
  55. </out:for-each>
  56. </out:when>
  57. </out:choose>
  58. </item>
  59. </out:for-each>
  60. </out:template>
  61. <out:template name="do-simple-prompt-item">
  62. <bus:value xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="bus:parmValueItem[]">
  63. <item xsi:type="bus:simpleParmValueItem">
  64. <out:call-template name="do-prompt-item-value">
  65. <out:with-param name="item" select="."/>
  66. </out:call-template>
  67. </item>
  68. </bus:value>
  69. </out:template>
  70. <out:template name="do-prompt-item">
  71. <out:for-each select="./selectChoices/selectOption">
  72. <item xsi:type="bus:simpleParmValueItem">
  73. <out:call-template name="do-prompt-item-value">
  74. <out:with-param name="item" select="."/>
  75. </out:call-template>
  76. </item>
  77. </out:for-each>
  78. <out:for-each select="./selectChoices/selectBoundRange">
  79. <item xsi:type="bus:boundRangeParmValueItem">
  80. <bus:inclusive xsi:type="xsd:boolean">true</bus:inclusive>
  81. <bus:start xsi:type="bus:simpleParmValueItem">
  82. <out:call-template name="do-prompt-item-value">
  83. <out:with-param name="item" select="./start"/>
  84. </out:call-template>
  85. </bus:start>
  86. <bus:end xsi:type="bus:simpleParmValueItem">
  87. <out:call-template name="do-prompt-item-value">
  88. <out:with-param name="item" select="./end"/>
  89. </out:call-template>
  90. </bus:end>
  91. </item>
  92. </out:for-each>
  93. <out:for-each select="./selectChoices/selectUnboundedEndRange">
  94. <item xsi:type="bus:unboundedEndRangeParmValueItem">
  95. <bus:inclusive xsi:type="xsd:boolean">true</bus:inclusive>
  96. <bus:start xsi:type="bus:simpleParmValueItem">
  97. <out:call-template name="do-prompt-item-value">
  98. <out:with-param name="item" select="./start"/>
  99. </out:call-template>
  100. </bus:start>
  101. </item>
  102. </out:for-each>
  103. <out:for-each select="./selectChoices/selectUnboundedStartRange">
  104. <item xsi:type="bus:unboundedStartRangeParmValueItem">
  105. <bus:inclusive xsi:type="xsd:boolean">true</bus:inclusive>
  106. <bus:end xsi:type="bus:simpleParmValueItem">
  107. <out:call-template name="do-prompt-item-value">
  108. <out:with-param name="item" select="./end"/>
  109. </out:call-template>
  110. </bus:end>
  111. </item>
  112. </out:for-each>
  113. <out:for-each select="./selectChoices/selectTreeOption">
  114. <out:call-template name="SP_selectTreeOption"/>
  115. </out:for-each>
  116. </out:template>
  117. <out:template name="do-prompt-item-value">
  118. <out:param name="item"/>
  119. <out:choose>
  120. <out:when test="$item/@useValue">
  121. <bus:inclusive xsi:type="xsd:boolean">true</bus:inclusive>
  122. <bus:display xsi:type="xsd:string"><out:value-of select="$item/@displayValue"/></bus:display>
  123. <bus:use xsi:type="xsd:string"><out:value-of select="$item/@useValue"/></bus:use>
  124. </out:when>
  125. <out:when test="$item/@nullUse">
  126. <bus:inclusive xsi:type="xsd:boolean">true</bus:inclusive>
  127. <bus:use xsi:type="xsd:string" xsi:nil="true"/>
  128. <out:choose>
  129. <out:when test="$item/@displayValue">
  130. <bus:display xsi:type="xsd:string">
  131. <out:value-of select="$item/@displayValue"/>
  132. </bus:display>
  133. </out:when>
  134. <out:otherwise>
  135. <bus:display xsi:type="xsd:string" xsi:nil="true"/>
  136. </out:otherwise>
  137. </out:choose>
  138. </out:when>
  139. <out:when test="not($item='')">
  140. <bus:inclusive xsi:type="xsd:boolean">true</bus:inclusive>
  141. <bus:display xsi:type="xsd:string"><out:value-of select="$item"/></bus:display>
  142. <bus:use xsi:type="xsd:string"><out:value-of select="$item"/></bus:use>
  143. </out:when>
  144. <out:otherwise>
  145. <out:attribute name="xsi:nil">true</out:attribute>
  146. <out:attribute name="xsi:type"></out:attribute>
  147. </out:otherwise>
  148. </out:choose>
  149. </out:template>
  150. <out:template name="SP_selectTreeOption">
  151. <item xsi:type="bus:hierarchicalParmValueItem">
  152. <bus:inclusive xsi:type="xsd:boolean">true</bus:inclusive>
  153. <value xsi:type="bus:simpleParmValueItem">
  154. <out:call-template name="do-prompt-item-value">
  155. <out:with-param name="item" select="."/>
  156. </out:call-template>
  157. </value>
  158. <out:choose>
  159. <out:when test="./selectTreeOption">
  160. <subNodes xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="bus:hierarchicalParmValueItem[]" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  161. <out:for-each select="./selectTreeOption">
  162. <out:call-template name="SP_selectTreeOption"/>
  163. </out:for-each>
  164. </subNodes>
  165. </out:when>
  166. <out:otherwise>
  167. <subNodes xsi:nil="true"/>
  168. </out:otherwise>
  169. </out:choose>
  170. </item>
  171. </out:template>
  172. <out:template name="SetOptions">
  173. <out:variable name="user-format" select="/root/header/bus:biBusHeader/*[local-name() = 'userPreferenceVars']/item[name='format']/value"/>
  174. <out:variable name="execution-format" select="/root/source/cm:queryResponse/*/cm:executionFormat"/>
  175. <out:variable name="outputFormat">
  176. <out:choose>
  177. <out:when test="key('env-param', 'run.outputFormat') != ''">
  178. <out:choose>
  179. <out:when test="contains(key('env-param', 'run.outputFormat'), 'HTML')">HTMLFragment</out:when>
  180. <out:otherwise><out:value-of select="key('env-param', 'run.outputFormat')"/></out:otherwise>
  181. </out:choose>
  182. </out:when>
  183. <out:when test="$execution-format != ''">
  184. <out:choose>
  185. <out:when test="contains($execution-format, 'HTML')">HTMLFragment</out:when>
  186. <out:otherwise><out:value-of select="$execution-format"/></out:otherwise>
  187. </out:choose>
  188. </out:when>
  189. <out:when test="contains($user-format, 'HTML') or $user-format = ''">HTMLFragment</out:when>
  190. <out:otherwise><out:value-of select="$user-format"/></out:otherwise>
  191. </out:choose>
  192. </out:variable>
  193. <options xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="bus:option[]">
  194. <out:if test=" key('env-param', 'cv.id') != '' or key('env-param', 'cv.selection') = 'false' or key('env-param', 'cv.drill') = 'false' or ( string-length( key('env-param', 'rs_aliases') ) &gt; 0 ) ">
  195. <item xsi:type="bus:runOptionNameValueArray">
  196. <bus:name xsi:type="bus:runOptionEnum">xslParameters</bus:name>
  197. <bus:value xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="bus:nameValue[]">
  198. <out:if test="key('env-param', 'cv.id')!=''">
  199. <item xsi:type="bus:nameValue">
  200. <name xsi:type="xsd:string">CognosViewerID</name>
  201. <value xsi:type="xsd:string"><out:value-of select="key('env-param', 'cv.id')"/></value>
  202. </item>
  203. </out:if>
  204. <out:if test="key('env-param', 'cv.selection') = 'false'">
  205. <item xsi:type="bus:nameValue">
  206. <name xsi:type="xsd:string">CVDisableSelection</name>
  207. <value xsi:type="xsd:string">true</value>
  208. </item>
  209. </out:if>
  210. <out:if test="key('env-param', 'cv.drill') = 'false'">
  211. <item xsi:type="bus:nameValue">
  212. <name xsi:type="xsd:string">CVDisableDrill</name>
  213. <value xsi:type="xsd:string">true</value>
  214. </item>
  215. </out:if>
  216. <out:if test=" string-length( key('env-param', 'rs_aliases') ) &gt; 0 ">
  217. <item xsi:type="bus:nameValue">
  218. <name xsi:type="xsd:string">RSIncludeAlias</name>
  219. <value xsi:type="xsd:string">
  220. <out:value-of select="key('env-param', 'rs_aliases')"/>
  221. </value>
  222. </item>
  223. </out:if>
  224. </bus:value>
  225. </item>
  226. </out:if>
  227. <item xsi:type="bus:runOptionBoolean">
  228. <bus:name xsi:type="bus:runOptionEnum">saveOutput</bus:name>
  229. <bus:value xsi:type="xsd:boolean">false</bus:value>
  230. </item>
  231. <item xsi:type="bus:runOptionStringArray">
  232. <bus:name xsi:type="bus:runOptionEnum">outputFormat</bus:name>
  233. <bus:value xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="xsd:string[1]">
  234. <item><out:value-of select="$outputFormat"/></item>
  235. </bus:value>
  236. </item>
  237. <out:choose>
  238. <out:when test="key('env-param', 'run.outputLocale')!=''">
  239. <item xsi:type="bus:runOptionLanguageArray">
  240. <bus:name xsi:type="bus:runOptionEnum">outputLocale</bus:name>
  241. <bus:value xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="xsd:string[1]">
  242. <item><out:value-of select="key('env-param','run.outputLocale')"/></item>
  243. </bus:value>
  244. </item>
  245. </out:when>
  246. <out:when test="key('env-param', 'LO')!=''">
  247. <item xsi:type="bus:runOptionLanguageArray">
  248. <bus:name xsi:type="bus:runOptionEnum">outputLocale</bus:name>
  249. <bus:value xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="xsd:string[1]">
  250. <item><out:value-of select="key('env-param','LO')"/></item>
  251. </bus:value>
  252. </item>
  253. </out:when>
  254. </out:choose>
  255. <out:if test="key('env-param', 'run.prompt') != ''">
  256. <item xsi:type="bus:runOptionBoolean">
  257. <bus:name xsi:type="bus:runOptionEnum">prompt</bus:name>
  258. <bus:value xsi:type="xsd:boolean"><out:value-of select="key('env-param', 'run.prompt')"/></bus:value>
  259. </item>
  260. </out:if>
  261. <out:if test="key('env-param', 'run.outputPageDefinition') != ''">
  262. <item xsi:type="bus:runOptionString">
  263. <bus:name xsi:type="bus:runOptionEnum">outputPageDefinition</bus:name>
  264. <bus:value xsi:type="xsd:string"><out:value-of select="key('env-param', 'run.outputPageDefinition')"/></bus:value>
  265. </item>
  266. </out:if>
  267. <out:if test="key('env-param', 'run.outputPageOrientation') != ''">
  268. <item xsi:type="bus:runOptionString">
  269. <bus:name xsi:type="bus:runOptionEnum">outputPageOrientation</bus:name>
  270. <bus:value xsi:type="xsd:string"><out:value-of select="key('env-param', 'run.outputPageOrientation')"/></bus:value>
  271. </item>
  272. </out:if>
  273. <out:if test="key('env-param', 'run.recordingEnabled') != ''">
  274. <item xsi:type="bus:runOptionBoolean">
  275. <bus:name xsi:type="bus:runOptionEnum">recordingEnabled</bus:name>
  276. <bus:value xsi:type="xsd:boolean"><out:value-of select="key('env-param', 'run.recordingEnabled')"/></bus:value>
  277. </item>
  278. </out:if>
  279. <out:if test="key('env-param', 'run.verticalElements') != ''">
  280. <item xsi:type="bus:runOptionInt">
  281. <bus:name xsi:type="bus:runOptionEnum">verticalElements</bus:name>
  282. <bus:value xsi:type="xsd:int"><out:value-of select="key('env-param', 'run.verticalElements')"/></bus:value>
  283. </item>
  284. </out:if>
  285. <out:if test="key('env-param', 'run.horizontalElements') != ''">
  286. <item xsi:type="bus:runOptionInt">
  287. <bus:name xsi:type="bus:runOptionEnum">horizontalElements</bus:name>
  288. <bus:value xsi:type="xsd:int"><out:value-of select="key('env-param', 'run.horizontalElements')"/></bus:value>
  289. </item>
  290. </out:if>
  291. <item xsi:type="bus:runOptionData">
  292. <bus:name xsi:type="bus:runOptionEnum">data</bus:name>
  293. <bus:value xsi:type="bus:dataEnum">
  294. <out:choose>
  295. <out:when test="key('env-param', 'run.data') != ''">
  296. <out:value-of select="key('env-param', 'run.data')"/>
  297. </out:when>
  298. <out:otherwise>
  299. <out:text>runWithAllData</out:text>
  300. </out:otherwise>
  301. </out:choose>
  302. </bus:value>
  303. </item>
  304. <item xsi:type="bus:asynchOptionInt">
  305. <bus:name xsi:type="bus:asynchOptionEnum">primaryWaitThreshold</bus:name>
  306. <bus:value xsi:type="xsd:int">
  307. <out:choose>
  308. <out:when test="key('env-param','async.primaryWaitThreshold')"><out:value-of select="key('env-param','async.primaryWaitThreshold')"/></out:when>
  309. <out:otherwise><out:text>3</out:text></out:otherwise>
  310. </out:choose>
  311. </bus:value>
  312. </item>
  313. <out:if test="not(key('env-param', 'ui.spec'))">
  314. <item xsi:type="bus:asynchOptionBoolean">
  315. <bus:name xsi:type="bus:asynchOptionEnum">alwaysIncludePrimaryRequest</bus:name>
  316. <bus:value xsi:type="xsd:string">true</bus:value>
  317. </item>
  318. </out:if>
  319. <out:choose>
  320. <out:when test="/root/env/param[@name='run.outputEncapsulation'] and /root/env/param[@name='run.outputEncapsulation'] != ''">
  321. <item xsi:type="bus:runOptionOutputEncapsulation">
  322. <bus:name xsi:type="bus:runOptionEnum">outputEncapsulation</bus:name>
  323. <bus:value xsi:type="bus:outputEncapsulationEnum"><out:value-of select="/root/env/param[@name='run.outputEncapsulation']"/></bus:value>
  324. </item>
  325. </out:when>
  326. <out:when test="contains($outputFormat, 'HTML') or (contains(/root/http/param[@name='HTTP_USER_AGENT'] , 'Mozilla/5.0') and contains($outputFormat, 'XML') )">
  327. <item xsi:type="bus:runOptionOutputEncapsulation">
  328. <bus:name xsi:type="bus:runOptionEnum">outputEncapsulation</bus:name>
  329. <bus:value xsi:type="bus:outputEncapsulationEnum">none</bus:value>
  330. </item>
  331. </out:when>
  332. <out:otherwise>
  333. <item xsi:type="bus:runOptionOutputEncapsulation">
  334. <bus:name xsi:type="bus:runOptionEnum">outputEncapsulation</bus:name>
  335. <bus:value xsi:type="bus:outputEncapsulationEnum">URLQueryString</bus:value>
  336. </item>
  337. </out:otherwise>
  338. </out:choose>
  339. <out:choose>
  340. <out:when test="/root/env/param[@name='run.attachmentEncoding'] and /root/env/param[@name='run.attachmentEncoding'] != ''">
  341. <item xsi:type="bus:asynchOptionEncoding">
  342. <bus:name xsi:type="bus:asynchOptionEnum">attachmentEncoding</bus:name>
  343. <bus:value xsi:type="bus:encodingEnum"><out:value-of select="string(/root/env/param[@name='run.attachmentEncoding'])"/></bus:value>
  344. </item>
  345. </out:when>
  346. <out:when test="contains($outputFormat, 'HTML') and not(/root/env/param[@name='m_session'])">
  347. <item xsi:type="bus:asynchOptionEncoding">
  348. <bus:name xsi:type="bus:asynchOptionEnum">attachmentEncoding</bus:name>
  349. <bus:value xsi:type="bus:encodingEnum">MIME</bus:value>
  350. </item>
  351. </out:when>
  352. <out:otherwise>
  353. <item xsi:type="bus:asynchOptionEncoding">
  354. <bus:name xsi:type="bus:asynchOptionEnum">attachmentEncoding</bus:name>
  355. <bus:value xsi:type="bus:encodingEnum">base64</bus:value>
  356. </item>
  357. </out:otherwise>
  358. </out:choose>
  359. <item xsi:type="bus:runOptionString">
  360. <bus:name xsi:type="bus:runOptionEnum">promptFormat</bus:name>
  361. <bus:value xsi:type="xsd:string">HTMLFragment</bus:value>
  362. </item>
  363. <item xsi:type="bus:runOptionAnyURI">
  364. <bus:name xsi:type="bus:runOptionEnum">xslURL</bus:name>
  365. <bus:value xsi:type="xsd:string">
  366. <out:choose>
  367. <out:when test="key('env-param', 'run.xslURL') != ''"><out:value-of select="key('env-param', 'run.xslURL')"/></out:when>
  368. <out:otherwise>rv.xsl</out:otherwise>
  369. </out:choose>
  370. </bus:value>
  371. </item>
  372. </options>
  373. </out:template>
  374. <out:template name="SetDeliveryOptions">
  375. <options xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="bus:option[]">
  376. <out:if test="key('env-param', 'continueConversation') = 'true'">
  377. <item xsi:type="bus:runOptionBoolean">
  378. <name xsi:type="bus:runOptionEnum">continueConversation</name>
  379. <value xsi:type="xsd:boolean">true</value>
  380. </item>
  381. </out:if>
  382. <out:if test="/root/env/*[@name='m_ro_outputFormat_PDF'] = 'PDF' and (not(/root/env/*[@name='changed_specify_format']) or /root/env/*[@name='specify_format']='checked')">
  383. <out:for-each select="/root/env/*[@name='m_ro_outputPageDefinition' or @name='m_ro_outputPageOrientation']">
  384. <out:variable name="runOptionName" select="substring-after(@name, 'm_ro_')"/>
  385. <item xsi:type="bus:runOptionString">
  386. <name xsi:type="bus:runOptionEnum">
  387. <out:value-of select="$runOptionName"/>
  388. </name>
  389. <value xsi:type="xsd:string">
  390. <out:value-of select="."/>
  391. </value>
  392. </item>
  393. </out:for-each>
  394. </out:if>
  395. <out:choose>
  396. <out:when test="/root/env/*[@name='save_how'] and /root/env/*[@name='save_how']='new_entry'">
  397. <item xsi:type="bus:runOptionSaveAs">
  398. <name xsi:type="bus:runOptionEnum">saveAs</name>
  399. <objectClass xsi:type="bus:reportSaveAsEnum">
  400. <out:value-of select="/root/env/*[@name='m_ro_saveAsType']"/>
  401. </objectClass>
  402. <objectName xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="bus:multilingualToken[]">
  403. <item xsi:type="bus:multilingualToken">
  404. <locale xsi:type="xsd:string"><out:value-of select="/root/env/*[@name='run.outputLocale']"/></locale>
  405. <value xsi:type="xsd:string">
  406. <out:value-of select="/root/env/*[@name='m_ro_saveAsName']"/>
  407. </value>
  408. </item>
  409. </objectName>
  410. <parentSearchPath xsi:type="xsd:string">
  411. <out:value-of select="/root/env/*[@name='m_ro_saveAsPath']"/>
  412. </parentSearchPath>
  413. </item>
  414. </out:when>
  415. <out:when test="/root/env/*[@name='m_ro_saveOutput'] and /root/env/*[@name='m_ro_saveOutput']!=''">
  416. <item xsi:type="bus:runOptionBoolean">
  417. <name xsi:type="bus:runOptionEnum">
  418. <out:value-of select="'saveOutput'"/>
  419. </name>
  420. <value xsi:type="xsd:boolean">
  421. <out:value-of select="/root/env/*[@name='m_ro_saveOutput']"/>
  422. </value>
  423. </item>
  424. </out:when>
  425. </out:choose>
  426. <out:if test="/root/env/*[starts-with(@name,'m_ro_outputFormat')] and (not(/root/env/*[@name='changed_specify_format']) or /root/env/*[@name='specify_format']='checked')">
  427. <item xsi:type="bus:runOptionStringArray">
  428. <name xsi:type="bus:runOptionEnum">outputFormat</name>
  429. <value xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="xsd:string[]">
  430. <out:for-each select="/root/env/*[starts-with(@name,concat('m_ro_','outputFormat'))]">
  431. <out:if test="(@name!='m_ro_outputFormat_HTML' or /root/env/*[@name='m_ro_outputF_HTML_Type']='true') and . != ''">
  432. <item xsi:type="xsd:string">
  433. <out:value-of select="."/>
  434. </item>
  435. </out:if>
  436. </out:for-each>
  437. </value>
  438. </item>
  439. </out:if>
  440. <out:if test="/root/env/*[@name='run.outputLocale'] and (not(/root/env/*[@name='changed_specify_language']) or /root/env/*[@name='specify_language']='checked')">
  441. <item xsi:type="bus:runOptionLanguageArray">
  442. <name xsi:type="bus:runOptionEnum">outputLocale</name>
  443. <value xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="xsd:string[]">
  444. <out:for-each select="/root/env/*[starts-with(@name,concat('m_ro_','outputLocale'))]">
  445. <out:if test="(@name!='m_ro_outputFormat_HTML' or /root/env/*[@name='m_ro_outputF_HTML_Type']='true') and . != ''">
  446. <item xsi:type="xsd:string">
  447. <out:value-of select="."/>
  448. </item>
  449. </out:if>
  450. </out:for-each>
  451. </value>
  452. </item>
  453. </out:if>
  454. </options>
  455. </out:template>
  456. <out:template name="SetDrillOptions">
  457. <options xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="bus:option[]">
  458. <item xsi:type="bus:drillOptionParameterValues">
  459. <bus:name xsi:type="bus:drillOptionEnum">
  460. <out:value-of select="/root/env/param[@name='rv_drillOption']"/>
  461. </bus:name>
  462. <out:call-template name="SetDrillOptionParameters"/>
  463. </item>
  464. <item xsi:type="bus:runOptionBoolean">
  465. <bus:name xsi:type="bus:runOptionEnum">prompt</bus:name>
  466. <bus:value xsi:type="xsd:boolean">false</bus:value>
  467. </item>
  468. <item xsi:type="bus:runOptionStringArray">
  469. <bus:name xsi:type="bus:runOptionEnum">outputFormat</bus:name>
  470. <bus:value xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="xsd:string[1]">
  471. <item>HTMLFragment</item>
  472. </bus:value>
  473. </item>
  474. <item xsi:type="bus:runOptionOutputEncapsulation">
  475. <bus:name xsi:type="bus:runOptionEnum">outputEncapsulation</bus:name>
  476. <bus:value xsi:type="bus:outputEncapsulationEnum">none</bus:value>
  477. </item>
  478. <out:choose>
  479. <out:when test="not(/root/env/param[@name='m_session']) or /root/env/param[@name='session']=''">
  480. <item xsi:type="bus:asynchOptionEncoding">
  481. <bus:name xsi:type="bus:asynchOptionEnum">attachmentEncoding</bus:name>
  482. <bus:value xsi:type="bus:encodingEnum">MIME</bus:value>
  483. </item>
  484. </out:when>
  485. <out:otherwise>
  486. <item xsi:type="bus:asynchOptionEncoding">
  487. <bus:name xsi:type="bus:asynchOptionEnum">attachmentEncoding</bus:name>
  488. <bus:value xsi:type="bus:encodingEnum">base64</bus:value>
  489. </item>
  490. </out:otherwise>
  491. </out:choose>
  492. </options>
  493. </out:template>
  494. <out:template name="SetDrillOptionParameters">
  495. <bus:value xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="bus:parameterValue[]">
  496. <out:for-each select="/root/DrillRequestParameters/RVDrillParams/*[local-name()='DG']">
  497. <item>
  498. <bus:name xsi:type="xs:string">
  499. <out:value-of select="./DI"/>
  500. </bus:name>
  501. <bus:value xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="bus:parmValueItem[]">
  502. <item xsi:type="bus:simpleParmValueItem">
  503. <bus:use xsi:type="xs:string">
  504. <out:value-of select="./MUN"/>
  505. </bus:use>
  506. <out:if test="/root/env/param[@name='rv_drillRefQuery']!=''">
  507. <bus:display xsi:type="xs:string"><out:value-of select="/root/env/param[@name='rv_drillRefQuery']"/></bus:display>
  508. </out:if>
  509. </item>
  510. </bus:value>
  511. </item>
  512. </out:for-each>
  513. </bus:value>
  514. </out:template>
  515. </xsl:template>
  516. <!-- the main engine -->
  517. <xsl:template match="*">
  518. <xsl:copy>
  519. <xsl:copy-of select="@*"/>
  520. <xsl:apply-templates/>
  521. </xsl:copy>
  522. </xsl:template>
  523. </xsl:stylesheet>