ctkCmdLineModule.xsd 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570
  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="file" type="fileType"/>
  130. <xsd:element name="image" type="imageType"/>
  131. <xsd:element name="geometry" type="geometryType"/>
  132. <!--
  133. <xsd:element name="transform" type="transformType"/>
  134. <xsd:element name="table" type="tableType"/>
  135. <xsd:element name="measurement" type="measurementType"/>
  136. -->
  137. </xsd:choice>
  138. </xsd:sequence>
  139. <!-- Parameter group attributes -->
  140. <xsd:attribute default="false" name="advanced" type="xsd:boolean">
  141. <xsd:annotation>
  142. <xsd:documentation>This value is usually used in GUI generators to decide
  143. if the parameters belonging to this group should be initially hidden to the user or not.</xsd:documentation>
  144. </xsd:annotation>
  145. </xsd:attribute>
  146. </xsd:complexType>
  147. <!--
  148. ===================================================================
  149. PARAMETER
  150. Defines common sub-elements and attributes.
  151. ===================================================================
  152. -->
  153. <xsd:complexType name="paramType">
  154. <xsd:annotation>
  155. <xsd:documentation>This type specifies elements common to all parameter types.</xsd:documentation>
  156. </xsd:annotation>
  157. <xsd:sequence>
  158. <xsd:element name="name">
  159. <xsd:annotation>
  160. <xsd:documentation>The unique name (within this module) of the parameter. This is only used internally.</xsd:documentation>
  161. </xsd:annotation>
  162. <xsd:simpleType>
  163. <xsd:restriction base="xsd:string">
  164. <xsd:pattern value="[_a-zA-Z][_a-zA-Z0-9]*"/>
  165. </xsd:restriction>
  166. </xsd:simpleType>
  167. </xsd:element>
  168. <!-- either 'flag' or 'longflag' (or both) or 'index' are required -->
  169. <xsd:choice>
  170. <xsd:annotation>
  171. <xsd:documentation>You must either specify "flag" or "longflag" (or both) or "index".</xsd:documentation>
  172. </xsd:annotation>
  173. <xsd:sequence>
  174. <xsd:element maxOccurs="1" name="flag" type="flagType"/>
  175. <xsd:element minOccurs="0" maxOccurs="1" name="longflag" type="longFlagType"/>
  176. </xsd:sequence>
  177. <xsd:element name="longflag" type="longFlagType"/>
  178. <xsd:element name="index" type="xsd:nonNegativeInteger">
  179. <xsd:annotation>
  180. <xsd:documentation>An integer starting at 0, that specifies a module argument that has no flags.
  181. The index value 1000 is reserved as a marker for output parameters (see the "channel" element) to indicate that
  182. this parameter is used to return results during the execution of this module and does not need to be set.</xsd:documentation>
  183. </xsd:annotation>
  184. </xsd:element>
  185. </xsd:choice>
  186. <xsd:element name="description" type="xsd:string">
  187. <xsd:annotation>
  188. <xsd:documentation>A brief description of the parameter.</xsd:documentation>
  189. </xsd:annotation>
  190. </xsd:element>
  191. <xsd:element name="label" type="xsd:string">
  192. <xsd:annotation>
  193. <xsd:documentation>A label for parameter.</xsd:documentation>
  194. </xsd:annotation>
  195. </xsd:element>
  196. <xsd:element minOccurs="0" name="default" type="xsd:string">
  197. <xsd:annotation>
  198. <xsd:documentation>A default value for the parameter. The default must be a type that is compatible with the
  199. parameter type. The vector parameters are specified as comma separated values of the atomic parameter type.
  200. </xsd:documentation>
  201. </xsd:annotation>
  202. </xsd:element>
  203. <xsd:element minOccurs="0" name="channel">
  204. <xsd:annotation>
  205. <xsd:documentation>Specifies whether the parameter is an input or output parameter. Output parameters can for
  206. example specify file paths where to write output data (e.g. using the "image" element) or they can represent
  207. "simple return parameters", indicated by providing an "index" of 1000. The current values of suche simple return
  208. parameters are not passed to the module during its execution. Rather, the module itself reports these parameter
  209. values during execution.
  210. </xsd:documentation>
  211. </xsd:annotation>
  212. <xsd:simpleType>
  213. <xsd:restriction base="xsd:string">
  214. <xsd:enumeration value="input"/>
  215. <xsd:enumeration value="output"/>
  216. </xsd:restriction>
  217. </xsd:simpleType>
  218. </xsd:element>
  219. </xsd:sequence>
  220. <!-- parameter attributes -->
  221. <xsd:attribute default="false" name="hidden" type="xsd:boolean"/>
  222. </xsd:complexType>
  223. <!--
  224. ===================================================================
  225. SCALAR VECTOR
  226. Extends paramType for vectors of integer, float, and double.
  227. ===================================================================
  228. -->
  229. <xsd:complexType name="scalarVectorType">
  230. <xsd:annotation>
  231. <xsd:documentation>This type represents vectors of integers, floats, and doubles and can contain
  232. constraints on the domain of valid values for the vector elements.</xsd:documentation>
  233. </xsd:annotation>
  234. <xsd:complexContent>
  235. <xsd:extension base="paramType">
  236. <xsd:sequence>
  237. <xsd:element minOccurs="0" name="constraints" type="constraintsType"/>
  238. </xsd:sequence>
  239. </xsd:extension>
  240. </xsd:complexContent>
  241. </xsd:complexType>
  242. <!--
  243. ===================================================================
  244. MULTIPLE PARAMETER
  245. Extends paramType for parameters which can appear multiple times on the command line.
  246. ===================================================================
  247. -->
  248. <xsd:complexType name="multipleType">
  249. <xsd:annotation>
  250. <xsd:documentation>Parameters of this type are allowed to be passed multiple times with
  251. different values to the module if the attribute "multiple" is set to true. Note that if such
  252. a parameter has no flags, its values must be passed as the last arguments to the module.</xsd:documentation>
  253. </xsd:annotation>
  254. <xsd:complexContent>
  255. <xsd:extension base="paramType">
  256. <xsd:attribute default="false" name="multiple" type="xsd:boolean">
  257. <xsd:annotation>
  258. <xsd:documentation>Allows this parameter to occur multiple times.</xsd:documentation>
  259. </xsd:annotation>
  260. </xsd:attribute>
  261. </xsd:extension>
  262. </xsd:complexContent>
  263. </xsd:complexType>
  264. <!--
  265. ===================================================================
  266. SCALAR PARAMETER
  267. Extends multipleType for scalar parameters with constraints (integer, float, double).
  268. ===================================================================
  269. -->
  270. <xsd:complexType name="scalarType">
  271. <xsd:annotation>
  272. <xsd:documentation>This type represents integers, floats, and doubles and can contain
  273. constraints on the domain of valid values.</xsd:documentation>
  274. </xsd:annotation>
  275. <xsd:complexContent>
  276. <xsd:extension base="multipleType">
  277. <xsd:sequence>
  278. <xsd:element minOccurs="0" name="constraints" type="constraintsType"/>
  279. </xsd:sequence>
  280. </xsd:extension>
  281. </xsd:complexContent>
  282. </xsd:complexType>
  283. <!--
  284. ===================================================================
  285. ENUMERATION PARAMETER
  286. Extends paramType for scalar and string enumeration parameters (integer, float, double, string).
  287. ===================================================================
  288. -->
  289. <xsd:complexType name="enumerationType">
  290. <xsd:annotation>
  291. <xsd:documentation>Restricts the valid parameter value to one and only one element out of
  292. a specified descrete set of values.</xsd:documentation>
  293. </xsd:annotation>
  294. <xsd:complexContent>
  295. <xsd:extension base="paramType">
  296. <xsd:sequence>
  297. <xsd:element maxOccurs="unbounded" name="element" type="xsd:string">
  298. <xsd:annotation>
  299. <xsd:documentation>Defines one possible enumeration value.</xsd:documentation>
  300. </xsd:annotation>
  301. </xsd:element>
  302. </xsd:sequence>
  303. </xsd:extension>
  304. </xsd:complexContent>
  305. </xsd:complexType>
  306. <!--
  307. ===================================================================
  308. POINT PARAMETER
  309. Extends multipleType for parameters with point-like values (point and region).
  310. ===================================================================
  311. -->
  312. <xsd:complexType name="pointType">
  313. <xsd:annotation>
  314. <xsd:documentation>A parameter describing a point or region in 3D with a specified coordinate system.</xsd:documentation>
  315. </xsd:annotation>
  316. <xsd:complexContent>
  317. <xsd:extension base="multipleType">
  318. <xsd:attribute name="coordinateSystem">
  319. <xsd:annotation>
  320. <xsd:documentation>Specifies the coordinate system. If unspecified, the executing module is free to interpret the
  321. coordinates in the most appropriate way. For more information about the different systems, see
  322. &lt;a href="http://www.slicer.org/slicerWiki/index.php/Coordinate_systems"&gt;Coordinate Systems&lt;/a&gt;.
  323. &lt;ul&gt;
  324. &lt;li&gt;&lt;b&gt;ras&lt;/b&gt; (Right, Anterior, Superior) coordinate system.&lt;/li&gt;
  325. &lt;li&gt;&lt;b&gt;ijk&lt;/b&gt; image coordinate system.&lt;/li&gt;
  326. &lt;li&gt;&lt;b&gt;lps&lt;/b&gt; (Left, Posterior, Superior) coordinate system.&lt;/li&gt;
  327. &lt;/ul&gt;
  328. </xsd:documentation>
  329. </xsd:annotation>
  330. <xsd:simpleType>
  331. <xsd:restriction base="xsd:string">
  332. <xsd:enumeration value="ras"/>
  333. <xsd:enumeration value="ijk"/>
  334. <xsd:enumeration value="lps"/>
  335. </xsd:restriction>
  336. </xsd:simpleType>
  337. </xsd:attribute>
  338. </xsd:extension>
  339. </xsd:complexContent>
  340. </xsd:complexType>
  341. <!--
  342. ===================================================================
  343. #487: Definition of 'fileExtensions'.
  344. Before issue #487: 'A comma separated list of allowed file extensions'.
  345. Slicer uses extensions with dots, but no leading asterisk.
  346. i.e. ".nii,.nrrd,.mha"
  347. In CTK, the leading dot is optional. Any preceding asterisk is forbidden.
  348. ===================================================================
  349. -->
  350. <xsd:attribute name="fileExtensions">
  351. <xsd:simpleType>
  352. <xsd:restriction base="xsd:string">
  353. <xsd:pattern value="(?:(?:\.[^,\s]|[^,\.\s\*])[^,\s]*)(?:,\s*(?:\.[^,\s]|[^,\.\s\*])[^,\s]*)*"/>
  354. </xsd:restriction>
  355. </xsd:simpleType>
  356. </xsd:attribute>
  357. <!--
  358. ===================================================================
  359. GEOMETRY PARAMETER
  360. Extends multipleType for geometry parameters (geometry).
  361. ===================================================================
  362. -->
  363. <xsd:complexType name="geometryType">
  364. <xsd:complexContent>
  365. <xsd:extension base="multipleType">
  366. <xsd:attribute ref="fileExtensions"/>
  367. <xsd:attribute name="type">
  368. <xsd:annotation>
  369. <xsd:documentation>Optionally specifies the allowed geometry type.</xsd:documentation>
  370. </xsd:annotation>
  371. <xsd:simpleType>
  372. <xsd:restriction base="xsd:string">
  373. <xsd:enumeration value="fiberbundle"/>
  374. <xsd:enumeration value="model"/>
  375. </xsd:restriction>
  376. </xsd:simpleType>
  377. </xsd:attribute>
  378. </xsd:extension>
  379. </xsd:complexContent>
  380. </xsd:complexType>
  381. <!--
  382. ===================================================================
  383. FILE PARAMETER
  384. Extends multipleType for parameters with file extension
  385. information (file, image).
  386. ===================================================================
  387. -->
  388. <xsd:complexType name="fileType">
  389. <xsd:complexContent>
  390. <xsd:extension base="multipleType">
  391. <xsd:attribute ref="fileExtensions"/>
  392. </xsd:extension>
  393. </xsd:complexContent>
  394. </xsd:complexType>
  395. <!--
  396. ===================================================================
  397. IMAGE PARAMETER
  398. Extends fileType for image parameters (image).
  399. ===================================================================
  400. -->
  401. <xsd:complexType name="imageType">
  402. <xsd:complexContent>
  403. <xsd:extension base="fileType">
  404. <xsd:attribute name="type">
  405. <xsd:annotation>
  406. <xsd:documentation>Optionally specifies the allowed image type.</xsd:documentation>
  407. </xsd:annotation>
  408. <xsd:simpleType>
  409. <xsd:restriction base="xsd:string">
  410. <xsd:enumeration value="scalar"/>
  411. <xsd:enumeration value="label"/>
  412. <xsd:enumeration value="tensor"/>
  413. <xsd:enumeration value="diffusion-weighted"/>
  414. <xsd:enumeration value="vector"/>
  415. <xsd:enumeration value="model"/>
  416. </xsd:restriction>
  417. </xsd:simpleType>
  418. </xsd:attribute>
  419. </xsd:extension>
  420. </xsd:complexContent>
  421. </xsd:complexType>
  422. <!--
  423. ===================================================================
  424. ***** UTILITY TYPES *****
  425. ===================================================================
  426. -->
  427. <xsd:simpleType name="flagValueType">
  428. <xsd:restriction base="xsd:string">
  429. <xsd:pattern value="-?[a-zA-Z]"/>
  430. </xsd:restriction>
  431. </xsd:simpleType>
  432. <xsd:complexType name="flagType">
  433. <xsd:annotation>
  434. <xsd:documentation>A single character flag (e.g. "s", "W", etc.). Not required if "longFlag" is specified.</xsd:documentation>
  435. </xsd:annotation>
  436. <xsd:simpleContent>
  437. <xsd:extension base="flagValueType">
  438. <xsd:attribute name="alias" type="xsd:string">
  439. <xsd:annotation>
  440. <xsd:documentation>A comma separated list of aliases. Can be used to provide different flags for the same parameter.
  441. </xsd:documentation>
  442. </xsd:annotation>
  443. </xsd:attribute>
  444. <xsd:attribute name="deprecatedalias" type="xsd:string">
  445. <xsd:annotation>
  446. <xsd:documentation>A comma separated list of deprecated aliases. When invoking a module with one of these aliases,
  447. the callee will be notified about the new preferred flag name.</xsd:documentation>
  448. </xsd:annotation>
  449. </xsd:attribute>
  450. </xsd:extension>
  451. </xsd:simpleContent>
  452. </xsd:complexType>
  453. <xsd:simpleType name="longFlagValueType">
  454. <xsd:restriction base="xsd:string">
  455. <xsd:pattern value="-?-?[_a-zA-Z][_a-zA-Z0-9]*"/>
  456. </xsd:restriction>
  457. </xsd:simpleType>
  458. <xsd:complexType name="longFlagType">
  459. <xsd:annotation>
  460. <xsd:documentation>A multi-character flag (e.g. "spacing", "Watcher", etc.). Not required if "flag" is specified.</xsd:documentation>
  461. </xsd:annotation>
  462. <xsd:simpleContent>
  463. <xsd:extension base="longFlagValueType">
  464. <xsd:attribute name="alias" type="xsd:string">
  465. <xsd:annotation>
  466. <xsd:documentation>A comma separated list of aliases. Can be used to provide different long flags for the same parameter.
  467. </xsd:documentation>
  468. </xsd:annotation>
  469. </xsd:attribute>
  470. <xsd:attribute name="deprecatedalias" type="xsd:string">
  471. <xsd:annotation>
  472. <xsd:documentation>A comma separated list of deprecated aliases. When invoking a module with one of these aliases,
  473. the callee will be notified about the new preferred long flag name.
  474. </xsd:documentation>
  475. </xsd:annotation>
  476. </xsd:attribute>
  477. </xsd:extension>
  478. </xsd:simpleContent>
  479. </xsd:complexType>
  480. <!-- constraints for scalar parameters (integer, double, float) -->
  481. <xsd:complexType name="constraintsType">
  482. <xsd:annotation>
  483. <xsd:documentation>Constraints on the allowed parameter value for scalar types and their vector variants.</xsd:documentation>
  484. </xsd:annotation>
  485. <xsd:all>
  486. <xsd:element minOccurs="0" name="minimum" type="xsd:double">
  487. <xsd:annotation>
  488. <xsd:documentation>The minimum allowed value for the parameter. If not specified, the minimum is the smallest
  489. possible value for the parameter type.</xsd:documentation>
  490. </xsd:annotation>
  491. </xsd:element>
  492. <xsd:element minOccurs="0" name="maximum" type="xsd:double">
  493. <xsd:annotation>
  494. <xsd:documentation>The maximum allowed value for the parameter. If not specified, the maximum is the largest
  495. possible value for the parameter type.</xsd:documentation>
  496. </xsd:annotation>
  497. </xsd:element>
  498. <xsd:element name="step" type="xsd:double">
  499. <xsd:annotation>
  500. <xsd:documentation>The increment for the parameter.</xsd:documentation>
  501. </xsd:annotation>
  502. </xsd:element>
  503. </xsd:all>
  504. </xsd:complexType>
  505. </xsd:schema>