+ <xs:element name="options" type="tns:option" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="parameters" type="tns:parameter" nillable="true" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="prmSeparator" type="xs:string" minOccurs="0"/>
+ <xs:element name="runnerClassName" type="xs:string"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="option">
+ <xs:sequence>
+ <xs:element name="description" type="xs:string"/>
+ <xs:element name="optionNames" type="xs:string" maxOccurs="unbounded"/>
+ <xs:element name="name" type="xs:string"/>
+ <xs:element name="furtherDetails" type="xs:anyURI" minOccurs="0"/>
+ <xs:element name="defaultValue" type="xs:string" minOccurs="0"/>
+ </xs:sequence>
+ <xs:attribute name="isRequired" type="xs:boolean" use="required"/>
+ </xs:complexType>
+
+ <xs:complexType name="parameter">
+ <xs:complexContent>
+ <xs:extension base="tns:option">
+ <xs:sequence>
+ <xs:element name="possibleValues" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
+ <xs:element name="validValue" type="tns:valueConstrain" minOccurs="0"/>
+ </xs:sequence>
+ </xs:extension>
+ </xs:complexContent>
+ </xs:complexType>
+
+ <xs:complexType name="valueConstrain">
+ <xs:sequence>
+ <xs:element name="type" type="tns:type"/>
+ <xs:element name="max" type="xs:string" minOccurs="0"/>
+ <xs:element name="min" type="xs:string" minOccurs="0"/>