ctkModuleDescription.xsd 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. <?xml version="1.0"?>
  2. <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  3. <xsd:element name="executable">
  4. <xsd:complexType>
  5. <xsd:sequence>
  6. <xsd:element name="category" type="xsd:string" minOccurs="0"/>
  7. <xsd:element name="index" type="xsd:string" minOccurs="0"/>
  8. <xsd:element name="title" type="xsd:string" maxOccurs="1"/>
  9. <xsd:element name="description" type="xsd:string" maxOccurs="1"/>
  10. <xsd:element name="version" type="xsd:string" minOccurs="0"/>
  11. <xsd:element name="documentation-url" type="xsd:string" minOccurs="0"/>
  12. <xsd:element name="license" type="xsd:string" minOccurs="0"/>
  13. <xsd:element name="contributor" type="xsd:string" minOccurs="0"/>
  14. <xsd:element name="acknowledgements" type="xsd:string" minOccurs="0"/>
  15. <xsd:element name="parameters" type="parameters" maxOccurs="unbounded"/>
  16. </xsd:sequence>
  17. </xsd:complexType>
  18. </xsd:element>
  19. <xsd:complexType name="parameters">
  20. <xsd:choice minOccurs="0" maxOccurs="unbounded">
  21. <xsd:element name="label" type="xsd:string"/>
  22. <xsd:element name="description" type="xsd:string"/>
  23. <xsd:element name="integer" type="scalarType"/>
  24. <xsd:element name="integer-vector" type="scalarType"/>
  25. <xsd:element name="boolean" type="scalarType"/>
  26. <xsd:element name="boolean-vector" type="scalarType"/>
  27. <xsd:element name="float" type="scalarType"/>
  28. <xsd:element name="float-vector" type="scalarType"/>
  29. <xsd:element name="double" type="scalarType"/>
  30. <xsd:element name="double-vector" type="scalarType"/>
  31. <xsd:element name="string" type="paramType"/>
  32. <xsd:element name="string-vector" type="paramType"/>
  33. <xsd:element name="point" type="pointType"/>
  34. <xsd:element name="point-vector" type="pointType"/>
  35. <xsd:element name="region" type="pointType"/>
  36. <xsd:element name="region-vector" type="pointType"/>
  37. <xsd:element name="string-enumeration" type="enumerationType"/>
  38. <xsd:element name="integer-enumeration" type="enumerationType"/>
  39. <xsd:element name="float-enumeration" type="enumerationType"/>
  40. <xsd:element name="double-enumeration" type="enumerationType"/>
  41. <xsd:element name="file" type="indexedParamType"/>
  42. <xsd:element name="directory" type="paramType"/>
  43. <xsd:element name="transform" type="typedIndexParamType"/>
  44. <xsd:element name="image" type="typedIndexParamType"/>
  45. <xsd:element name="geometry" type="typedIndexParamType"/>
  46. <xsd:element name="table" type="typedIndexParamType"/>
  47. <xsd:element name="measurement" type="typedIndexParamType"/>
  48. </xsd:choice>
  49. </xsd:complexType>
  50. <xsd:complexType name="paramType">
  51. <xsd:choice minOccurs="0" maxOccurs="unbounded">
  52. <xsd:element name="name" type="xsd:string"/>
  53. <xsd:element name="flag" type="flagType" />
  54. <xsd:element name="longflag" type="flagType"/>
  55. <xsd:element name="description" type="xsd:string"/>
  56. <xsd:element name="label" type="xsd:string"/>
  57. <xsd:element name="default" type="xsd:string"/>
  58. </xsd:choice>
  59. <xsd:attribute name="multiple" type="xsd:boolean"/>
  60. <xsd:attribute name="hidden" type="xsd:boolean"/>
  61. </xsd:complexType>
  62. <xsd:complexType name="scalarType" >
  63. <xsd:complexContent>
  64. <xsd:extension base="paramType">
  65. <xsd:sequence>
  66. <xsd:element name="constraints" type="constraintsType" minOccurs="0" />
  67. </xsd:sequence>
  68. </xsd:extension>
  69. </xsd:complexContent>
  70. </xsd:complexType>
  71. <xsd:complexType name="pointType" >
  72. <xsd:complexContent>
  73. <xsd:extension base="paramType">
  74. <xsd:attribute name="coordinateSystem">
  75. <xsd:simpleType>
  76. <xsd:restriction base="xsd:string">
  77. <xsd:enumeration value="RAS"/>
  78. <xsd:enumeration value="IJK"/>
  79. </xsd:restriction>
  80. </xsd:simpleType>
  81. </xsd:attribute>
  82. </xsd:extension>
  83. </xsd:complexContent>
  84. </xsd:complexType>
  85. <xsd:complexType name="enumerationType" >
  86. <xsd:complexContent>
  87. <xsd:extension base="paramType">
  88. <xsd:sequence>
  89. <xsd:element name="element" type="xsd:string"/>
  90. </xsd:sequence>
  91. </xsd:extension>
  92. </xsd:complexContent>
  93. </xsd:complexType>
  94. <xsd:complexType name="indexedParamType" >
  95. <xsd:all>
  96. <xsd:element name="name" type="xsd:string"/>
  97. <xsd:element name="label" type="xsd:string"/>
  98. <xsd:element name="description" type="xsd:string"/>
  99. <xsd:element name="channel" maxOccurs="1">
  100. <xsd:simpleType>
  101. <xsd:restriction base="xsd:string">
  102. <xsd:enumeration value="input"/>
  103. <xsd:enumeration value="output"/>
  104. </xsd:restriction>
  105. </xsd:simpleType>
  106. </xsd:element>
  107. <xsd:element name="index" type="xsd:nonNegativeInteger"/>
  108. </xsd:all>
  109. <xsd:attribute name="fileExtensions" type="xsd:string"/>
  110. </xsd:complexType>
  111. <xsd:complexType name="typedIndexParamType" >
  112. <xsd:complexContent>
  113. <xsd:extension base="indexedParamType">
  114. <xsd:attribute name="reference" type="xsd:string"/>
  115. <xsd:attribute name="type" type="xsd:string"/>
  116. <xsd:attribute name="hidden" type="xsd:boolean"/>
  117. </xsd:extension>
  118. </xsd:complexContent>
  119. </xsd:complexType>
  120. <xsd:complexType name="flagType">
  121. <xsd:simpleContent>
  122. <xsd:extension base="xsd:string">
  123. <xsd:attribute name="alias" type="xsd:string"/>
  124. <xsd:attribute name="deprecatedalias" type="xsd:string"/>
  125. </xsd:extension>
  126. </xsd:simpleContent>
  127. </xsd:complexType>
  128. <xsd:complexType name="constraintsType">
  129. <xsd:sequence>
  130. <xsd:element name="minimum" type="xsd:double"/>
  131. <xsd:element name="maximum" type="xsd:double"/>
  132. <xsd:element name="step" type="xsd:double"/>
  133. </xsd:sequence>
  134. </xsd:complexType>
  135. </xsd:schema>