| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 | <?xml version="1.0"?><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">    <xsd:element name="executable">        <xsd:complexType>            <xsd:sequence>                <xsd:element name="category" type="xsd:string"/>                <xsd:element name="title" type="xsd:string"/>                <xsd:element name="description" type="xsd:string"/>                <xsd:element name="version" type="xsd:string"/>                <xsd:element name="documentation-url" type="xsd:string"/>                <xsd:element name="license" type="xsd:string"/>                <xsd:element name="contributor" type="xsd:string"/>                <xsd:element name="parameters" type="parameters" maxOccurs="unbounded"/>            </xsd:sequence>        </xsd:complexType>    </xsd:element>    <xsd:complexType name="parameters">      <xsd:choice minOccurs="0" maxOccurs="unbounded">        <xsd:element name="label" type="xsd:string"/>        <xsd:element name="description" type="xsd:string"/>        <xsd:element name="integer" type="scalarType"/>        <xsd:element name="integer-vector" type="scalarType"/>        <xsd:element name="boolean" type="scalarType"/>        <xsd:element name="boolean-vector" type="scalarType"/>        <xsd:element name="float" type="scalarType"/>        <xsd:element name="float-vector" type="scalarType"/>        <xsd:element name="double" type="scalarType"/>        <xsd:element name="double-vector" type="scalarType"/>        <xsd:element name="string" type="paramType"/>        <xsd:element name="string-vector" type="paramType"/>        <xsd:element name="point" type="pointType"/>        <xsd:element name="point-vector" type="pointType"/>        <xsd:element name="region" type="pointType"/>        <xsd:element name="region-vector" type="pointType"/>        <xsd:element name="string-enumeration" type="enumerationType"/>        <xsd:element name="integer-enumeration" type="enumerationType"/>        <xsd:element name="float-enumeration" type="enumerationType"/>        <xsd:element name="double-enumeration" type="enumerationType"/>        <xsd:element name="file" type="indexedParamType"/>        <xsd:element name="directory" type="paramType"/>        <xsd:element name="transform" type="typedIndexParamType"/>        <xsd:element name="image" type="typedIndexParamType"/>        <xsd:element name="geometry" type="typedIndexParamType"/>        <xsd:element name="table" type="typedIndexParamType"/>        <xsd:element name="measurement" type="typedIndexParamType"/>      </xsd:choice>    </xsd:complexType>    <xsd:complexType name="paramType">          <xsd:choice minOccurs="0" maxOccurs="unbounded">        <xsd:element name="name" type="xsd:string"/>        <xsd:element name="flag" type="flagType" />        <xsd:element name="longflag" type="flagType"/>        <xsd:element name="description" type="xsd:string"/>        <xsd:element name="label" type="xsd:string"/>        <xsd:element name="default" type="xsd:string"/>      </xsd:choice>      <xsd:attribute name="multiple" type="xsd:boolean"/>      <xsd:attribute name="hidden" type="xsd:boolean"/>    </xsd:complexType>        <xsd:complexType name="scalarType" >      <xsd:complexContent>        <xsd:extension base="paramType">          <xsd:sequence>            <xsd:element name="constraints" type="constraintsType"  minOccurs="0" />          </xsd:sequence>        </xsd:extension>      </xsd:complexContent>    </xsd:complexType>    <xsd:complexType name="pointType" >      <xsd:complexContent>        <xsd:extension base="paramType">          <xsd:attribute name="coordinateSystem">            <xsd:simpleType>              <xsd:restriction base="xsd:string">                <xsd:enumeration value="RAS"/>                <xsd:enumeration value="IJK"/>              </xsd:restriction>            </xsd:simpleType>          </xsd:attribute>        </xsd:extension>      </xsd:complexContent>    </xsd:complexType>    <xsd:complexType name="enumerationType" >      <xsd:complexContent>        <xsd:extension base="paramType">          <xsd:sequence>            <xsd:element name="element" type="xsd:string"/>          </xsd:sequence>        </xsd:extension>      </xsd:complexContent>    </xsd:complexType>    <xsd:complexType name="indexedParamType" >      <xsd:all>        <xsd:element name="name" type="xsd:string"/>        <xsd:element name="label" type="xsd:string"/>        <xsd:element name="description" type="xsd:string"/>        <xsd:element name="channel" maxOccurs="1">          <xsd:simpleType>            <xsd:restriction base="xsd:string">              <xsd:enumeration value="input"/>              <xsd:enumeration value="output"/>            </xsd:restriction>          </xsd:simpleType>        </xsd:element>        <xsd:element name="index" type="xsd:nonNegativeInteger"/>      </xsd:all>      <xsd:attribute name="fileExtensions" type="xsd:string"/>    </xsd:complexType>    <xsd:complexType name="typedIndexParamType" >      <xsd:complexContent>        <xsd:extension base="indexedParamType">          <xsd:attribute name="reference" type="xsd:string"/>          <xsd:attribute name="type" type="xsd:string"/>          <xsd:attribute name="hidden" type="xsd:boolean"/>        </xsd:extension>      </xsd:complexContent>    </xsd:complexType>        <xsd:complexType name="flagType">      <xsd:simpleContent>        <xsd:extension base="xsd:string">          <xsd:attribute name="alias" type="xsd:string"/>          <xsd:attribute name="deprecatedalias" type="xsd:string"/>        </xsd:extension>      </xsd:simpleContent>    </xsd:complexType>        <xsd:complexType name="constraintsType">      <xsd:sequence>        <xsd:element name="minimum" type="xsd:double"/>        <xsd:element name="maximum" type="xsd:double"/>        <xsd:element name="step" type="xsd:double"/>      </xsd:sequence>    </xsd:complexType></xsd:schema>
 |