qfs_config.xsd 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!--
  3. Licensed Materials - Property of IBM
  4. BI and PM: QFW
  5. © 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. <xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  9. <xs:annotation>
  10. <xs:documentation>Common QFS configuration elements</xs:documentation>
  11. </xs:annotation>
  12. <xs:element name="QFSConfiguration">
  13. <xs:complexType>
  14. <xs:sequence>
  15. <xs:group ref="properties"/>
  16. <xs:element name="providerList">
  17. <xs:complexType>
  18. <xs:sequence>
  19. <xs:element name="provider" type="providerType" maxOccurs="unbounded"/>
  20. </xs:sequence>
  21. </xs:complexType>
  22. </xs:element>
  23. <xs:element ref="operationSupport"/>
  24. </xs:sequence>
  25. <xs:attribute name="version" type="xs:string" use="required">
  26. <xs:annotation>
  27. <xs:documentation>Version of the configuration file</xs:documentation>
  28. </xs:annotation>
  29. </xs:attribute>
  30. </xs:complexType>
  31. </xs:element>
  32. <xs:group name="properties">
  33. <xs:all>
  34. <xs:element name="logCommands" minOccurs="0">
  35. <xs:annotation>
  36. <xs:documentation>Defines whether to log commands through QF API logging facility. 'logs' folder must exist on the same level as 'bin' folder. Log file 'qfs_commands.xml' will be created. It can later be replayed using QFS Test Tool. Also, a command file for every provider that was involved in the planning or execution of a QF Command will be saved in the logs folder. Levesl 0, 1, 2 are the appropriate logging levels.</xs:documentation>
  37. </xs:annotation>
  38. <xs:complexType>
  39. <xs:attribute name="value" type="xs:nonNegativeInteger" default="0"/>
  40. </xs:complexType>
  41. </xs:element>
  42. <xs:element name="captureCommandsOnly" minOccurs="0" maxOccurs="1">
  43. <xs:annotation>
  44. <xs:documentation>Only supported on CSTD_PLATFORM_WIN32. Instructs QF to not execute commands but to log the command only and then fail the command.</xs:documentation>
  45. </xs:annotation>
  46. <xs:complexType>
  47. <xs:attribute name="value" type="xs:boolean" use="mandatory" default="false"/>
  48. </xs:complexType>
  49. </xs:element>
  50. <xs:element name="threadSleepInterval" minOccurs="0">
  51. <xs:annotation>
  52. <xs:documentation>Number of milliseconds the cleanup thread that does cleanup of unused connections should sleep between passes.</xs:documentation>
  53. </xs:annotation>
  54. <xs:complexType>
  55. <xs:attribute name="value" type="xs:nonNegativeInteger" default="15000"/>
  56. </xs:complexType>
  57. </xs:element>
  58. <xs:element name="connectionPoolSize" minOccurs="0">
  59. <xs:annotation>
  60. <xs:documentation>Max number of open connections allowed (“–1” means “no limit”). Connections to providers can be limited using this parameter; when the threshold is reached request to open a new connection will block for period of time configured through 'requestExpirationThreshold'.</xs:documentation>
  61. </xs:annotation>
  62. <xs:complexType>
  63. <xs:attribute name="value" type="xs:integer" default="-1"/>
  64. </xs:complexType>
  65. </xs:element>
  66. <xs:element name="connectionExpirationThreshold" minOccurs="0">
  67. <xs:annotation>
  68. <xs:documentation>Number of milliseconds that must pass before connection can be considered “expired”. Once the internal connection to the data source is no longer used it remains available for this period of time and then deleted.</xs:documentation>
  69. </xs:annotation>
  70. <xs:complexType>
  71. <xs:attribute name="value" type="xs:nonNegativeInteger" default="300000"/>
  72. </xs:complexType>
  73. </xs:element>
  74. <xs:element name="connectionTotalUseCountThreshold" minOccurs="0">
  75. <xs:annotation>
  76. <xs:documentation>Number of times that a connection can be reused, excluding "metadata" commands. Once the threshold is met, the connection is cleaned up.</xs:documentation>
  77. </xs:annotation>
  78. <xs:complexType>
  79. <xs:attribute name="value" type="xs:nonNegativeInteger" default="1000"/>
  80. </xs:complexType>
  81. </xs:element>
  82. <xs:element name="connectionMetadataTotalUseCountThreshold" minOccurs="0">
  83. <xs:annotation>
  84. <xs:documentation>Number of times that a connection can be reused for "metadata" commands only. Once the threshold is met, the connection is cleaned up.</xs:documentation>
  85. </xs:annotation>
  86. <xs:complexType>
  87. <xs:attribute name="value" type="xs:nonNegativeInteger" default="10000000"/>
  88. </xs:complexType>
  89. </xs:element>
  90. <xs:element name="connectionCleanupInterval" minOccurs="0">
  91. <xs:annotation>
  92. <xs:documentation>Number of milliseconds between cleaning the connection pool. After this period of time passes the cleanup thread will identify and remove unused connections.</xs:documentation>
  93. </xs:annotation>
  94. <xs:complexType>
  95. <xs:attribute name="value" type="xs:nonNegativeInteger" default="15000"/>
  96. </xs:complexType>
  97. </xs:element>
  98. <xs:element name="highLevelPoolLingerTime" minOccurs="0">
  99. <xs:annotation>
  100. <xs:documentation>Number of milliseconds for which the high-level resource pool is available for reuse after having been released.</xs:documentation>
  101. </xs:annotation>
  102. <xs:complexType>
  103. <xs:attribute name="value" type="xs:nonNegativeInteger" default="30000"/>
  104. </xs:complexType>
  105. </xs:element>
  106. <xs:element name="requestExpirationThreshold" minOccurs="0">
  107. <xs:annotation>
  108. <xs:documentation>Number of milliseconds after which QFS gives up when trying to open a new connection (e.g. when connection pool is limited in size and QFS waits for a new connection "slot" to become available).</xs:documentation>
  109. </xs:annotation>
  110. <xs:complexType>
  111. <xs:attribute name="value" type="xs:nonNegativeInteger" default="60000"/>
  112. </xs:complexType>
  113. </xs:element>
  114. <xs:element name="metadataPoolSize" minOccurs="0">
  115. <xs:annotation>
  116. <xs:documentation>Max number of elements in the metadata query pool (“–1” means “no limit”). This is the maximum allowed number of metadata queries per connection.</xs:documentation>
  117. </xs:annotation>
  118. <xs:complexType>
  119. <xs:attribute name="value" type="xs:integer" default="-1"/>
  120. </xs:complexType>
  121. </xs:element>
  122. <xs:element name="metadataExpirationThreshold" minOccurs="0">
  123. <xs:annotation>
  124. <xs:documentation>Number of milliseconds that must pass before metadata query object can be considered “expired” (and can be deleted).</xs:documentation>
  125. </xs:annotation>
  126. <xs:complexType>
  127. <xs:attribute name="value" type="xs:nonNegativeInteger" default="60000"/>
  128. </xs:complexType>
  129. </xs:element>
  130. <xs:element name="metadataCleanupInterval" minOccurs="0">
  131. <xs:annotation>
  132. <xs:documentation>Number of milliseconds between cleaning the metadata query pools.</xs:documentation>
  133. </xs:annotation>
  134. <xs:complexType>
  135. <xs:attribute name="value" type="xs:nonNegativeInteger" default="15000"/>
  136. </xs:complexType>
  137. </xs:element>
  138. <xs:element name="maxTuplesPerEdge" minOccurs="0">
  139. <xs:annotation>
  140. <xs:documentation>Max number of tuples that is allowed on a single edge (“–1” means “no limit”). This limit allows providers to refuse to execute certain queries that will otherwise result in memory over-consumption.</xs:documentation>
  141. </xs:annotation>
  142. <xs:complexType>
  143. <xs:attribute name="value" type="xs:integer" default="-1"/>
  144. </xs:complexType>
  145. </xs:element>
  146. <xs:element name="maxCellsPerQuery" minOccurs="0">
  147. <xs:annotation>
  148. <xs:documentation>Max number of data cells that are allowed in a single query (“–1” means “no limit”). This limit allows providers to refuse to execute certain queries that will otherwise result in memory over-consumption.</xs:documentation>
  149. </xs:annotation>
  150. <xs:complexType>
  151. <xs:attribute name="value" type="xs:integer" default="-1"/>
  152. </xs:complexType>
  153. </xs:element>
  154. <xs:element name="defaultProvider" minOccurs="0">
  155. <xs:annotation>
  156. <xs:documentation>Provider to accept the query sent to the query framework service.</xs:documentation>
  157. </xs:annotation>
  158. <xs:complexType>
  159. <xs:attribute name="value" type="xs:string"/>
  160. </xs:complexType>
  161. </xs:element>
  162. <xs:element name="defaultFmCommandProvider" minOccurs="0">
  163. <xs:annotation>
  164. <xs:documentation>Provider to accept the FM command sent to the query framework service.</xs:documentation>
  165. </xs:annotation>
  166. <xs:complexType>
  167. <xs:attribute name="value" type="xs:string"/>
  168. </xs:complexType>
  169. </xs:element>
  170. </xs:all>
  171. </xs:group>
  172. <xs:complexType name="providerType">
  173. <xs:all>
  174. <xs:element name="connectionExpirationThreshold" type="nonNegativeIntegerType" minOccurs="0">
  175. <xs:annotation>
  176. <xs:documentation>Planner-specific number of milliseconds that must pass before connection can be considered “expired”. Once the internal connection to the data source is no longer used it remains available for this period of time and then deleted.</xs:documentation>
  177. </xs:annotation>
  178. </xs:element>
  179. <xs:element name="connectionTotalUseCountThreshold" type="nonNegativeIntegerType" minOccurs="0">
  180. <xs:annotation>
  181. <xs:documentation>Number of times that a connection can be reused, excluding "metadata" commands. Once the threshold is met, the connection is cleaned up.</xs:documentation>
  182. </xs:annotation>
  183. </xs:element>
  184. <xs:element name="connectionMetadataTotalUseCountThreshold" type="nonNegativeIntegerType" minOccurs="0">
  185. <xs:annotation>
  186. <xs:documentation>Number of times that a connection can be reused for "metadata" commands only. Once the threshold is met, the connection is cleaned up.</xs:documentation>
  187. </xs:annotation>
  188. </xs:element>
  189. <xs:element name="metadataPoolSize" type="integerPropertyType" minOccurs="0">
  190. <xs:annotation>
  191. <xs:documentation>Provider-specific max number of elements in the metadata query pool (“–1” means “no limit”). This is the maximum allowed number of metadata queries per connection.</xs:documentation>
  192. </xs:annotation>
  193. </xs:element>
  194. <xs:element name="metadataExpirationThreshold" type="nonNegativeIntegerType" minOccurs="0">
  195. <xs:annotation>
  196. <xs:documentation>Provider-specific number of milliseconds that must pass before metadata query object can be considered “expired” (and can be deleted).</xs:documentation>
  197. </xs:annotation>
  198. </xs:element>
  199. <xs:element name="metadataCleanupInterval" type="nonNegativeIntegerType" minOccurs="0">
  200. <xs:annotation>
  201. <xs:documentation>Provider-specific number of milliseconds between cleaning the metadata query pools.</xs:documentation>
  202. </xs:annotation>
  203. </xs:element>
  204. <xs:element name="maxTuplesPerEdge" type="integerPropertyType" minOccurs="0">
  205. <xs:annotation>
  206. <xs:documentation>Provider-specific max number of tuples that is allowed on a single edge (“–1” means “no limit”). This limit allows providers to refuse to execute certain queries that will otherwise result in memory over-consumption.</xs:documentation>
  207. </xs:annotation>
  208. </xs:element>
  209. <xs:element name="maxCellsPerQuery" type="integerPropertyType" minOccurs="0">
  210. <xs:annotation>
  211. <xs:documentation>Max number of data cells that are allowed in a single query (“–1” means “no limit”). This limit allows providers to refuse to execute certain queries that will otherwise result in memory over-consumption.</xs:documentation>
  212. </xs:annotation>
  213. </xs:element>
  214. <xs:element name="providerDetails" minOccurs="0">
  215. <xs:annotation>
  216. <xs:documentation>Information specific for this provider.</xs:documentation>
  217. </xs:annotation>
  218. <xs:complexType>
  219. <xs:choice>
  220. <xs:any namespace="##any">
  221. <xs:annotation>
  222. <xs:documentation>An arbitrary provider specific informaion.</xs:documentation>
  223. </xs:annotation>
  224. </xs:any>
  225. </xs:choice>
  226. </xs:complexType>
  227. </xs:element>
  228. </xs:all>
  229. <xs:attribute name="name" type="xs:string" use="required">
  230. <xs:annotation>
  231. <xs:documentation>Symbolic name of the provider that will be passed inside "dataSourceType" QS API connection property</xs:documentation>
  232. </xs:annotation>
  233. </xs:attribute>
  234. <xs:attribute name="libraryName" type="xs:string" use="required">
  235. <xs:annotation>
  236. <xs:documentation>Physical name of the provider shared library (appropriate suffix will be added on each platform)</xs:documentation>
  237. </xs:annotation>
  238. </xs:attribute>
  239. <xs:attribute name="serviceProvider" type="xs:boolean" use="optional" default="false">
  240. <xs:annotation>
  241. <xs:documentation>Indicates if this is a service provider</xs:documentation>
  242. </xs:annotation>
  243. </xs:attribute>
  244. <xs:attribute name="connectionCode" type="xs:string" use="optional"/>
  245. </xs:complexType>
  246. <xs:complexType name="propertyType">
  247. <xs:sequence>
  248. <xs:element name="operator" type="xs:string">
  249. <xs:annotation>
  250. <xs:documentation>Specifies element name</xs:documentation>
  251. </xs:annotation>
  252. </xs:element>
  253. <xs:element name="name" type="xs:string">
  254. <xs:annotation>
  255. <xs:documentation>Specifies attribute name</xs:documentation>
  256. </xs:annotation>
  257. </xs:element>
  258. <xs:element name="value" type="xs:string" minOccurs="0">
  259. <xs:annotation>
  260. <xs:documentation>Specifies attribute value</xs:documentation>
  261. </xs:annotation>
  262. </xs:element>
  263. </xs:sequence>
  264. </xs:complexType>
  265. <xs:complexType name="nonNegativeIntegerType">
  266. <xs:attribute name="value" type="xs:nonNegativeInteger" use="required"/>
  267. </xs:complexType>
  268. <xs:complexType name="integerPropertyType">
  269. <xs:attribute name="value" type="xs:integer" use="required"/>
  270. </xs:complexType>
  271. <xs:complexType name="booleanPropertyType">
  272. <xs:attribute name="value" type="xs:boolean" use="required"/>
  273. </xs:complexType>
  274. <xs:annotation>
  275. <xs:documentation>Coordination Planner elements</xs:documentation>
  276. </xs:annotation>
  277. <xs:element name="queryProcessingSequence">
  278. <xs:complexType>
  279. <xs:choice>
  280. <xs:element name="providerCall" minOccurs="0" maxOccurs="unbounded">
  281. <xs:complexType>
  282. <xs:attribute name="provider"/>
  283. <xs:attribute name="systemOptional" type="xs:boolean" use="optional" default="false"/>
  284. </xs:complexType>
  285. </xs:element>
  286. </xs:choice>
  287. </xs:complexType>
  288. </xs:element>
  289. <xs:element name="parameters">
  290. <xs:complexType>
  291. <xs:sequence>
  292. <xs:element name="parameter" maxOccurs="unbounded">
  293. <xs:complexType>
  294. <xs:attribute name="name" type="xs:string" use="required"/>
  295. <xs:attribute name="value" type="xs:string" use="required"/>
  296. </xs:complexType>
  297. </xs:element>
  298. </xs:sequence>
  299. </xs:complexType>
  300. </xs:element>
  301. <xs:element name="operationGroup">
  302. <xs:complexType>
  303. <xs:choice minOccurs="0" maxOccurs="unbounded">
  304. <xs:element ref="operationGroup"/>
  305. <xs:element ref="operation"/>
  306. </xs:choice>
  307. <xs:attribute name="name" type="xs:string"/>
  308. <xs:attribute name="supported" type="xs:boolean"/>
  309. <xs:attribute name="overrideBase" type="xs:boolean"/>
  310. <xs:attribute name="fdsForProvider" type="xs:string"/>
  311. </xs:complexType>
  312. </xs:element>
  313. <xs:element name="dataSources">
  314. <xs:complexType>
  315. <xs:sequence>
  316. <xs:element ref="dataSource" minOccurs="0" maxOccurs="unbounded"/>
  317. </xs:sequence>
  318. <xs:attribute name="supported" type="xs:boolean"/>
  319. <xs:attribute name="overrideBase" type="xs:string"/>
  320. </xs:complexType>
  321. </xs:element>
  322. <xs:element name="operation">
  323. <xs:complexType>
  324. <xs:sequence>
  325. <xs:element ref="dataSources" minOccurs="0"/>
  326. <xs:element name="pattern" minOccurs="0" maxOccurs="unbounded">
  327. <xs:complexType>
  328. <xs:attribute name="test" type="xs:string"/>
  329. </xs:complexType>
  330. </xs:element>
  331. </xs:sequence>
  332. <xs:attribute name="type" type="xs:string"/>
  333. <xs:attribute name="supported" type="xs:boolean"/>
  334. <xs:attribute name="overrideBase" type="xs:string"/>
  335. </xs:complexType>
  336. </xs:element>
  337. <xs:element name="operationSupport">
  338. <xs:complexType>
  339. <xs:sequence>
  340. <xs:element name="operationSupportTable" maxOccurs="unbounded">
  341. <xs:complexType>
  342. <xs:sequence>
  343. <xs:element ref="dataSources" minOccurs="0"/>
  344. <xs:element ref="operationGroup" maxOccurs="unbounded"/>
  345. </xs:sequence>
  346. <xs:attribute name="scope" type="xs:string" use="required"/>
  347. </xs:complexType>
  348. </xs:element>
  349. </xs:sequence>
  350. </xs:complexType>
  351. </xs:element>
  352. <xs:element name="dataSource">
  353. <xs:complexType>
  354. <xs:attribute name="type" type="xs:string"/>
  355. <xs:attribute name="supported" type="xs:boolean"/>
  356. </xs:complexType>
  357. </xs:element>
  358. </xs:schema>