/sigmah/src/main/resources/report-def.xsd

http://sigma-h.googlecode.com/ · XML Schema · 294 lines · 246 code · 48 blank · 0 comment · 0 complexity · 433eb98bf6786ac0e2eeebbf5d55c16f MD5 · raw file

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!--
  3. ~ All Sigmah code is released under the GNU General Public License v3
  4. ~ See COPYRIGHT.txt and LICENSE.txt.
  5. -->
  6. <schema xmlns="http://www.w3.org/2001/XMLSchema"
  7. xmlns:rpt="http://www.activityinfo.org/report-def"
  8. targetNamespace="http://www.activityinfo.org/report-def" xmlns:Q1="http://www.activityinfo.org/report-def.xsd">
  9. <complexType name="reportType">
  10. <sequence>
  11. <element name="title" type="string"></element>
  12. <element name="filename" type="string"></element>
  13. <element name="parameters" type="rpt:parametersType"
  14. maxOccurs="1" minOccurs="0" />
  15. <element name="filter" type="rpt:filterType" maxOccurs="1"
  16. minOccurs="0" />
  17. <element name="body" type="rpt:bodyType" maxOccurs="1"
  18. minOccurs="1" />
  19. </sequence>
  20. </complexType>
  21. <complexType name="parametersType">
  22. <sequence>
  23. <element name="parameter">
  24. <complexType>
  25. <attribute name="type"
  26. type="rpt:parameterDataType">
  27. </attribute>
  28. <attribute name="date-unit"
  29. type="rpt:dateUnitType">
  30. </attribute>
  31. <attribute name="name" type="string"></attribute>
  32. </complexType></element>
  33. </sequence>
  34. </complexType>
  35. <complexType name="bodyType">
  36. <sequence>
  37. <element name="title" type="string" maxOccurs="1" minOccurs="1"></element>
  38. <element name="sheetTitle" type="string" maxOccurs="1" minOccurs="0"></element>
  39. <choice maxOccurs="unbounded" minOccurs="1">
  40. <element name="chart" type="rpt:chartType" />
  41. <element name="pivotTable" type="rpt:pivotTableType" />
  42. <element name="table" type="rpt:tableType" />
  43. </choice>
  44. </sequence>
  45. </complexType>
  46. <complexType name="chartType">
  47. <complexContent>
  48. <extension base="rpt:bodyElementType">
  49. <sequence>
  50. <element name="dimensions" maxOccurs="1"
  51. minOccurs="1">
  52. <complexType>
  53. <sequence>
  54. <element name="category"
  55. type="rpt:dimensionCollectionType">
  56. </element>
  57. <element name="legend" type="string">
  58. </element>
  59. </sequence>
  60. </complexType>
  61. </element>
  62. <element name="values"
  63. type="string">
  64. </element>
  65. </sequence>
  66. <attribute name="type" type="rpt:chartTypeType"></attribute>
  67. </extension>
  68. </complexContent>
  69. </complexType>
  70. <complexType name="pivotTableType"></complexType>
  71. <complexType name="tableType">
  72. <complexContent>
  73. <extension base="rpt:bodyElementType">
  74. <sequence>
  75. <element name="columns" maxOccurs="1"
  76. minOccurs="1">
  77. <complexType>
  78. <sequence>
  79. <element name="column"
  80. type="rpt:columnTreeType">
  81. </element>
  82. </sequence>
  83. </complexType>
  84. </element>
  85. <element name="sortBy"
  86. type="rpt:orderedColumnCollectionType" maxOccurs="1"
  87. minOccurs="0">
  88. </element>
  89. <element name="groupBy" type="rpt:orderedColumnCollectionType" maxOccurs="1"
  90. minOccurs="0">
  91. </element>
  92. <element name="panelBy" type="rpt:orderedColumnCollectionType" maxOccurs="1"
  93. minOccurs="0">
  94. </element>
  95. </sequence>
  96. </extension>
  97. </complexContent>
  98. </complexType>
  99. <complexType name="narrativeType">
  100. <complexContent>
  101. <extension base="rpt:bodyElementType"></extension>
  102. </complexContent>
  103. </complexType>
  104. <simpleType name="dateUnitType">
  105. <restriction base="string">
  106. <enumeration value="day"></enumeration>
  107. <enumeration value="month"></enumeration>
  108. <enumeration value="year"></enumeration>
  109. <enumeration value="quarter"></enumeration>
  110. <enumeration value="week"></enumeration>
  111. </restriction>
  112. </simpleType>
  113. <complexType name="dateRangeType">
  114. <attribute use="optional" name="min" type="string"></attribute>
  115. <attribute name="max" type="string" use="optional"></attribute>
  116. <attribute name="date-unit" type="rpt:dateUnitType" use="optional"></attribute>
  117. <attribute name="last" type="int" use="optional"></attribute>
  118. </complexType>
  119. <complexType name="bodyElementType">
  120. <sequence>
  121. <element name="title" type="string"></element>
  122. <element name="sheetTitle" type="string"></element>
  123. <element name="filter" type="string"></element>
  124. </sequence>
  125. </complexType>
  126. <complexType name="dimensionCollectionType">
  127. <sequence>
  128. <element name="dimension" type="rpt:dimensionType"/>
  129. </sequence>
  130. </complexType>
  131. <complexType name="dimensionType">
  132. <attribute name="type">
  133. <simpleType>
  134. <restriction base="string">
  135. <enumeration value="partner"></enumeration>
  136. <enumeration value="date1"></enumeration>
  137. <enumeration value="date2"></enumeration>
  138. <enumeration value="location"></enumeration>
  139. <enumeration value="location2"></enumeration>
  140. <enumeration value="admin"></enumeration>
  141. <enumeration value="indicator"/>
  142. <enumeration value="admin"/>
  143. <enumeration value="attribute"/>
  144. </restriction>
  145. </simpleType>
  146. </attribute>
  147. <attribute name="level" type="int"/>
  148. <attribute name="id" type="int"/>
  149. </complexType>
  150. <simpleType name="chartTypeType">
  151. <restriction base="string"></restriction>
  152. </simpleType>
  153. <element name="report" type="rpt:reportType"></element>
  154. <simpleType name="parameterDataType">
  155. <restriction base="string">
  156. <enumeration value="date"></enumeration>
  157. <enumeration value="activity"></enumeration>
  158. <enumeration value="database"></enumeration>
  159. <enumeration value="indicator"></enumeration>
  160. <enumeration value="admin-entity"></enumeration>
  161. <enumeration value="admin-level"></enumeration>
  162. </restriction>
  163. </simpleType>
  164. <complexType name="parameterizedValueType">
  165. <attribute name="literalValue" type="string"></attribute>
  166. <attribute name="parameterRef" type="string"></attribute>
  167. </complexType>
  168. <complexType name="filterType">
  169. <sequence>
  170. <element name="dimension">
  171. <complexType>
  172. <sequence>
  173. <element name="include" maxOccurs="unbounded"
  174. minOccurs="0">
  175. <complexType>
  176. <attribute name="id" type="int">
  177. </attribute>
  178. </complexType>
  179. </element>
  180. </sequence>
  181. <attribute name="type"
  182. type="rpt:dimensionTypeType">
  183. </attribute>
  184. </complexType>
  185. </element>
  186. <element name="dateRange" type="rpt:dateRangeType"></element>
  187. </sequence>
  188. </complexType>
  189. <simpleType name="dimensionTypeType">
  190. <restriction base="string">
  191. <enumeration value="database"></enumeration>
  192. <enumeration value="indicator"></enumeration>
  193. <enumeration value="admin"></enumeration>
  194. <enumeration value="activity"></enumeration>
  195. <enumeration value="partner"></enumeration>
  196. <enumeration value="status"></enumeration>
  197. <enumeration value="date"></enumeration>
  198. </restriction>
  199. </simpleType>
  200. <complexType name="columnType">
  201. <attribute name="source" type="rpt:columnSourceType"></attribute>
  202. </complexType>
  203. <simpleType name="columnSourceType">
  204. <restriction base="string">
  205. <enumeration value="date1"></enumeration>
  206. <enumeration value="date2"></enumeration>
  207. <enumeration value="location.name"></enumeration>
  208. <enumeration value="location.axe"></enumeration>
  209. <enumeration value="location.x"></enumeration>
  210. <enumeration value="location.y"></enumeration>
  211. <enumeration value="admin"></enumeration>
  212. <enumeration value="partner"></enumeration>
  213. <enumeration value="status"></enumeration>
  214. <enumeration value="indicator"></enumeration>
  215. <enumeration value="attribute"></enumeration>
  216. <enumeration value="attributeGroup"></enumeration>
  217. </restriction>
  218. </simpleType>
  219. <complexType name="columnTreeType">
  220. <complexContent>
  221. <extension base="rpt:columnType">
  222. <sequence>
  223. <element name="column" type="rpt:columnTreeType" maxOccurs="1" minOccurs="0"></element>
  224. </sequence>
  225. </extension>
  226. </complexContent>
  227. </complexType>
  228. <complexType name="orderedColumnCollectionType">
  229. <sequence>
  230. <element name="column" type="rpt:orderedColumnType"></element>
  231. </sequence>
  232. </complexType>
  233. <complexType name="orderedColumnType">
  234. <complexContent>
  235. <extension base="rpt:columnType">
  236. <attribute name="order" type="rpt:orderType"></attribute>
  237. </extension>
  238. </complexContent>
  239. </complexType>
  240. <simpleType name="orderType">
  241. <restriction base="string">
  242. <enumeration value="ascending"></enumeration>
  243. <enumeration value="descending"></enumeration>
  244. </restriction>
  245. </simpleType>
  246. </schema>