ctkCmdLineModule.xsd 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594
  1. <?xml version="1.0"?>
  2. <?xml-stylesheet type="text/xsl" href="xs3p.xsl"?>
  3. <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  4. xmlns:xs3p="http://titanium.dstc.edu.au/xml/xs3p">
  5. <xsd:annotation>
  6. <xsd:appinfo source="http://www.commontk.org/docs/html/CommandLineModules_Page.html">
  7. <xs3p:title>CTK XML schema for command line modules.</xs3p:title>
  8. <xs3p:printGlossary>false</xs3p:printGlossary>
  9. <xs3p:printLegend>false</xs3p:printLegend>
  10. </xsd:appinfo>
  11. <xsd:documentation>The XML schema for the XML description of command line module parameters.</xsd:documentation>
  12. </xsd:annotation>
  13. <!--
  14. ===================================================================
  15. EXECUTABLE
  16. Root element
  17. ===================================================================
  18. -->
  19. <xsd:element name="executable">
  20. <xsd:annotation>
  21. <xsd:documentation>The root element for each module XML description. It must contain
  22. at least one "parameters" element.</xsd:documentation>
  23. </xsd:annotation>
  24. <xsd:complexType>
  25. <xsd:sequence>
  26. <!-- 'title' and 'description' elements are required -->
  27. <xsd:element maxOccurs="1" minOccurs="0" name="category" type="xsd:string">
  28. <xsd:annotation>
  29. <xsd:documentation>Classifies the module (e.g. Filtering, Segmentation).
  30. The value can be a dot separated string to create category hierarchies.</xsd:documentation>
  31. </xsd:annotation>
  32. </xsd:element>
  33. <xsd:element maxOccurs="1" name="title" type="xsd:string">
  34. <xsd:annotation>
  35. <xsd:documentation>A human-readable name for the module.</xsd:documentation>
  36. </xsd:annotation>
  37. </xsd:element>
  38. <xsd:element maxOccurs="1" name="description" type="xsd:string">
  39. <xsd:annotation>
  40. <xsd:documentation>A detailed description of the modules purpose.</xsd:documentation>
  41. </xsd:annotation>
  42. </xsd:element>
  43. <xsd:element maxOccurs="1" minOccurs="0" name="version" type="xsd:string">
  44. <xsd:annotation>
  45. <xsd:documentation>The modules version number. A suggested format is:
  46. &lt;p&gt;
  47. major.minor.patch.build.status
  48. &lt;/p&gt;&lt;p&gt;
  49. where status is one of
  50. &lt;ul&gt;
  51. &lt;li&gt;vc: version controlled (pre-alpha), build can be a serial revision number, if any (like svn might have).&lt;/li&gt;
  52. &lt;li&gt;a: alpha&lt;/li&gt;
  53. &lt;li&gt;b: beta&lt;/li&gt;
  54. &lt;li&gt;rc: release candidate&lt;/li&gt;
  55. &lt;li&gt;fcs: first customer ship&lt;/li&gt;
  56. &lt;/ul&gt;
  57. &lt;/p&gt;
  58. </xsd:documentation>
  59. </xsd:annotation>
  60. </xsd:element>
  61. <xsd:element maxOccurs="1" minOccurs="0" name="documentation-url" type="xsd:string">
  62. <xsd:annotation>
  63. <xsd:documentation>A URL pointing to a documentation or home page of the module.</xsd:documentation>
  64. </xsd:annotation>
  65. </xsd:element>
  66. <xsd:element maxOccurs="1" minOccurs="0" name="license" type="xsd:string">
  67. <xsd:annotation>
  68. <xsd:documentation>The type of license or a URL containing the license.</xsd:documentation>
  69. </xsd:annotation>
  70. </xsd:element>
  71. <xsd:element maxOccurs="1" minOccurs="0" name="contributor" type="xsd:string">
  72. <xsd:annotation>
  73. <xsd:documentation>The author(s) of the command line module.</xsd:documentation>
  74. </xsd:annotation>
  75. </xsd:element>
  76. <xsd:element maxOccurs="1" minOccurs="0" name="acknowledgements" type="xsd:string">
  77. <xsd:annotation>
  78. <xsd:documentation>Acknowledgements for funding agency, employer, colleague, etc.</xsd:documentation>
  79. </xsd:annotation>
  80. </xsd:element>
  81. <!-- Parameter group elements -->
  82. <xsd:element maxOccurs="unbounded" name="parameters" type="parameters">
  83. <xsd:annotation>
  84. <xsd:documentation>Starts a group of parameters.</xsd:documentation>
  85. </xsd:annotation>
  86. </xsd:element>
  87. </xsd:sequence>
  88. </xsd:complexType>
  89. </xsd:element>
  90. <!--
  91. ===================================================================
  92. PARAMETER GROUP
  93. ===================================================================
  94. -->
  95. <xsd:complexType name="parameters">
  96. <xsd:annotation>
  97. <xsd:documentation>Starts a group of parameters.</xsd:documentation>
  98. </xsd:annotation>
  99. <xsd:sequence>
  100. <!-- Required elements for a parameter group -->
  101. <xsd:element name="label" type="xsd:string">
  102. <xsd:annotation>
  103. <xsd:documentation>A short string used as the label for this group.</xsd:documentation>
  104. </xsd:annotation>
  105. </xsd:element>
  106. <xsd:element name="description" type="xsd:string">
  107. <xsd:annotation>
  108. <xsd:documentation>A description of this parameter group.</xsd:documentation>
  109. </xsd:annotation>
  110. </xsd:element>
  111. <!-- At least one parameter definition is required in the group -->
  112. <xsd:choice maxOccurs="unbounded">
  113. <xsd:element name="boolean" type="paramType"/>
  114. <xsd:element name="integer" type="scalarType"/>
  115. <xsd:element name="float" type="scalarType"/>
  116. <xsd:element name="double" type="scalarType"/>
  117. <xsd:element name="string" type="multipleType"/>
  118. <xsd:element name="directory" type="multipleType"/>
  119. <xsd:element name="integer-vector" type="scalarVectorType"/>
  120. <xsd:element name="float-vector" type="scalarVectorType"/>
  121. <xsd:element name="double-vector" type="scalarVectorType"/>
  122. <xsd:element name="string-vector" type="paramType"/>
  123. <xsd:element name="integer-enumeration" type="enumerationType"/>
  124. <xsd:element name="float-enumeration" type="enumerationType"/>
  125. <xsd:element name="double-enumeration" type="enumerationType"/>
  126. <xsd:element name="string-enumeration" type="enumerationType"/>
  127. <xsd:element name="point" type="pointType"/>
  128. <xsd:element name="region" type="pointType"/>
  129. <xsd:element name="pointfile" type="pointFileType"/>
  130. <xsd:element name="file" type="fileType"/>
  131. <xsd:element name="image" type="imageType"/>
  132. <xsd:element name="geometry" type="geometryType"/>
  133. <!--
  134. <xsd:element name="transform" type="transformType"/>
  135. <xsd:element name="table" type="tableType"/>
  136. <xsd:element name="measurement" type="measurementType"/>
  137. -->
  138. </xsd:choice>
  139. </xsd:sequence>
  140. <!-- Parameter group attributes -->
  141. <xsd:attribute default="false" name="advanced" type="xsd:boolean">
  142. <xsd:annotation>
  143. <xsd:documentation>This value is usually used in GUI generators to decide
  144. if the parameters belonging to this group should be initially hidden to the user or not.</xsd:documentation>
  145. </xsd:annotation>
  146. </xsd:attribute>
  147. </xsd:complexType>
  148. <!--
  149. ===================================================================
  150. PARAMETER
  151. Defines common sub-elements and attributes.
  152. ===================================================================
  153. -->
  154. <xsd:complexType name="paramType">
  155. <xsd:annotation>
  156. <xsd:documentation>This type specifies elements common to all parameter types.</xsd:documentation>
  157. </xsd:annotation>
  158. <xsd:sequence>
  159. <xsd:element name="name">
  160. <xsd:annotation>
  161. <xsd:documentation>The unique name (within this module) of the parameter. This is only used internally.</xsd:documentation>
  162. </xsd:annotation>
  163. <xsd:simpleType>
  164. <xsd:restriction base="xsd:string">
  165. <xsd:pattern value="[_a-zA-Z][_a-zA-Z0-9]*"/>
  166. </xsd:restriction>
  167. </xsd:simpleType>
  168. </xsd:element>
  169. <!-- either 'flag' or 'longflag' (or both) or 'index' are required -->
  170. <xsd:choice>
  171. <xsd:annotation>
  172. <xsd:documentation>You must either specify "flag" or "longflag" (or both) or "index".</xsd:documentation>
  173. </xsd:annotation>
  174. <xsd:sequence>
  175. <xsd:element maxOccurs="1" name="flag" type="flagType"/>
  176. <xsd:element minOccurs="0" maxOccurs="1" name="longflag" type="longFlagType"/>
  177. </xsd:sequence>
  178. <xsd:element name="longflag" type="longFlagType"/>
  179. <xsd:element name="index" type="xsd:nonNegativeInteger">
  180. <xsd:annotation>
  181. <xsd:documentation>An integer starting at 0, that specifies a module argument that has no flags.
  182. The index value 1000 is reserved as a marker for output parameters (see the "channel" element) to indicate that
  183. this parameter is used to return results during the execution of this module and does not need to be set.</xsd:documentation>
  184. </xsd:annotation>
  185. </xsd:element>
  186. </xsd:choice>
  187. <xsd:element name="description" type="xsd:string">
  188. <xsd:annotation>
  189. <xsd:documentation>A brief description of the parameter.</xsd:documentation>
  190. </xsd:annotation>
  191. </xsd:element>
  192. <xsd:element name="label" type="xsd:string">
  193. <xsd:annotation>
  194. <xsd:documentation>A label for parameter.</xsd:documentation>
  195. </xsd:annotation>
  196. </xsd:element>
  197. <xsd:element minOccurs="0" name="default" type="xsd:string">
  198. <xsd:annotation>
  199. <xsd:documentation>A default value for the parameter. The default must be a type that is compatible with the
  200. parameter type. The vector parameters are specified as comma separated values of the atomic parameter type.
  201. </xsd:documentation>
  202. </xsd:annotation>
  203. </xsd:element>
  204. <xsd:element minOccurs="0" name="channel">
  205. <xsd:annotation>
  206. <xsd:documentation>Specifies whether the parameter is an input or output parameter. Output parameters can for
  207. example specify file paths where to write output data (e.g. using the "image" element) or they can represent
  208. "simple return parameters", indicated by providing an "index" of 1000. The current values of suche simple return
  209. parameters are not passed to the module during its execution. Rather, the module itself reports these parameter
  210. values during execution.
  211. </xsd:documentation>
  212. </xsd:annotation>
  213. <xsd:simpleType>
  214. <xsd:restriction base="xsd:string">
  215. <xsd:enumeration value="input"/>
  216. <xsd:enumeration value="output"/>
  217. </xsd:restriction>
  218. </xsd:simpleType>
  219. </xsd:element>
  220. </xsd:sequence>
  221. <!-- parameter attributes -->
  222. <xsd:attribute default="false" name="hidden" type="xsd:boolean"/>
  223. </xsd:complexType>
  224. <!--
  225. ===================================================================
  226. SCALAR VECTOR
  227. Extends paramType for vectors of integer, float, and double.
  228. ===================================================================
  229. -->
  230. <xsd:complexType name="scalarVectorType">
  231. <xsd:annotation>
  232. <xsd:documentation>This type represents vectors of integers, floats, and doubles and can contain
  233. constraints on the domain of valid values for the vector elements.</xsd:documentation>
  234. </xsd:annotation>
  235. <xsd:complexContent>
  236. <xsd:extension base="paramType">
  237. <xsd:sequence>
  238. <xsd:element minOccurs="0" name="constraints" type="constraintsType"/>
  239. </xsd:sequence>
  240. </xsd:extension>
  241. </xsd:complexContent>
  242. </xsd:complexType>
  243. <!--
  244. ===================================================================
  245. MULTIPLE PARAMETER
  246. Extends paramType for parameters which can appear multiple times on the command line.
  247. ===================================================================
  248. -->
  249. <xsd:complexType name="multipleType">
  250. <xsd:annotation>
  251. <xsd:documentation>Parameters of this type are allowed to be passed multiple times with
  252. different values to the module if the attribute "multiple" is set to true. Note that if such
  253. a parameter has no flags, its values must be passed as the last arguments to the module.</xsd:documentation>
  254. </xsd:annotation>
  255. <xsd:complexContent>
  256. <xsd:extension base="paramType">
  257. <xsd:attribute default="false" name="multiple" type="xsd:boolean">
  258. <xsd:annotation>
  259. <xsd:documentation>Allows this parameter to occur multiple times.</xsd:documentation>
  260. </xsd:annotation>
  261. </xsd:attribute>
  262. </xsd:extension>
  263. </xsd:complexContent>
  264. </xsd:complexType>
  265. <!--
  266. ===================================================================
  267. SCALAR PARAMETER
  268. Extends multipleType for scalar parameters with constraints (integer, float, double).
  269. ===================================================================
  270. -->
  271. <xsd:complexType name="scalarType">
  272. <xsd:annotation>
  273. <xsd:documentation>This type represents integers, floats, and doubles and can contain
  274. constraints on the domain of valid values.</xsd:documentation>
  275. </xsd:annotation>
  276. <xsd:complexContent>
  277. <xsd:extension base="multipleType">
  278. <xsd:sequence>
  279. <xsd:element minOccurs="0" name="constraints" type="constraintsType"/>
  280. </xsd:sequence>
  281. </xsd:extension>
  282. </xsd:complexContent>
  283. </xsd:complexType>
  284. <!--
  285. ===================================================================
  286. ENUMERATION PARAMETER
  287. Extends paramType for scalar and string enumeration parameters (integer, float, double, string).
  288. ===================================================================
  289. -->
  290. <xsd:complexType name="enumerationType">
  291. <xsd:annotation>
  292. <xsd:documentation>Restricts the valid parameter value to one and only one element out of
  293. a specified descrete set of values.</xsd:documentation>
  294. </xsd:annotation>
  295. <xsd:complexContent>
  296. <xsd:extension base="paramType">
  297. <xsd:sequence>
  298. <xsd:element maxOccurs="unbounded" name="element" type="xsd:string">
  299. <xsd:annotation>
  300. <xsd:documentation>Defines one possible enumeration value.</xsd:documentation>
  301. </xsd:annotation>
  302. </xsd:element>
  303. </xsd:sequence>
  304. </xsd:extension>
  305. </xsd:complexContent>
  306. </xsd:complexType>
  307. <!--
  308. ===================================================================
  309. Definition of 'coordinateSystem'.
  310. ===================================================================
  311. -->
  312. <xsd:attribute name="coordinateSystem">
  313. <xsd:annotation>
  314. <xsd:documentation>Specifies the coordinate system. If unspecified, the executing module is free to interpret the
  315. coordinates in the most appropriate way. For more information about the different systems, see
  316. &lt;a href="http://www.slicer.org/slicerWiki/index.php/Coordinate_systems"&gt;Coordinate Systems&lt;/a&gt;.
  317. &lt;ul&gt;
  318. &lt;li&gt;&lt;b&gt;ras&lt;/b&gt; (Right, Anterior, Superior) coordinate system.&lt;/li&gt;
  319. &lt;li&gt;&lt;b&gt;ijk&lt;/b&gt; image coordinate system.&lt;/li&gt;
  320. &lt;li&gt;&lt;b&gt;lps&lt;/b&gt; (Left, Posterior, Superior) coordinate system.&lt;/li&gt;
  321. &lt;/ul&gt;
  322. </xsd:documentation>
  323. </xsd:annotation>
  324. <xsd:simpleType>
  325. <xsd:restriction base="xsd:string">
  326. <xsd:enumeration value="ras"/>
  327. <xsd:enumeration value="ijk"/>
  328. <xsd:enumeration value="lps"/>
  329. </xsd:restriction>
  330. </xsd:simpleType>
  331. </xsd:attribute>
  332. <!--
  333. ===================================================================
  334. POINT PARAMETER
  335. Extends multipleType for parameters with point-like values (point and region).
  336. ===================================================================
  337. -->
  338. <xsd:complexType name="pointType">
  339. <xsd:annotation>
  340. <xsd:documentation>A parameter describing a point or region in 3D with a specified coordinate system.</xsd:documentation>
  341. </xsd:annotation>
  342. <xsd:complexContent>
  343. <xsd:extension base="multipleType">
  344. <xsd:attribute ref="coordinateSystem"/>
  345. </xsd:extension>
  346. </xsd:complexContent>
  347. </xsd:complexType>
  348. <!--
  349. ===================================================================
  350. #487: Definition of 'fileExtensions'.
  351. Before issue #487: 'A comma separated list of allowed file extensions'.
  352. Slicer uses extensions with dots, but no leading asterisk.
  353. i.e. ".nii,.nrrd,.mha"
  354. In CTK, the leading dot is optional. Any preceding asterisk is forbidden.
  355. ===================================================================
  356. -->
  357. <xsd:attribute name="fileExtensions">
  358. <xsd:simpleType>
  359. <xsd:restriction base="xsd:string">
  360. <xsd:pattern value="(?:(?:\.[^,\s]|[^,\.\s\*])[^,\s]*)(?:,\s*(?:\.[^,\s]|[^,\.\s\*])[^,\s]*)*"/>
  361. </xsd:restriction>
  362. </xsd:simpleType>
  363. </xsd:attribute>
  364. <!--
  365. ===================================================================
  366. GEOMETRY PARAMETER
  367. Extends multipleType for geometry parameters (geometry).
  368. ===================================================================
  369. -->
  370. <xsd:complexType name="geometryType">
  371. <xsd:complexContent>
  372. <xsd:extension base="multipleType">
  373. <xsd:attribute ref="fileExtensions"/>
  374. <xsd:attribute name="type">
  375. <xsd:annotation>
  376. <xsd:documentation>Optionally specifies the allowed geometry type.</xsd:documentation>
  377. </xsd:annotation>
  378. <xsd:simpleType>
  379. <xsd:restriction base="xsd:string">
  380. <xsd:enumeration value="fiberbundle"/>
  381. <xsd:enumeration value="model"/>
  382. </xsd:restriction>
  383. </xsd:simpleType>
  384. </xsd:attribute>
  385. </xsd:extension>
  386. </xsd:complexContent>
  387. </xsd:complexType>
  388. <!--
  389. ===================================================================
  390. FILE PARAMETER
  391. Extends multipleType for parameters with file extension
  392. information (file, image).
  393. ===================================================================
  394. -->
  395. <xsd:complexType name="fileType">
  396. <xsd:complexContent>
  397. <xsd:extension base="multipleType">
  398. <xsd:attribute ref="fileExtensions"/>
  399. </xsd:extension>
  400. </xsd:complexContent>
  401. </xsd:complexType>
  402. <!--
  403. ===================================================================
  404. POINTFILE PARAMETER
  405. Extends fileType for parameters with coordinate system
  406. information.
  407. ===================================================================
  408. -->
  409. <xsd:complexType name="pointFileType">
  410. <xsd:complexContent>
  411. <xsd:extension base="fileType">
  412. <xsd:attribute ref="coordinateSystem"/>
  413. </xsd:extension>
  414. </xsd:complexContent>
  415. </xsd:complexType>
  416. <!--
  417. ===================================================================
  418. IMAGE PARAMETER
  419. Extends fileType for image parameters (image).
  420. ===================================================================
  421. -->
  422. <xsd:complexType name="imageType">
  423. <xsd:complexContent>
  424. <xsd:extension base="fileType">
  425. <xsd:attribute name="type">
  426. <xsd:annotation>
  427. <xsd:documentation>Optionally specifies the allowed image type.</xsd:documentation>
  428. </xsd:annotation>
  429. <xsd:simpleType>
  430. <xsd:restriction base="xsd:string">
  431. <xsd:enumeration value="scalar"/>
  432. <xsd:enumeration value="label"/>
  433. <xsd:enumeration value="tensor"/>
  434. <xsd:enumeration value="diffusion-weighted"/>
  435. <xsd:enumeration value="vector"/>
  436. <xsd:enumeration value="model"/>
  437. </xsd:restriction>
  438. </xsd:simpleType>
  439. </xsd:attribute>
  440. </xsd:extension>
  441. </xsd:complexContent>
  442. </xsd:complexType>
  443. <!--
  444. ===================================================================
  445. ***** UTILITY TYPES *****
  446. ===================================================================
  447. -->
  448. <xsd:simpleType name="flagValueType">
  449. <xsd:restriction base="xsd:string">
  450. <xsd:pattern value="-?[a-zA-Z]"/>
  451. </xsd:restriction>
  452. </xsd:simpleType>
  453. <xsd:complexType name="flagType">
  454. <xsd:annotation>
  455. <xsd:documentation>A single character flag (e.g. "s", "W", etc.). Not required if "longFlag" is specified.</xsd:documentation>
  456. </xsd:annotation>
  457. <xsd:simpleContent>
  458. <xsd:extension base="flagValueType">
  459. <xsd:attribute name="alias" type="xsd:string">
  460. <xsd:annotation>
  461. <xsd:documentation>A comma separated list of aliases. Can be used to provide different flags for the same parameter.
  462. </xsd:documentation>
  463. </xsd:annotation>
  464. </xsd:attribute>
  465. <xsd:attribute name="deprecatedalias" type="xsd:string">
  466. <xsd:annotation>
  467. <xsd:documentation>A comma separated list of deprecated aliases. When invoking a module with one of these aliases,
  468. the callee will be notified about the new preferred flag name.</xsd:documentation>
  469. </xsd:annotation>
  470. </xsd:attribute>
  471. </xsd:extension>
  472. </xsd:simpleContent>
  473. </xsd:complexType>
  474. <xsd:simpleType name="longFlagValueType">
  475. <xsd:restriction base="xsd:string">
  476. <xsd:pattern value="-?-?[_a-zA-Z][_a-zA-Z0-9]*"/>
  477. </xsd:restriction>
  478. </xsd:simpleType>
  479. <xsd:complexType name="longFlagType">
  480. <xsd:annotation>
  481. <xsd:documentation>A multi-character flag (e.g. "spacing", "Watcher", etc.). Not required if "flag" is specified.</xsd:documentation>
  482. </xsd:annotation>
  483. <xsd:simpleContent>
  484. <xsd:extension base="longFlagValueType">
  485. <xsd:attribute name="alias" type="xsd:string">
  486. <xsd:annotation>
  487. <xsd:documentation>A comma separated list of aliases. Can be used to provide different long flags for the same parameter.
  488. </xsd:documentation>
  489. </xsd:annotation>
  490. </xsd:attribute>
  491. <xsd:attribute name="deprecatedalias" type="xsd:string">
  492. <xsd:annotation>
  493. <xsd:documentation>A comma separated list of deprecated aliases. When invoking a module with one of these aliases,
  494. the callee will be notified about the new preferred long flag name.
  495. </xsd:documentation>
  496. </xsd:annotation>
  497. </xsd:attribute>
  498. </xsd:extension>
  499. </xsd:simpleContent>
  500. </xsd:complexType>
  501. <!-- constraints for scalar parameters (integer, double, float) -->
  502. <xsd:complexType name="constraintsType">
  503. <xsd:annotation>
  504. <xsd:documentation>Constraints on the allowed parameter value for scalar types and their vector variants.</xsd:documentation>
  505. </xsd:annotation>
  506. <xsd:all>
  507. <xsd:element minOccurs="0" name="minimum" type="xsd:double">
  508. <xsd:annotation>
  509. <xsd:documentation>The minimum allowed value for the parameter. If not specified, the minimum is the smallest
  510. possible value for the parameter type.</xsd:documentation>
  511. </xsd:annotation>
  512. </xsd:element>
  513. <xsd:element minOccurs="0" name="maximum" type="xsd:double">
  514. <xsd:annotation>
  515. <xsd:documentation>The maximum allowed value for the parameter. If not specified, the maximum is the largest
  516. possible value for the parameter type.</xsd:documentation>
  517. </xsd:annotation>
  518. </xsd:element>
  519. <xsd:element name="step" type="xsd:double">
  520. <xsd:annotation>
  521. <xsd:documentation>The increment for the parameter.</xsd:documentation>
  522. </xsd:annotation>
  523. </xsd:element>
  524. </xsd:all>
  525. </xsd:complexType>
  526. </xsd:schema>