slicerModuleDescription.xsd 5.9 KB

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