<?xml version="1.0" encoding="UTF-8"?>

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<!-- Parameter -->
<xsd:element name="Parameter" type="ParameterType"/>
  <xsd:simpleType name="FloatEncodingType">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="HumanReadable"/>
      <xsd:enumeration value="HexBinary"/>
    </xsd:restriction>
  </xsd:simpleType>       
  <!-- Parameter Type-->
  <xsd:complexType  abstract="true" name="ParameterType">
	<xsd:sequence>
      <xsd:element name="FloatEncoding" minOccurs="0" type="FloatEncodingType"/>
      
	  <xsd:element name="Name" type="xsd:string" minOccurs="0"/>
	  <xsd:element name="NbVariable" type="xsd:positiveInteger"/>	
	  <xsd:element name="NbCluster" type="xsd:positiveInteger"/>
	  <xsd:element name="Format" type="FormatType"/>
	  <!-- if the model is composite, additional information (pbDimension for each data 
		   component) will be provided to retrieve parameter values -->
	  <xsd:element name="ParameterFilename" type="xsd:anyURI"/>
	  <xsd:element name="Model" type="ModelType"/>
	</xsd:sequence>
  </xsd:complexType>
	
	<!-- Parameter Type : Qualitative -->
	<xsd:complexType name="Qualitative">
		<xsd:complexContent>
			<xsd:extension base="ParameterType"/>
		</xsd:complexContent>
	</xsd:complexType>				
	
	<!-- Parameter Type : Quantitative -->		
	<xsd:complexType name="Quantitative">
		<xsd:complexContent>
			<xsd:extension base="ParameterType"/>
		</xsd:complexContent>
	</xsd:complexType>
	
	<!-- Parameter Type : Composite -->		
	<xsd:complexType name="Composite">
		<xsd:complexContent>
			<xsd:extension base="ParameterType"/>
		</xsd:complexContent>
	</xsd:complexType>
	
<!-- End Parameter Type-->
	<!-- Format Type -->
	<xsd:simpleType name="FormatType">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="txt"/>
			<xsd:enumeration value="XML"/>
			<xsd:enumeration value="hdf5"/>
		</xsd:restriction>
	</xsd:simpleType>
	<!-- End Format Type -->
	
	<!--Model Type-->
	<xsd:simpleType name="ModelType">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="Gaussian_p_L_I"/>
			<xsd:enumeration value="Gaussian_p_Lk_I"/>
			<xsd:enumeration value="Gaussian_p_L_B"/>
			<xsd:enumeration value="Gaussian_p_Lk_B"/>
			<xsd:enumeration value="Gaussian_p_L_Bk"/>
			<xsd:enumeration value="Gaussian_p_Lk_Bk"/>
			<xsd:enumeration value="Gaussian_p_L_C"/>
			<xsd:enumeration value="Gaussian_p_Lk_C"/>
			<xsd:enumeration value="Gaussian_p_L_D_Ak_D"/>
			<xsd:enumeration value="Gaussian_p_Lk_D_Ak_D"/>
			<xsd:enumeration value="Gaussian_p_L_Dk_A_Dk"/>
			<xsd:enumeration value="Gaussian_p_Lk_Dk_A_Dk"/>
			<xsd:enumeration value="Gaussian_p_L_Ck"/>
			<xsd:enumeration value="Gaussian_p_Lk_Ck"/>
			<xsd:enumeration value="Gaussian_pk_L_I"/>
			<xsd:enumeration value="Gaussian_pk_Lk_I"/>
			<xsd:enumeration value="Gaussian_pk_L_B"/>
			<xsd:enumeration value="Gaussian_pk_Lk_B"/>
			<xsd:enumeration value="Gaussian_pk_L_Bk"/>
			<xsd:enumeration value="Gaussian_pk_Lk_Bk"/>
			<xsd:enumeration value="Gaussian_pk_L_C"/>
			<xsd:enumeration value="Gaussian_pk_Lk_C"/>
			<xsd:enumeration value="Gaussian_pk_L_D_Ak_D"/>
			<xsd:enumeration value="Gaussian_pk_Lk_D_Ak_D"/>
			<xsd:enumeration value="Gaussian_pk_L_Dk_A_Dk"/>
			<xsd:enumeration value="Gaussian_pk_Lk_Dk_A_Dk"/>
			<xsd:enumeration value="Gaussian_pk_L_Ck"/>
			<xsd:enumeration value="Gaussian_pk_Lk_Ck"/>
			<xsd:enumeration value="Gaussian_HD_p_AkjBkQkDk"/>
			<xsd:enumeration value="Gaussian_HD_p_AkBkQkDk"/>
			<xsd:enumeration value="Gaussian_HD_p_AkjBkQkD"/>
			<xsd:enumeration value="Gaussian_HD_p_AjBkQkD"/>
			<xsd:enumeration value="Gaussian_HD_p_AkjBQkD"/>
			<xsd:enumeration value="Gaussian_HD_p_AjBQkD"/>
			<xsd:enumeration value="Gaussian_HD_p_AkBkQkD"/>
			<xsd:enumeration value="Gaussian_HD_p_AkBQkD"/>
			<xsd:enumeration value="Gaussian_HD_pk_AkjBkQkDk"/>
			<xsd:enumeration value="Gaussian_HD_pk_AkBkQkDk"/>
			<xsd:enumeration value="Gaussian_HD_pk_AkjBkQkD"/>
			<xsd:enumeration value="Gaussian_HD_pk_AjBkQkD"/>
			<xsd:enumeration value="Gaussian_HD_pk_AkjBQkD"/>
			<xsd:enumeration value="Gaussian_HD_pk_AjBQkD"/>
			<xsd:enumeration value="Gaussian_HD_pk_AkBkQkD"/>
			<xsd:enumeration value="Gaussian_HD_pk_AkBQkD"/>
			<xsd:enumeration value="Binary_p_E"/>
			<xsd:enumeration value="Binary_p_Ej"/>
			<xsd:enumeration value="Binary_p_Ek"/>
			<xsd:enumeration value="Binary_p_Ekj"/>
			<xsd:enumeration value="Binary_p_Ekjh"/>
			<xsd:enumeration value="Binary_pk_E"/>
			<xsd:enumeration value="Binary_pk_Ej"/>
			<xsd:enumeration value="Binary_pk_Ek"/>
			<xsd:enumeration value="Binary_pk_Ekj"/>
			<xsd:enumeration value="Binary_pk_Ekjh"/>
			<xsd:enumeration value="Heterogeneous_pk_E_L_B"/>
			<xsd:enumeration value="Heterogeneous_pk_E_Lk_B"/>
			<xsd:enumeration value="Heterogeneous_pk_E_L_Bk"/>
			<xsd:enumeration value="Heterogeneous_pk_E_Lk_Bk"/>
			<xsd:enumeration value="Heterogeneous_pk_Ek_L_B"/>
			<xsd:enumeration value="Heterogeneous_pk_Ek_Lk_B"/>
			<xsd:enumeration value="Heterogeneous_pk_Ek_L_Bk"/>
			<xsd:enumeration value="Heterogeneous_pk_Ek_Lk_Bk"/>
			<xsd:enumeration value="Heterogeneous_pk_Ej_L_B"/>
			<xsd:enumeration value="Heterogeneous_pk_Ej_Lk_B"/>
			<xsd:enumeration value="Heterogeneous_pk_Ej_L_Bk"/>
			<xsd:enumeration value="Heterogeneous_pk_Ej_Lk_Bk"/>
			<xsd:enumeration value="Heterogeneous_pk_Ekj_L_B"/>
			<xsd:enumeration value="Heterogeneous_pk_Ekj_Lk_B"/>
			<xsd:enumeration value="Heterogeneous_pk_Ekj_L_Bk"/>
			<xsd:enumeration value="Heterogeneous_pk_Ekj_Lk_Bk"/>
			<xsd:enumeration value="Heterogeneous_pk_Ekjh_L_B"/>
			<xsd:enumeration value="Heterogeneous_pk_Ekjh_Lk_B"/>
			<xsd:enumeration value="Heterogeneous_pk_Ekjh_L_Bk"/>
			<xsd:enumeration value="Heterogeneous_pk_Ekjh_Lk_Bk"/>
			<xsd:enumeration value="Heterogeneous_p_E_L_B"/>
			<xsd:enumeration value="Heterogeneous_p_E_Lk_B"/>
			<xsd:enumeration value="Heterogeneous_p_E_L_Bk"/>
			<xsd:enumeration value="Heterogeneous_p_E_Lk_Bk"/>
			<xsd:enumeration value="Heterogeneous_p_Ek_L_B"/>
			<xsd:enumeration value="Heterogeneous_p_Ek_Lk_B"/>
			<xsd:enumeration value="Heterogeneous_p_Ek_L_Bk"/>
			<xsd:enumeration value="Heterogeneous_p_Ek_Lk_Bk"/>
			<xsd:enumeration value="Heterogeneous_p_Ej_L_B"/>
			<xsd:enumeration value="Heterogeneous_p_Ej_Lk_B"/>
			<xsd:enumeration value="Heterogeneous_p_Ej_L_Bk"/>
			<xsd:enumeration value="Heterogeneous_p_Ej_Lk_Bk"/>
			<xsd:enumeration value="Heterogeneous_p_Ekj_L_B"/>
			<xsd:enumeration value="Heterogeneous_p_Ekj_Lk_B"/>
			<xsd:enumeration value="Heterogeneous_p_Ekj_L_Bk"/>
			<xsd:enumeration value="Heterogeneous_p_Ekj_Lk_Bk"/>
			<xsd:enumeration value="Heterogeneous_p_Ekjh_L_B"/>
			<xsd:enumeration value="Heterogeneous_p_Ekjh_Lk_B"/>
			<xsd:enumeration value="Heterogeneous_p_Ekjh_L_Bk"/>
			<xsd:enumeration value="Heterogeneous_p_Ekjh_Lk_Bk"/>
		</xsd:restriction>
	</xsd:simpleType>
	<!-- End Model Type-->
	
<!-- End Parameter -->
</xsd:schema>
