prompts2wsdl.xsl 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!--
  3. Licensed Materials - Property of IBM
  4. IBM Cognos Products: CCS
  5. (c) Copyright IBM Corp. 2005, 2010
  6. US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  7. -->
  8. <xsl:stylesheet version="1.0" xmlns:rds="http://developer.cognos.com/schemas/rds/types/1" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  9. <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
  10. <xsl:template match="/">
  11. <schemaDef>
  12. <xsl:apply-templates select="//selectValue | // textBox | //selectDateTime | //selectDate | //selectTime | //selectWithSearch | //selectWithTree | //selectInterval"/>
  13. </schemaDef>
  14. </xsl:template>
  15. <xsl:template match="selectValue">
  16. <xs:element>
  17. <xsl:attribute name="name"><xsl:value-of select="concat(@parameter, 'Prompt')"/></xsl:attribute>
  18. <xsl:attribute name="type"><xsl:value-of select="concat(@parameter, 'PromptType')"/></xsl:attribute>
  19. </xs:element>
  20. <xs:complexType>
  21. <xsl:attribute name="name"><xsl:value-of select="concat(@parameter, 'PromptType')"/></xsl:attribute>
  22. <xs:sequence>
  23. <xsl:choose>
  24. <xsl:when test="@range = 'true'">
  25. <xs:element name="minUseValue">
  26. <xsl:attribute name="type"><xsl:value-of select="concat(@parameter, 'PromptTypeEnum')"/></xsl:attribute>
  27. </xs:element>
  28. <xs:element name="maxUseValue">
  29. <xsl:attribute name="type"><xsl:value-of select="concat(@parameter, 'PromptTypeEnum')"/></xsl:attribute>
  30. </xs:element>
  31. </xsl:when>
  32. <xsl:otherwise>
  33. <xs:element name="useValue">
  34. <xsl:attribute name="type"><xsl:value-of select="concat(@parameter, 'PromptTypeEnum')"/></xsl:attribute>
  35. </xs:element>
  36. </xsl:otherwise>
  37. </xsl:choose>
  38. </xs:sequence>
  39. </xs:complexType>
  40. <xs:simpleType>
  41. <xsl:attribute name="name"><xsl:value-of select="concat(@parameter, 'PromptTypeEnum')"/></xsl:attribute>
  42. <xs:restriction base="xs:string">
  43. <xsl:for-each select="selectOptions/selectOption">
  44. <xs:enumeration>
  45. <xsl:attribute name="value"><xsl:value-of select="@useValue"/></xsl:attribute>
  46. </xs:enumeration>
  47. </xsl:for-each>
  48. </xs:restriction>
  49. </xs:simpleType>
  50. </xsl:template>
  51. <xsl:template match="textBox | selectWithSearch | selectWithTree">
  52. <xs:element>
  53. <xsl:attribute name="name"><xsl:value-of select="concat(@parameter, 'Prompt')"/></xsl:attribute>
  54. <xsl:attribute name="type"><xsl:value-of select="concat(@parameter, 'PromptType')"/></xsl:attribute>
  55. </xs:element>
  56. <xs:complexType>
  57. <xsl:attribute name="name"><xsl:value-of select="concat(@parameter, 'PromptType')"/></xsl:attribute>
  58. <xs:sequence>
  59. <xsl:choose>
  60. <xsl:when test="@range = 'true'">
  61. <xs:element name="minUseValue" type="xs:string"/>
  62. <xs:element name="maxUseValue" type="xs:string"/>
  63. </xsl:when>
  64. <xsl:otherwise>
  65. <xs:element name="useValue" type="xs:string"/>
  66. </xsl:otherwise>
  67. </xsl:choose>
  68. </xs:sequence>
  69. </xs:complexType>
  70. </xsl:template>
  71. <xsl:template match="selectDate">
  72. <xsl:call-template name="dateTime">
  73. <xsl:with-param name="dtType" select="'xs:date'"/>
  74. </xsl:call-template>
  75. </xsl:template>
  76. <xsl:template match="selectTime">
  77. <xsl:call-template name="dateTime">
  78. <xsl:with-param name="dtType" select="'xs:time'"/>
  79. </xsl:call-template>
  80. </xsl:template>
  81. <xsl:template match="selectDateTime">
  82. <xsl:call-template name="dateTime">
  83. <xsl:with-param name="dtType" select="'xs:datetime'"/>
  84. </xsl:call-template>
  85. </xsl:template>
  86. <xsl:template match="selectInterval">
  87. <!--Not quite sure what type an interval should be-->
  88. <xsl:call-template name="dateTime">
  89. <xsl:with-param name="dtType" select="xs:string"/>
  90. </xsl:call-template>
  91. </xsl:template>
  92. <xsl:template name="dateTime">
  93. <xsl:param name="dtType"/>
  94. <xs:element>
  95. <xsl:attribute name="name"><xsl:value-of select="concat(@parameter, 'Prompt')"/></xsl:attribute>
  96. <xsl:attribute name="type"><xsl:value-of select="concat(@parameter, 'PromptType')"/></xsl:attribute>
  97. </xs:element>
  98. <xs:complexType>
  99. <xsl:attribute name="name"><xsl:value-of select="concat(@parameter, 'PromptType')"/></xsl:attribute>
  100. <xs:sequence>
  101. <xsl:choose>
  102. <xsl:when test="@range = 'true'">
  103. <xs:element name="minUseValue">
  104. <xsl:attribute name="type"><xsl:value-of select="$dtType"/></xsl:attribute>
  105. </xs:element>
  106. <xs:element name="maxUseValue">
  107. <xsl:attribute name="type"><xsl:value-of select="$dtType"/></xsl:attribute>
  108. </xs:element>
  109. </xsl:when>
  110. <xsl:otherwise>
  111. <xs:element name="useValue">
  112. <xsl:attribute name="type"><xsl:value-of select="$dtType"/></xsl:attribute>
  113. </xs:element>
  114. </xsl:otherwise>
  115. </xsl:choose>
  116. </xs:sequence>
  117. </xs:complexType>
  118. </xsl:template>
  119. </xsl:stylesheet>