   <xs:schema 
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://www.dmg.org/PMML-3_0"
    xmlns="http://www.dmg.org/PMML-3_0"
    elementFormDefault="unqualified">
<!--  From http://www.dmg.org/v3-0/pmml-3-0.xsd
      See: http://www.dmg.org/v3-0/GeneralStructure.html
      Local references: http://xml.coverpages.org/pmml.html -->




  <xs:element name="PMML">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Header"/>
        <xs:element ref="MiningBuildTask" minOccurs="0"/>
        <xs:element ref="DataDictionary"/>
        <xs:element ref="TransformationDictionary" minOccurs="0"/>
        <xs:sequence minOccurs="0" maxOccurs="unbounded">
         <xs:choice>
            <xs:element ref="AssociationModel"/>
            <xs:element ref="ClusteringModel"/>
            <xs:element ref="GeneralRegressionModel"/>
            <xs:element ref="MiningModel"/>
            <xs:element ref="NaiveBayesModel"/>
            <xs:element ref="NeuralNetwork"/>
            <xs:element ref="RegressionModel"/>
            <xs:element ref="RuleSetModel"/>
            <xs:element ref="SequenceModel"/>
            <xs:element ref="SupportVectorMachineModel"/>
            <xs:element ref="TextModel"/>
            <xs:element ref="TreeModel"/>
          </xs:choice>
        </xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="version" type="xs:string" use="required"/>
    </xs:complexType>
  </xs:element>





  <xs:element name="MiningBuildTask">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>





  <xs:simpleType name="MINING-FUNCTION">
    <xs:restriction base="xs:string">
      <xs:enumeration value="associationRules"/>
      <xs:enumeration value="sequences"/>
      <xs:enumeration value="classification"/>
      <xs:enumeration value="regression"/>
      <xs:enumeration value="clustering"/>
    </xs:restriction>
  </xs:simpleType>





  <xs:element name="Extension">
    <xs:complexType>
      <xs:complexContent mixed="true">
        <xs:restriction base="xs:anyType">
          <xs:sequence>
            <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence> 
          <xs:attribute name="extender" type="xs:string" use="optional"/>
          <xs:attribute name="name" type="xs:string" use="optional"/>
          <xs:attribute name="value" type="xs:string" use="optional"/>
        </xs:restriction>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>





  <xs:simpleType name="NUMBER">
    <xs:restriction base="xs:double">
    </xs:restriction>
  </xs:simpleType>





  <xs:simpleType name="INT-NUMBER">
    <xs:restriction base="xs:integer">
    </xs:restriction>
  </xs:simpleType>





  <xs:simpleType name="REAL-NUMBER">
    <xs:restriction base="xs:double">
    </xs:restriction>
  </xs:simpleType>





  <xs:simpleType name="PROB-NUMBER">
    <xs:restriction base="xs:decimal">
    </xs:restriction>
  </xs:simpleType>





  <xs:simpleType name="PERCENTAGE-NUMBER">
    <xs:restriction base="xs:decimal">
    </xs:restriction>
  </xs:simpleType>





  <xs:simpleType name="FIELD-NAME">
    <xs:restriction base="xs:string">
    </xs:restriction>
  </xs:simpleType>





  <xs:complexType name="ArrayType" mixed="true">
    <xs:attribute name="n" type="INT-NUMBER" use="optional"/>
    <xs:attribute name="type" use="required">
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="int"/>
          <xs:enumeration value="real"/>
          <xs:enumeration value="string"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:complexType>

 <xs:element name="Array"  type="ArrayType"/>





  <xs:group name="NUM-ARRAY">
    <xs:choice>
      <xs:element ref="Array"/>
    </xs:choice>
  </xs:group>

  <xs:group name="INT-ARRAY">
    <xs:choice>
      <xs:element ref="Array"/>
    </xs:choice>
  </xs:group>

  <xs:group name="REAL-ARRAY">
    <xs:choice>
      <xs:element ref="Array"/>
    </xs:choice>
  </xs:group>

  <xs:group name="STRING-ARRAY">
    <xs:choice>
      <xs:element ref="Array"/>
    </xs:choice>
  </xs:group>





  <xs:element name="INT-SparseArray">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Indices" minOccurs="0">
          <xs:simpleType>
            <xs:list itemType="xs:int"/> 
          </xs:simpleType>
        </xs:element>
        <xs:element name="Entries" minOccurs="0">
          <xs:simpleType>
            <xs:list itemType="xs:int"/> 
          </xs:simpleType>
        </xs:element>
      </xs:sequence>
      <xs:attribute name="n" type="INT-NUMBER" use="optional"/>
      <xs:attribute name="defaultValue" type="INT-NUMBER" use="optional" default="0"/>
    </xs:complexType>
  </xs:element>

  <xs:element name="REAL-SparseArray">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Indices" minOccurs="0">
          <xs:simpleType>
            <xs:list itemType="xs:int"/> 
          </xs:simpleType>
        </xs:element>
        <xs:element name="Entries" minOccurs="0">
          <xs:simpleType>
            <xs:list itemType="xs:double"/> 
          </xs:simpleType>
        </xs:element>
      </xs:sequence>
      <xs:attribute name="n" type="INT-NUMBER" use="optional"/>
      <xs:attribute name="defaultValue" type="REAL-NUMBER" use="optional" default="0"/>
    </xs:complexType>
  </xs:element>





  <xs:element name="Matrix">
    <xs:complexType>
      <xs:choice minOccurs="0">
        <xs:group ref="NUM-ARRAY" maxOccurs="unbounded" />
        <xs:element ref="MatCell" maxOccurs="unbounded" />
      </xs:choice>
      <xs:attribute name="kind" use="optional" default="any" >
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="diagonal"/>
            <xs:enumeration value="symmetric"/>
            <xs:enumeration value="any"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="nbRows" type="INT-NUMBER" use="optional"/>
      <xs:attribute name="nbCols" type="INT-NUMBER" use="optional"/>
      <xs:attribute name="diagDefault" type="REAL-NUMBER" use="optional"/>
      <xs:attribute name="offDiagDefault" type="REAL-NUMBER" use="optional"/>
    </xs:complexType>
  </xs:element>

  <xs:element name="MatCell">
    <xs:complexType >
      <xs:simpleContent>
        <xs:extension base="xs:string">
          <xs:attribute name="row" type="INT-NUMBER" use="required" />
          <xs:attribute name="col" type="INT-NUMBER" use="required" />
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>





  <xs:element name="Header">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element minOccurs="0" ref="Application" />
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="Annotation" />
        <xs:element minOccurs="0" ref="Timestamp" />
      </xs:sequence>
      <xs:attribute name="copyright" type="xs:string" use="required" />
      <xs:attribute name="description" type="xs:string" />
    </xs:complexType>
  </xs:element>

  <xs:element name="Application">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="name" type="xs:string" use="required" />
      <xs:attribute name="version" type="xs:string" />
    </xs:complexType>
  </xs:element>

  <xs:element name="Annotation" type="xs:string" />

  <xs:element name="Timestamp" type="xs:string" />





  <xs:element name="DataDictionary">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element ref="DataField" maxOccurs="unbounded"  />
        <xs:element ref="Taxonomy" minOccurs="0" maxOccurs="unbounded"  />
      </xs:sequence>
      <xs:attribute name="numberOfFields" type="xs:nonNegativeInteger" />
    </xs:complexType>
  </xs:element>

  <xs:element name="DataField">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
        <xs:choice>
          <xs:element ref="Interval" minOccurs="0" maxOccurs="unbounded" />
          <xs:element ref="Value"    minOccurs="0" maxOccurs="unbounded" />
        </xs:choice>
      </xs:sequence>
      <xs:attribute name="name" type="FIELD-NAME" use="required" />
      <xs:attribute name="displayName" type="xs:string" />
      <xs:attribute name="optype" type="OPTYPE" use="required" />
      <xs:attribute name="dataType" type="DATATYPE" />
      <xs:attribute name="taxonomy" type="xs:string" />
      <xs:attribute name="isCyclic" default="0">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="0" />
            <xs:enumeration value="1" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:complexType>
  </xs:element>



  <xs:simpleType name="OPTYPE">      
     <xs:restriction base="xs:string">
      <xs:enumeration value="categorical"/>
      <xs:enumeration value="ordinal"/>
      <xs:enumeration value="continuous"/>
     </xs:restriction>
  </xs:simpleType>


  <xs:simpleType name="DATATYPE">      
     <xs:restriction base="xs:string">
        <xs:enumeration value="string" />
        <xs:enumeration value="integer" />
        <xs:enumeration value="float" />
        <xs:enumeration value="double" />
        <xs:enumeration value="boolean" />

        <xs:enumeration value="date"/>
        <xs:enumeration value="time" />
        <xs:enumeration value="dateTime" />
        <xs:enumeration value="dateDaysSince[0]" />
        <xs:enumeration value="dateDaysSince[1960]" />
        <xs:enumeration value="dateDaysSince[1970]" />
        <xs:enumeration value="dateDaysSince[1980]" />
        <xs:enumeration value="timeSeconds" />
        <xs:enumeration value="dateTimeSecondsSince[0]" />
        <xs:enumeration value="dateTimeSecondsSince[1960]" />
        <xs:enumeration value="dateTimeSecondsSince[1970]" />
        <xs:enumeration value="dateTimeSecondsSince[1980]" />

     </xs:restriction>
  </xs:simpleType>





  <xs:element name="Value">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="value" type="xs:string" use="required" />
      <xs:attribute name="displayValue" type="xs:string" />
      <xs:attribute name="property" default="valid">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="valid" />
            <xs:enumeration value="invalid" />
            <xs:enumeration value="missing" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:complexType>
  </xs:element>





  <xs:element name="Interval">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="closure" use="required">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="openClosed" />
            <xs:enumeration value="openOpen" />
            <xs:enumeration value="closedOpen" />
            <xs:enumeration value="closedClosed" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="leftMargin" type="NUMBER" />
      <xs:attribute name="rightMargin" type="NUMBER" />
    </xs:complexType>
  </xs:element>





  <xs:element name="DefineFunction">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:element ref="ParameterField" minOccurs="1" maxOccurs="unbounded" />
        <xs:group ref="EXPRESSION" />
      </xs:sequence>
      <xs:attribute name="name" type="xs:string" use="required"/>
      <xs:attribute name="optype" type="OPTYPE" />
      <xs:attribute name="dataType" type="DATATYPE" />
    </xs:complexType>
  </xs:element>


  <xs:element name="ParameterField">
    <xs:complexType>
      <xs:attribute name="name" type="xs:string" use="required" />
      <xs:attribute name="optype" type="OPTYPE" use="required" />
    </xs:complexType>
  </xs:element>
  

  <xs:element name="Apply">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:group ref="EXPRESSION" minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
      <xs:attribute name="function" type="xs:string" />
    </xs:complexType>
  </xs:element>





  <xs:element name="Taxonomy">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:element ref="ChildParent" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="name" type="xs:string" use="required"/>
    </xs:complexType>
  </xs:element>

  <xs:element name="ChildParent">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:choice>
          <xs:element ref="TableLocator"/>
          <xs:element ref="InlineTable"/>
        </xs:choice>
      </xs:sequence>
      <xs:attribute name="childField" type="xs:string" use="required"/>
      <xs:attribute name="parentField" type="xs:string" use="required"/>
      <xs:attribute name="parentLevelField" type="xs:string" use="optional"/>
      <xs:attribute name="isRecursive" use="optional" default="no">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="no"/>
            <xs:enumeration value="yes"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:complexType>
  </xs:element>

  <xs:element name="TableLocator">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="InlineTable">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:element ref="row" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="row" type="xs:anyType"/>





  <xs:group name="EXPRESSION">
    <xs:choice>
      <xs:element ref="Constant" />
      <xs:element ref="FieldRef" />
      <xs:element ref="NormContinuous" />
      <xs:element ref="NormDiscrete" />
      <xs:element ref="Discretize" />
      <xs:element ref="MapValues" />

      <xs:element ref="Apply" />

      <xs:element ref="Aggregate" />
    </xs:choice>
  </xs:group>

  <xs:element name="TransformationDictionary">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />

        <xs:element ref="DefineFunction"  minOccurs="0" maxOccurs="unbounded" />

        <xs:element ref="DerivedField" minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>


  <xs:element name="LocalTransformations">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:element ref="DerivedField" minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>


  <xs:element name="DerivedField">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:group ref="EXPRESSION" />
        
        <xs:element ref="Interval" minOccurs="0" maxOccurs="unbounded" />
        <xs:element ref="Value" minOccurs="0" maxOccurs="unbounded" /> 
      </xs:sequence>
      <xs:attribute name="name" type="FIELD-NAME" />
      <xs:attribute name="displayName" type="xs:string" />

      <xs:attribute name="optype" type="OPTYPE" use="required"/>
      <xs:attribute name="dataType" type="DATATYPE" use="required"/>

    </xs:complexType>
  </xs:element>





  <xs:element name="Constant" type="xs:anyType"/>

  <xs:element name="FieldRef">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
      <xs:attribute name="field" type="FIELD-NAME" use="required" />
    </xs:complexType>
  </xs:element>




   <xs:element name="NormContinuous">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:element minOccurs="2" maxOccurs="unbounded" ref="LinearNorm" />
      </xs:sequence>
      <xs:attribute name="field" type="FIELD-NAME" use="required" />
    </xs:complexType>
  </xs:element>

  <xs:element name="LinearNorm">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
      <xs:attribute name="orig" type="NUMBER" use="required" />
      <xs:attribute name="norm" type="NUMBER" use="required" />
    </xs:complexType>
  </xs:element>




   <xs:element name="NormDiscrete">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
      <xs:attribute name="field" type="FIELD-NAME" use="required" />
      <xs:attribute name="method" fixed="indicator" >
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="indicator" />
            <xs:enumeration value="thermometer" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="value" type="xs:string" use="required" />

      <xs:attribute name="mapMissingTo" type="xs:string" />

    </xs:complexType>
  </xs:element>





  <xs:element name="Discretize">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:element maxOccurs="unbounded" ref="DiscretizeBin" />
      </xs:sequence>
      <xs:attribute name="field" type="FIELD-NAME" use="required" />

      <xs:attribute name="mapMissingTo" type="xs:string" />
      <xs:attribute name="defaultValue" type="xs:string" />

    </xs:complexType>
  </xs:element>

  <xs:element name="DiscretizeBin">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:element ref="Interval" />
      </xs:sequence>
      <xs:attribute name="binValue" type="xs:string" use="required" />
    </xs:complexType>
  </xs:element>




   <xs:element name="MapValues">
    <xs:complexType>

      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:element maxOccurs="unbounded" ref="FieldColumnPair" />
        <xs:choice>
          <xs:element ref="TableLocator" />
          <xs:element ref="InlineTable" />
        </xs:choice>
      </xs:sequence>
      <xs:attribute name="mapMissingTo" type="xs:string" />
      <xs:attribute name="defaultValue" type="xs:string" />

      <xs:attribute name="outputColumn" type="xs:string" use="required" />
    </xs:complexType>
  </xs:element>

  <xs:element name="FieldColumnPair">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
      <xs:attribute name="field" type="FIELD-NAME" use="required" />
      <xs:attribute name="column" type="xs:string" use="required" />
    </xs:complexType>
  </xs:element>





  <xs:element name="Aggregate">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
      <xs:attribute name="field" type="FIELD-NAME" use="required" />
      <xs:attribute name="function" use="required">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="count" />
            <xs:enumeration value="sum" />
            <xs:enumeration value="average" />
            <xs:enumeration value="min" />
            <xs:enumeration value="max" />
            <xs:enumeration value="multiset" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="groupField" type="FIELD-NAME" />
      <xs:attribute name="sqlWhere" type="xs:string" />
    </xs:complexType>
  </xs:element>





  <xs:element name="MiningSchema">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element maxOccurs="unbounded" ref="MiningField" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="MiningField">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="name" type="FIELD-NAME" use="required" />
      <xs:attribute name="usageType" type="FIELD-USAGE-TYPE" default="active" />

      <xs:attribute name="optype" type="OPTYPE" />
      <xs:attribute name="importance" type="PROB-NUMBER" />

      <xs:attribute name="outliers" type="OUTLIER-TREATMENT-METHOD" default="asIs" />
      <xs:attribute name="lowValue" type="NUMBER" />
      <xs:attribute name="highValue" type="NUMBER" />
      <xs:attribute name="missingValueReplacement" type="xs:string" />
      <xs:attribute name="missingValueTreatment" type="MISSING-VALUE-TREATMENT-METHOD" />
    </xs:complexType>
  </xs:element>

  <xs:simpleType name="FIELD-USAGE-TYPE">
    <xs:restriction base="xs:string">
      <xs:enumeration value="active" />
      <xs:enumeration value="predicted" />
      <xs:enumeration value="supplementary" />
      <xs:enumeration value="group" />

      <xs:enumeration value="order" />

    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="OUTLIER-TREATMENT-METHOD">
    <xs:restriction base="xs:string">
      <xs:enumeration value="asIs" />
      <xs:enumeration value="asMissingValues" />
      <xs:enumeration value="asExtremeValues" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="MISSING-VALUE-TREATMENT-METHOD">
    <xs:restriction base="xs:string">
      <xs:enumeration value="asIs" />
      <xs:enumeration value="asMean" />
      <xs:enumeration value="asMode" />
      <xs:enumeration value="asMedian" />
      <xs:enumeration value="asValue" />
    </xs:restriction>
  </xs:simpleType>






  <xs:element name="ModelStats">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:element maxOccurs="unbounded" ref="UnivariateStats" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>





  <xs:element name="UnivariateStats">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:element minOccurs="0" ref="Counts" />
        <xs:element minOccurs="0" ref="NumericInfo" />
        <xs:element minOccurs="0" ref="DiscrStats" />
        <xs:element minOccurs="0" ref="ContStats" />
      </xs:sequence>
      <xs:attribute name="field" type="FIELD-NAME" />
    </xs:complexType>
  </xs:element>





  <xs:element name="Counts">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
      <xs:attribute name="totalFreq" type="xs:nonNegativeInteger" use="required" />
      <xs:attribute name="missingFreq" type="xs:nonNegativeInteger" />
      <xs:attribute name="invalidFreq" type="xs:nonNegativeInteger" />
    </xs:complexType>
  </xs:element>





  <xs:element name="NumericInfo">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="Quantile" />
      </xs:sequence>
      <xs:attribute name="minimum" type="NUMBER" />
      <xs:attribute name="maximum" type="NUMBER" />
      <xs:attribute name="mean" type="NUMBER" />
      <xs:attribute name="standardDeviation" type="NUMBER" />
      <xs:attribute name="median" type="NUMBER" />
      <xs:attribute name="interQuartileRange" type="NUMBER" />
    </xs:complexType>
  </xs:element>





  <xs:element name="Quantile">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
      <xs:attribute name="quantileLimit" type="PERCENTAGE-NUMBER" use="required" />
      <xs:attribute name="quantileValue" type="NUMBER" use="required" />
    </xs:complexType>
  </xs:element>





  <xs:element name="DiscrStats">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        
        <xs:element minOccurs="0" maxOccurs="2" ref="Array" />
        
      </xs:sequence>
      <xs:attribute name="modalValue" type="xs:string" />
    </xs:complexType>
  </xs:element>





  <xs:element name="ContStats">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="Interval" />
        <xs:group minOccurs="0" ref="INT-ARRAY" />
        <xs:group minOccurs="0" maxOccurs="2" ref="NUM-ARRAY" />
      </xs:sequence>
      <xs:attribute name="totalValuesSum" type="NUMBER" />
      <xs:attribute name="totalSquaresSum" type="NUMBER" />
    </xs:complexType>
  </xs:element>





  <xs:element name="Partition">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="PartitionFieldStats" />
      </xs:sequence>
      <xs:attribute name="name" type="xs:string" use="required" />
      <xs:attribute name="size" type="xs:nonNegativeInteger" />
    </xs:complexType>
  </xs:element>





  <xs:element name="PartitionFieldStats">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:element minOccurs="0" ref="Counts" />
        <xs:element minOccurs="0" ref="NumericInfo" />
        <xs:group minOccurs="0" ref="INT-ARRAY" />
        <xs:group minOccurs="0" maxOccurs="2" ref="NUM-ARRAY" />
      </xs:sequence>
      <xs:attribute name="field" type="FIELD-NAME" use="required" />
    </xs:complexType>
  </xs:element>





  <xs:element name="Output">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:element ref="OutputField" minOccurs="1" maxOccurs="unbounded" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="OutputField">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
      <xs:attribute name="name" type="FIELD-NAME" use="required" />
      <xs:attribute name="displayName" type="xs:string" />
      <xs:attribute name="optype" type="OPTYPE" />
      <xs:attribute name="dataType" type="DATATYPE"/>
      <xs:attribute name="targetField" type="FIELD-NAME" use="required" />
      <xs:attribute name="feature" type="RESULT-FEATURE" />
      <xs:attribute name="value" type="xs:string" />
    </xs:complexType>
  </xs:element>

  <xs:simpleType name="RESULT-FEATURE">      
     <xs:restriction base="xs:string">
        <xs:enumeration value="predictedValue" />
        <xs:enumeration value="predictedDisplayValue" />
        <xs:enumeration value="probability" />
        <xs:enumeration value="residual" />
        <xs:enumeration value="standardError" />
        <xs:enumeration value="clusterId" />
        <xs:enumeration value="clusterAffinity" />
        <xs:enumeration value="warning" />
     </xs:restriction>
  </xs:simpleType>





  <xs:element name="SelectResult">
    <xs:complexType>
      <xs:attribute name="field" type="FIELD-NAME" />
      <xs:attribute name="feature" type="RESULT-FEATURE" />
      <xs:attribute name="value" type="xs:string" />
    </xs:complexType>
  </xs:element>





  <xs:element name="Targets">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:element ref="Target" maxOccurs="unbounded"  />
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="Target">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:element ref="TargetValue" maxOccurs="unbounded"  />
      </xs:sequence>
      <xs:attribute name="field" type="FIELD-NAME" use="required" />
      <xs:attribute name="optype" type="OPTYPE" />
      <xs:attribute name="castInteger" >
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="round"/>
            <xs:enumeration value="ceiling"/>
            <xs:enumeration value="floor"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:complexType>
  </xs:element>

  <xs:element name="TargetValue">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
      <xs:attribute name="value" type="xs:string" />
      <xs:attribute name="rawDataValue" type="xs:string" />
      <xs:attribute name="priorProbability" type="PROB-NUMBER" />
      <xs:attribute name="defaultValue" type="NUMBER" />
    </xs:complexType>
  </xs:element>





  <xs:element name="NeuralNetwork">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:element ref="MiningSchema"/>
        
        <xs:element ref="Output" minOccurs="0" />
        <xs:element ref="ModelStats" minOccurs="0"/>
        
        <xs:element ref="Targets" minOccurs="0" />

        <xs:element ref="LocalTransformations" minOccurs="0" />

        <xs:element ref="NeuralInputs" />
        <xs:element maxOccurs="unbounded" ref="NeuralLayer" />
        <xs:element minOccurs="0" ref="NeuralOutputs" />
        <xs:element ref="ModelVerification" minOccurs="0"/>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="modelName" type="xs:string" />
      <xs:attribute name="functionName" type="MINING-FUNCTION" use="required" />
      <xs:attribute name="algorithmName" type="xs:string" />
      <xs:attribute name="activationFunction" type="ACTIVATION-FUNCTION" use="required" />

      <xs:attribute name="normalizationMethod" 
                       type="NN-NORMALIZATION-METHOD" default="none"/>

      <xs:attribute name="threshold" type="REAL-NUMBER" default="0" />

      <xs:attribute name="width" type="REAL-NUMBER" />
      <xs:attribute name="altitude" type="REAL-NUMBER" default="1.0" />

      <xs:attribute name="numberOfLayers" type="xs:nonNegativeInteger" />
    </xs:complexType>
  </xs:element>

  <xs:element name="NeuralInputs">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:element maxOccurs="unbounded" ref="NeuralInput" />
      </xs:sequence>
      <xs:attribute name="numberOfInputs" type="xs:nonNegativeInteger" />
    </xs:complexType>
  </xs:element>

  <xs:element name="NeuralLayer">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:element maxOccurs="unbounded" ref="Neuron" />
      </xs:sequence>
      <xs:attribute name="numberOfNeurons" type="xs:nonNegativeInteger" />
      <xs:attribute name="activationFunction" type="ACTIVATION-FUNCTION" />

      <xs:attribute name="threshold" type="REAL-NUMBER" />
      <xs:attribute name="width" type="REAL-NUMBER" />
      <xs:attribute name="altitude" type="REAL-NUMBER" />

      <xs:attribute name="normalizationMethod" type="NN-NORMALIZATION-METHOD" />
      
    </xs:complexType>
  </xs:element>

  <xs:element name="NeuralOutputs">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:element maxOccurs="unbounded" ref="NeuralOutput" />
      </xs:sequence>
      <xs:attribute name="numberOfOutputs" type="xs:nonNegativeInteger" />
    </xs:complexType>
  </xs:element>





  <xs:simpleType name="ACTIVATION-FUNCTION">
    <xs:restriction base="xs:string">
      <xs:enumeration value="threshold" />
      <xs:enumeration value="logistic" />
      <xs:enumeration value="tanh" />
      <xs:enumeration value="identity" />
      <xs:enumeration value="exponential" />
      <xs:enumeration value="reciprocal" />
      <xs:enumeration value="square" />
      <xs:enumeration value="Gauss" />
      <xs:enumeration value="sine" />
      <xs:enumeration value="cosine" />
      <xs:enumeration value="Elliott" />
      <xs:enumeration value="arctan" />
      <xs:enumeration value="radialBasis" />
    </xs:restriction>
  </xs:simpleType>


  <xs:simpleType name="NN-NORMALIZATION-METHOD">
    <xs:restriction base="xs:string">
      <xs:enumeration value="none" />
      <xs:enumeration value="simplemax" />
      <xs:enumeration value="softmax" />
    </xs:restriction>
  </xs:simpleType>


  <xs:simpleType name="NN-NEURON-ID">
    <xs:restriction base="xs:string" />
  </xs:simpleType>

  <xs:simpleType name="NN-NEURON-IDREF">
    <xs:restriction base="xs:string" />
  </xs:simpleType>





  <xs:element name="NeuralInput">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:element ref="DerivedField" />
      </xs:sequence>
      <xs:attribute name="id" type="NN-NEURON-ID" use="required" />
    </xs:complexType>
  </xs:element>





  <xs:element name="Neuron">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:element maxOccurs="unbounded" ref="Con" />
      </xs:sequence>
      <xs:attribute name="id" type="NN-NEURON-ID" use="required" />
      <xs:attribute name="bias" type="REAL-NUMBER" />
      <xs:attribute name="width" type="REAL-NUMBER" />
    </xs:complexType>
  </xs:element>





  <xs:element name="Con">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
      <xs:attribute name="from" type="NN-NEURON-IDREF" use="required" />
      <xs:attribute name="weight" type="REAL-NUMBER" use="required" />
    </xs:complexType>
  </xs:element>





  <xs:element name="NeuralOutput">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:element ref="DerivedField" />
      </xs:sequence>
      <xs:attribute name="outputNeuron" type="NN-NEURON-IDREF" use="required" />
    </xs:complexType>
  </xs:element>





  <xs:element name="ClusteringModel">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element ref="MiningSchema"/>
        
        <xs:element ref="Output" minOccurs="0" />
        <xs:element ref="ModelStats" minOccurs="0"/>
        
        <xs:element ref="LocalTransformations" minOccurs="0" />
        <xs:element ref="ComparisonMeasure"/>
        <xs:element ref="ClusteringField" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element ref="CenterFields" minOccurs="0"/>
        
        <xs:element ref="MissingValueWeights" minOccurs="0"/>
        
        <xs:element ref="Cluster" maxOccurs="unbounded"/>
        <xs:element ref="ModelVerification" minOccurs="0"/>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="modelName" type="xs:string" use="optional"/>
      <xs:attribute name="functionName" type="MINING-FUNCTION" use="required" />
      <xs:attribute name="algorithmName" type="xs:string" use="optional"/>
      <xs:attribute name="modelClass" use="required">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="centerBased"/>
            <xs:enumeration value="distributionBased"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="numberOfClusters" type="INT-NUMBER" use="required"/>
    </xs:complexType>
  </xs:element>

  <xs:element name="CenterFields">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="DerivedField" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>




 
  <xs:element name="MissingValueWeights">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
        <xs:group ref="NUM-ARRAY"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>


  <xs:element name="Cluster">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element ref="KohonenMap" minOccurs="0"/>
        <xs:group ref="NUM-ARRAY" minOccurs="0"/>
        <xs:element ref="Partition" minOccurs="0"/>
        <xs:element ref="Covariances" minOccurs="0"/>
      </xs:sequence>
      <xs:attribute name="name" type="xs:string" use="optional"/>
      <xs:attribute name="size" type="xs:nonNegativeInteger" use="optional"/>
    </xs:complexType>
  </xs:element>


  <xs:element name="KohonenMap">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="coord1" type="xs:float" use="optional"/>
      <xs:attribute name="coord2" type="xs:float" use="optional"/>
      <xs:attribute name="coord3" type="xs:float" use="optional"/>
      </xs:complexType>
  </xs:element>





  <xs:element name="Covariances">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:element ref="Matrix"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>





  <xs:element name="ClusteringField">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element ref="Comparisons" minOccurs="0"/>
      </xs:sequence>
      <xs:attribute name="field" type="FIELD-NAME" use="required"/>
      <xs:attribute name="fieldWeight" type="REAL-NUMBER" use="optional"/>
      <xs:attribute name="similarityScale" type="REAL-NUMBER" use="optional"/>
      <xs:attribute name="compareFunction" type="COMPARE-FUNCTION" use="optional" />
    </xs:complexType>
  </xs:element>





  <xs:element name="Comparisons">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element ref="Matrix"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>





  <xs:simpleType name="COMPARE-FUNCTION">
    <xs:restriction base="xs:string">
      <xs:enumeration value="absDiff" />
      <xs:enumeration value="gaussSim" />
      <xs:enumeration value="delta" />
      <xs:enumeration value="equal" />
      <xs:enumeration value="table" />
    </xs:restriction>
  </xs:simpleType>





  <xs:element name="ComparisonMeasure">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
        <xs:choice>
          <xs:element ref="euclidean"/>
          <xs:element ref="squaredEuclidean"/>
          <xs:element ref="chebychev"/>
          <xs:element ref="cityBlock"/>
          <xs:element ref="minkowski"/>
          <xs:element ref="simpleMatching"/>
          <xs:element ref="jaccard"/>
          <xs:element ref="tanimoto"/>
          <xs:element ref="binarySimilarity"/>
        </xs:choice>
      </xs:sequence>
      <xs:attribute name="kind" use="required">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="distance"/>
            <xs:enumeration value="similarity"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>

      <xs:attribute name="compareFunction" type="COMPARE-FUNCTION" use="optional" />
      <xs:attribute name="minimum" type="NUMBER" use="optional"/>
      <xs:attribute name="maximum" type="NUMBER" use="optional"/>
    </xs:complexType>
  </xs:element>

  <xs:element name="euclidean">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="squaredEuclidean">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="cityBlock">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="chebychev">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="minkowski">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
      <xs:attribute name="p-parameter" type="NUMBER" use="required"/>
    </xs:complexType>
  </xs:element>

  <xs:element name="simpleMatching">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="jaccard">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="tanimoto">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="binarySimilarity">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
      <xs:attribute name="c00-parameter" type="NUMBER" use="required"/>
      <xs:attribute name="c01-parameter" type="NUMBER" use="required"/>
      <xs:attribute name="c10-parameter" type="NUMBER" use="required"/>
      <xs:attribute name="c11-parameter" type="NUMBER" use="required"/>
      <xs:attribute name="d00-parameter" type="NUMBER" use="required"/>
      <xs:attribute name="d01-parameter" type="NUMBER" use="required"/>
      <xs:attribute name="d10-parameter" type="NUMBER" use="required"/>
      <xs:attribute name="d11-parameter" type="NUMBER" use="required"/>
    </xs:complexType>
  </xs:element>





  <xs:element name="AssociationModel">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element ref="MiningSchema"/>
        <xs:element ref="ModelStats" minOccurs="0"/>

        <xs:element ref="LocalTransformations" minOccurs="0" />

        <xs:element minOccurs="0" maxOccurs="unbounded" ref="Item" />
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:element ref="Itemset" />
          <xs:element ref="AssociationRule" />
        </xs:choice>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="modelName" type="xs:string" />
      <xs:attribute name="functionName" type="MINING-FUNCTION" use="required" />
      <xs:attribute name="algorithmName" type="xs:string" />
      <xs:attribute name="numberOfTransactions" type="INT-NUMBER" use="required" />
      <xs:attribute name="maxNumberOfItemsPerTA" type="INT-NUMBER" />
      <xs:attribute name="avgNumberOfItemsPerTA" type="REAL-NUMBER" />
      <xs:attribute name="minimumSupport" type="PROB-NUMBER" use="required" />
      <xs:attribute name="minimumConfidence" type="PROB-NUMBER" use="required" />
      <xs:attribute name="lengthLimit" type="INT-NUMBER" />
      <xs:attribute name="numberOfItems" type="INT-NUMBER" use="required" />
      <xs:attribute name="numberOfItemsets" type="INT-NUMBER" use="required" />
      <xs:attribute name="numberOfRules" type="INT-NUMBER" use="required" />
    </xs:complexType>
  </xs:element>





  <xs:element name="Item">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="id" type="xs:string" use="required" />
      <xs:attribute name="value" type="xs:string" use="required" />
      <xs:attribute name="mappedValue" type="xs:string" />
      <xs:attribute name="weight" type="REAL-NUMBER" />
    </xs:complexType>
  </xs:element>





  <xs:element name="Itemset">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="ItemRef" />
      </xs:sequence>
      <xs:attribute name="id" type="xs:string" use="required" />
      <xs:attribute name="support" type="PROB-NUMBER" />
      <xs:attribute name="numberOfItems" type="xs:nonNegativeInteger" />
    </xs:complexType>
  </xs:element>





  <xs:element name="ItemRef">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="itemRef" type="xs:string" use="required" />
    </xs:complexType>
  </xs:element>





  <xs:element name="AssociationRule">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="antecedent" type="xs:string" use="required" />
      <xs:attribute name="consequent" type="xs:string" use="required" />
      <xs:attribute name="support" type="PROB-NUMBER" use="required" />
      <xs:attribute name="confidence" type="PROB-NUMBER" use="required" />

      <xs:attribute name="lift" type="xs:float" use="optional" />
      <xs:attribute name="id" type="xs:string" use="optional" />

    </xs:complexType>
  </xs:element>





  <xs:element name="TreeModel">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element ref="MiningSchema"/>
        
        <xs:element ref="Output" minOccurs="0" />
        <xs:element ref="ModelStats" minOccurs="0"/>
        
        <xs:element ref="Targets" minOccurs="0" />
        <xs:element ref="LocalTransformations" minOccurs="0" />
        
        <xs:element ref="Node"/>
        <xs:element ref="ModelVerification" minOccurs="0"/>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="modelName" type="xs:string" />
      <xs:attribute name="functionName" type="MINING-FUNCTION" use="required" />
      <xs:attribute name="algorithmName" type="xs:string" />
      <xs:attribute name="splitCharacteristic" default="multiSplit">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="binarySplit"/>
            <xs:enumeration value="multiSplit"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:complexType>
  </xs:element>





  <xs:element name="Node">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:group ref="PREDICATE" />

        <xs:choice>

          <xs:sequence>
            <xs:element ref="ScoreDistribution" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element ref="Node" minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>

          <xs:group ref="EmbeddedModel"/>
        </xs:choice>

      </xs:sequence>
      <xs:attribute name="id" type="xs:string"/>
      <xs:attribute name="score" type="xs:string" use="required"/>
      <xs:attribute name="recordCount" type="NUMBER"/>
    </xs:complexType>
  </xs:element>





  <xs:group name="PREDICATE">
    <xs:choice>
      <xs:element ref="SimplePredicate" />
      <xs:element ref="CompoundPredicate" />
      <xs:element ref="SimpleSetPredicate" />
      <xs:element ref="True" />
      <xs:element ref="False" />
    </xs:choice>
  </xs:group>

  <xs:element name="SimplePredicate">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
      <xs:attribute name="field" type="FIELD-NAME" use="required"/>
      <xs:attribute name="operator" use="required">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="equal"/>
            <xs:enumeration value="notEqual"/>
            <xs:enumeration value="lessThan"/>
            <xs:enumeration value="lessOrEqual"/>
            <xs:enumeration value="greaterThan"/>
            <xs:enumeration value="greaterOrEqual"/>
            <xs:enumeration value="isMissing"/>
            <xs:enumeration value="isNotMissing"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="value" type="xs:string"/>
    </xs:complexType>
  </xs:element>





  <xs:element name="CompoundPredicate">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:sequence minOccurs="2" maxOccurs="unbounded">
          <xs:group ref="PREDICATE" />
        </xs:sequence>
      </xs:sequence>
      <xs:attribute name="booleanOperator" use="required">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="or"/>
            <xs:enumeration value="and"/>
            <xs:enumeration value="xor"/>
            <xs:enumeration value="surrogate"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:complexType>
  </xs:element>





  <xs:element name="SimpleSetPredicate">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:element ref="Array"/>
      </xs:sequence>
      <xs:attribute name="field" type="FIELD-NAME" use="required"/>
      <xs:attribute name="booleanOperator" use="required">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="isIn"/>
            <xs:enumeration value="isNotIn"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:complexType>
  </xs:element>





  <xs:element name="True">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>





  <xs:element name="False">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>





  <xs:element name="ScoreDistribution">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
      <xs:attribute name="value" type="xs:string" use="required"/>
      <xs:attribute name="recordCount" type="NUMBER" use="required"/>
    </xs:complexType>
  </xs:element>





  <xs:element name="RegressionModel">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:element ref="MiningSchema"/>

        <xs:element ref="Output" minOccurs="0" />
        <xs:element ref="ModelStats" minOccurs="0"/>
        
        <xs:element ref="Targets" minOccurs="0" />
        <xs:element ref="LocalTransformations" minOccurs="0" />

        <xs:element ref="RegressionTable" maxOccurs="unbounded" />

        <xs:element ref="ModelVerification" minOccurs="0"/>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="modelName" type="xs:string" />
      <xs:attribute name="functionName" type="MINING-FUNCTION" use="required" />
      <xs:attribute name="algorithmName" type="xs:string" />

      <xs:attribute name="modelType" use="optional">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="linearRegression" />
            <xs:enumeration value="stepwisePolynomialRegression" />
            <xs:enumeration value="logisticRegression" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="targetFieldName" type="FIELD-NAME" use="optional" />

      <xs:attribute name="normalizationMethod" type="REGRESSIONNORMALIZATIONMETHOD" default="none"/>
    </xs:complexType>
  </xs:element>



  <xs:simpleType name="REGRESSIONNORMALIZATIONMETHOD">
    <xs:restriction base="xs:string">
      <xs:enumeration value="none" />
      <xs:enumeration value="simplemax" />
      <xs:enumeration value="softmax" />
      <xs:enumeration value="logit" />
      <xs:enumeration value="probit" />
      <xs:enumeration value="cloglog" />
      <xs:enumeration value="exp" />
    </xs:restriction>
  </xs:simpleType>


  <xs:element name="RegressionTable">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:element ref="NumericPredictor" minOccurs="0" maxOccurs="unbounded" />
        <xs:element ref="CategoricalPredictor" minOccurs="0" maxOccurs="unbounded" />

        <xs:element ref="PredictorTerm" minOccurs="0" maxOccurs="unbounded" />

      </xs:sequence>
      <xs:attribute name="intercept" type="REAL-NUMBER" use="required" />
      <xs:attribute name="targetCategory" type="xs:string" />
    </xs:complexType>
  </xs:element>

  <xs:element name="NumericPredictor">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
      <xs:attribute name="name" type="FIELD-NAME" use="required" />
      <xs:attribute name="exponent" type="INT-NUMBER" default="1" />
      <xs:attribute name="coefficient" type="REAL-NUMBER" use="required" />
    </xs:complexType>
  </xs:element>

  <xs:element name="CategoricalPredictor">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
      <xs:attribute name="name" type="FIELD-NAME" use="required" />
      <xs:attribute name="value" type="xs:string" use="required" />
      <xs:attribute name="coefficient" type="REAL-NUMBER" use="required" />
    </xs:complexType>
  </xs:element>


  <xs:element name="PredictorTerm">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:element ref="FieldRef" minOccurs="1" maxOccurs="unbounded" />
      </xs:sequence>
      <xs:attribute name="coefficient" type="REAL-NUMBER" use="required" />
    </xs:complexType>
  </xs:element>





  <xs:element name="RuleSetModel">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element ref="MiningSchema"/>
        <xs:element ref="Output" minOccurs="0" />
        <xs:element ref="ModelStats" minOccurs="0"/>
        <xs:element ref="Targets" minOccurs="0" />

        <xs:element ref="LocalTransformations" minOccurs="0" />

        <xs:element ref="RuleSet"/>
        <xs:element ref="ModelVerification" minOccurs="0"/>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="modelName" type="xs:string" use="optional"/>
      <xs:attribute name="functionName" type="MINING-FUNCTION" use="required" />
      <xs:attribute name="algorithmName" type="xs:string" use="optional"/>
    </xs:complexType>
  </xs:element>





  <xs:element name="RuleSet">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:element ref="RuleSelectionMethod" minOccurs="1" maxOccurs="unbounded"/>
        <xs:element ref="ScoreDistribution" minOccurs="0" maxOccurs="unbounded"/>
        <xs:group ref="Rule" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="recordCount" type="NUMBER" use="optional"/>
      <xs:attribute name="nbCorrect" type="NUMBER" use="optional"/>
      <xs:attribute name="defaultScore" type="xs:string" use="optional"/>
      <xs:attribute name="defaultConfidence" type="NUMBER" use="optional"/>
    </xs:complexType>
  </xs:element>





  <xs:element name="RuleSelectionMethod">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
      <xs:attribute name="criterion" use="required">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="weightedSum"/>
            <xs:enumeration value="weightedMax"/>
            <xs:enumeration value="firstHit"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:complexType>
  </xs:element>





  <xs:group name="Rule">
    <xs:choice>
      <xs:element ref="SimpleRule" />
      <xs:element ref="CompoundRule" />
    </xs:choice>
  </xs:group>





  <xs:element name="SimpleRule">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
         <xs:group ref="PREDICATE"/>
         <xs:element ref="ScoreDistribution" minOccurs="0" maxOccurs="unbounded"/>
       </xs:sequence>
       <xs:attribute name="id" type="xs:string" use="optional"/>
       <xs:attribute name="score" type="xs:string" use="required"/>
       <xs:attribute name="recordCount" type="NUMBER" use="optional"/>
       <xs:attribute name="nbCorrect" type="NUMBER" use="optional"/>
       <xs:attribute name="confidence" type="NUMBER" use="optional"/>
     <xs:attribute name="weight" type="NUMBER" use="optional"/>
   </xs:complexType>
 </xs:element>





  <xs:element name="CompoundRule">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:group ref="PREDICATE" />
        <xs:group ref="Rule" minOccurs="1" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>





  <xs:element name="SupportVectorMachineModel">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element ref="MiningSchema"/>
        <xs:element ref="Output" minOccurs="0" />
        <xs:element ref="ModelStats" minOccurs="0"/>
        <xs:element ref="Targets" minOccurs="0" />

        <xs:element ref="LocalTransformations" minOccurs="0" />

        <xs:sequence>
          <xs:choice>
            <xs:element ref="LinearKernelType"/>
            <xs:element ref="PolynomialKernelType"/>
            <xs:element ref="RadialBasisKernelType"/>
            <xs:element ref="SigmoidKernelType"/>
          </xs:choice>
        </xs:sequence>
        <xs:element ref="VectorDictionary" minOccurs="0"/>
        <xs:element ref="SupportVectorMachine"/>
        <xs:element ref="ModelVerification" minOccurs="0"/>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="modelName" type="xs:string" use="optional"/>
      <xs:attribute name="functionName" type="MINING-FUNCTION" use="required" />
      <xs:attribute name="algorithmName" type="xs:string" use="optional"/>
      <xs:attribute name="svmRepresentation" type="SVM-REPRESENTATION" use="optional" default="SupportVectors"/>
    </xs:complexType>
  </xs:element>

  <xs:element name="SupportVectorMachine">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:element ref="SupportVectors" minOccurs="0"/>
        <xs:element ref="Coefficients"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>





  <xs:simpleType name="SVM-REPRESENTATION">
    <xs:restriction base="xs:string">
      <xs:enumeration value="SupportVectors"/>
      <xs:enumeration value="Coefficients"/>
    </xs:restriction>
  </xs:simpleType>





  <xs:element name="LinearKernelType">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
      <xs:attribute name="description" type="xs:string" use="optional"/>
    </xs:complexType>
  </xs:element>

  <xs:element name="PolynomialKernelType">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
      <xs:attribute name="description" type="xs:string" use="optional"/>
      <xs:attribute name="gamma" type="REAL-NUMBER" use="optional" default="1"/>
      <xs:attribute name="coef0" type="REAL-NUMBER" use="optional" default="1"/>
      <xs:attribute name="degree" type="REAL-NUMBER" use="optional" default="1"/>
    </xs:complexType>
  </xs:element>

  <xs:element name="RadialBasisKernelType">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
      <xs:attribute name="description" type="xs:string" use="optional"/>
      <xs:attribute name="gamma" type="REAL-NUMBER" use="optional" default="1"/>
    </xs:complexType>
  </xs:element>

  <xs:element name="SigmoidKernelType">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
      <xs:attribute name="description" type="xs:string" use="optional"/>
      <xs:attribute name="gamma" type="REAL-NUMBER" use="optional" default="1"/>
      <xs:attribute name="coef0" type="REAL-NUMBER" use="optional" default="1"/>
    </xs:complexType>
  </xs:element>





  <xs:simpleType name="VECTOR-ID">
    <xs:restriction base="xs:string"/>
  </xs:simpleType>

  <xs:element name="VectorDictionary">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:element ref="VectorInstance" minOccurs="1" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="numberOfVectors" type="INT-NUMBER" use="optional"/>
    </xs:complexType>
  </xs:element>

  <xs:element name="VectorInstance">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:choice>
          <xs:element ref="REAL-SparseArray"/>
          <xs:group ref="REAL-ARRAY"/>
        </xs:choice>
      </xs:sequence>
      <xs:attribute name="id" type="VECTOR-ID" use="required"/>
    </xs:complexType>
  </xs:element>





  <xs:element name="SupportVectors">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:element ref="SupportVector" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="numberOfSupportVectors" type="INT-NUMBER" use="optional"/>
      <xs:attribute name="numberOfAttributes" type="INT-NUMBER" use="optional"/>
    </xs:complexType>
  </xs:element>

  <xs:element name="SupportVector">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
      <xs:attribute name="vectorId" type="VECTOR-ID" use="required"/>
    </xs:complexType>
  </xs:element>





  <xs:element name="Coefficients">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:element ref="Coefficient" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="numberOfCoefficients" type="INT-NUMBER" use="optional"/>
      <xs:attribute name="absoluteValue" type="REAL-NUMBER" use="optional" default="0"/>
    </xs:complexType>
  </xs:element>

  <xs:element name="Coefficient">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
      <xs:attribute name="value" type="REAL-NUMBER" use="optional" default="0"/>
    </xs:complexType>
  </xs:element>





  <xs:element name="TextModel">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element ref="MiningSchema" />
        <xs:element ref="Output" minOccurs="0" />
        <xs:element ref="ModelStats" minOccurs="0" />
        <xs:element ref="Targets" minOccurs="0" />

        <xs:element ref="LocalTransformations" minOccurs="0" />

        <xs:element ref="TextDictionary" />
        <xs:element ref="TextCorpus" />
        <xs:element ref="DocumentTermMatrix" />
        <xs:element ref="TextModelNormalization" minOccurs="0" />
        <xs:element ref="TextModelSimiliarity" minOccurs="0" />
        <xs:element ref="ModelVerification" minOccurs="0"/>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="modelName" type="xs:string" />
      <xs:attribute name="functionName" type="MINING-FUNCTION" use="required" />
      <xs:attribute name="algorithmName" type="xs:string" />
      <xs:attribute name="numberOfTerms" type="xs:integer" use="required" />
      <xs:attribute name="numberOfDocuments" type="xs:integer" use="required" />
    </xs:complexType>
  </xs:element>





  <xs:element name="TextDictionary">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:element ref="Taxonomy" minOccurs="0" />
        <xs:group ref="STRING-ARRAY"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>





  <xs:element name="TextCorpus">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:element ref="TextDocument" minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>





  <xs:element name="TextDocument">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
      <xs:attribute name="id" type="xs:string" use="required" />
      <xs:attribute name="name" type="xs:string" use="optional" />
      <xs:attribute name="length" type="INT-NUMBER" use="optional" />
      <xs:attribute name="file" type="xs:string" use="optional" />
    </xs:complexType>
  </xs:element>





  <xs:element name="DocumentTermMatrix">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:element ref="Matrix"/> 
      </xs:sequence>
    </xs:complexType>
  </xs:element>





  <xs:element name="TextModelNormalization" >
    <xs:complexType >
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
      <xs:attribute name="localTermWeights" default="termFrequency" >
        <xs:simpleType >
          <xs:restriction base="xs:string" >
            <xs:enumeration value="termFrequency" />
            <xs:enumeration value="binary" />
            <xs:enumeration value="logarithmic" />
            <xs:enumeration value="augmentedNormalizedTermFrequency" />
          </xs:restriction >
        </xs:simpleType >
      </xs:attribute >
      <xs:attribute name="globalTermWeights" default="inverseDocumentFrequency" >
        <xs:simpleType >
          <xs:restriction base="xs:string" >
            <xs:enumeration value="inverseDocumentFrequency" />
            <xs:enumeration value="none" />
            <xs:enumeration value="GFIDF" />
            <xs:enumeration value="normal" />
            <xs:enumeration value="probabilisticInverse" />
          </xs:restriction >
        </xs:simpleType >
      </xs:attribute >
      <xs:attribute name="documentNormalization" default="none" >
        <xs:simpleType >
          <xs:restriction base="xs:string" >
            <xs:enumeration value="none" />
            <xs:enumeration value="cosine" />
          </xs:restriction >
        </xs:simpleType >
      </xs:attribute >
    </xs:complexType >
  </xs:element >





  <xs:element name="TextModelSimiliarity">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
      <xs:attribute name="similarityType" >
        <xs:simpleType >
          <xs:restriction base="xs:string" >
            <xs:enumeration value="euclidean" />
            <xs:enumeration value="cosine" />
          </xs:restriction >
        </xs:simpleType >
      </xs:attribute >
    </xs:complexType>
  </xs:element>





  <xs:element name="GeneralRegressionModel">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="Extension" />
        
        <xs:element ref="MiningSchema" />

        <xs:element minOccurs="0" ref="Output" />
        
        <xs:element minOccurs="0" ref="ModelStats" />
        
        <xs:element minOccurs="0" ref="Targets" />
        <xs:element minOccurs="0" ref="LocalTransformations" />
        
        <xs:element ref="ParameterList" />
        <xs:element minOccurs="0" ref="FactorList" />
        <xs:element minOccurs="0" ref="CovariateList" />
        <xs:element minOccurs="0" ref="PPMatrix" />
        <xs:element minOccurs="0" ref="PCovMatrix" />
        <xs:element ref="ParamMatrix" />
        <xs:element ref="ModelVerification" minOccurs="0"/>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="targetVariableName" type="FIELD-NAME" />
      
      <xs:attribute name="modelType" use="required">
        <xs:simpleType>
        
          <xs:restriction base="xs:string">
            <xs:enumeration value="regression" />
            <xs:enumeration value="generalLinear" />
            <xs:enumeration value="multinomialLogistic" />
          </xs:restriction>
          
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="modelName" type="xs:string" />
      <xs:attribute name="functionName" type="MINING-FUNCTION" use="required" />
      <xs:attribute name="algorithmName" type="xs:string" />
    </xs:complexType>
  </xs:element>

  <xs:element name="ParameterList">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element maxOccurs="unbounded" ref="Parameter" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="Parameter">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="name" type="xs:string" use="required" />
      <xs:attribute name="label" type="xs:string" />
    </xs:complexType>
  </xs:element>

  <xs:element name="FactorList">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="Predictor" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="CovariateList">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="Predictor" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="Predictor">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="name" type="FIELD-NAME" use="required" />
    </xs:complexType>
  </xs:element>

  <xs:element name="PPMatrix">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element maxOccurs="unbounded" ref="PPCell" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="PPCell">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="value" type="xs:string" use="required" />
      <xs:attribute name="predictorName" type="FIELD-NAME" use="required" />
      <xs:attribute name="parameterName" type="xs:string" use="required" />
      <xs:attribute name="targetCategory" type="xs:string" />
    </xs:complexType>
  </xs:element>

  <xs:element name="PCovMatrix">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element maxOccurs="unbounded" ref="PCovCell" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="PCovCell">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="pRow" type="xs:string" use="required" />
      <xs:attribute name="pCol" type="xs:string" use="required" />
      <xs:attribute name="tRow" type="xs:string" />
      <xs:attribute name="tCol" type="xs:string" />
      <xs:attribute name="value" type="REAL-NUMBER" use="required" />
      <xs:attribute name="targetCategory" type="xs:string" />
    </xs:complexType>
  </xs:element>

  <xs:element name="ParamMatrix">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element maxOccurs="unbounded" ref="PCell" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="PCell">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="targetCategory" type="xs:string" />
      <xs:attribute name="parameterName" type="xs:string" use="required" />
      <xs:attribute name="beta" type="REAL-NUMBER" use="required" />
      <xs:attribute name="df" type="INT-NUMBER" />
    </xs:complexType>
  </xs:element>





  <xs:element name="SequenceModel">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element ref="MiningSchema"/>
        <xs:element ref="ModelStats" minOccurs="0"/>

        <xs:element ref="LocalTransformations" minOccurs="0" />

        <xs:element ref="Item" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element ref="Itemset" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element ref="SetPredicate" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element ref="Sequence" maxOccurs="unbounded"/>
        <xs:element ref="SequenceRule" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="modelName" type="xs:string"/>
      <xs:attribute name="functionName" type="MINING-FUNCTION" use="required"/>
      <xs:attribute name="algorithmName" type="xs:string"/>
      <xs:attribute name="numberOfTransactions" type="INT-NUMBER" use="required"/>
      <xs:attribute name="maxNumberOfItemsPerTransaction" type="INT-NUMBER"/>
      <xs:attribute name="avgNumberOfItemsPerTransaction" type="REAL-NUMBER"/>
      <xs:attribute name="minimumSupport" type="REAL-NUMBER" use="required"/>
      <xs:attribute name="minimumConfidence" type="REAL-NUMBER" use="required"/>
      <xs:attribute name="lengthLimit" type="INT-NUMBER"/>
      <xs:attribute name="numberOfItems" type="INT-NUMBER" use="required"/>
      <xs:attribute name="numberOfSets" type="INT-NUMBER" use="required"/>
      <xs:attribute name="numberOfSequences" type="INT-NUMBER" use="required"/>
      <xs:attribute name="numberOfRules" type="INT-NUMBER" use="required"/>
      <xs:attribute name="timeWindowWidth" type="INT-NUMBER"/>
      <xs:attribute name="minimumTime" type="INT-NUMBER"/>
      <xs:attribute name="maximumTime" type="INT-NUMBER"/>
    </xs:complexType>
  </xs:element> 





  <xs:simpleType name="ELEMENT-ID">  
    <xs:restriction base="xs:string">
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="SetPredicate">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:group ref="STRING-ARRAY"/>
      </xs:sequence>
      <xs:attribute name="id" type="ELEMENT-ID" use="required"/>
      <xs:attribute name="field" type="FIELD-NAME" use="required"/>
      <xs:attribute name="operator" type="xs:string" fixed="supersetOf"/>
    </xs:complexType>
  </xs:element>





  <xs:simpleType name="DELIMITER">
    <xs:restriction base="xs:string">
      <xs:enumeration value="sameTimeWindow"/>
      <xs:enumeration value="acrossTimeWindows"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="GAP">
    <xs:restriction base="xs:string">
      <xs:enumeration value="true"/>
      <xs:enumeration value="false"/>
      <xs:enumeration value="unknown"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:element name="Delimiter">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
      <xs:attribute name="delimiter" type="DELIMITER" use="required"/>
      <xs:attribute name="gap" type="GAP" use="required"/>
    </xs:complexType>
  </xs:element>





  <xs:element name="Time">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
      <xs:attribute name="min" type="NUMBER" use="required"/>
      <xs:attribute name="max" type="NUMBER" use="required"/>
      <xs:attribute name="mean" type="NUMBER"/>
    </xs:complexType>
  </xs:element>





  <xs:group name="FOLLOW-SET">
    <xs:sequence>
      <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
      <xs:element ref="Delimiter"/>
      <xs:element ref="SetReference"/>
    </xs:sequence>
  </xs:group>

  <xs:element name="Sequence">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:element ref="SetReference"/>
        <xs:sequence minOccurs="0" maxOccurs="unbounded">
          <xs:group ref="FOLLOW-SET"/>
        </xs:sequence>
      </xs:sequence>
      <xs:attribute name="id" type="ELEMENT-ID" use="required"/>
      <xs:attribute name="numberOfSets" type="INT-NUMBER"/>
      <xs:attribute name="occurrence" type="INT-NUMBER"/>
      <xs:attribute name="support" type="REAL-NUMBER"/>
    </xs:complexType>
  </xs:element>





  <xs:element name="SetReference">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
      <xs:attribute name="setId" type="ELEMENT-ID" use="required"/>
    </xs:complexType>
  </xs:element>





  <xs:element name="SequenceRule">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:element ref="AntecedentSequence"/>
        <xs:element ref="Delimiter"/>
        <xs:element ref="Time" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element ref="ConsequentSequence"/>
      </xs:sequence>
      <xs:attribute name="id" type="ELEMENT-ID" use="required"/>
      <xs:attribute name="numberOfSets" type="INT-NUMBER" use="required"/>
      <xs:attribute name="occurrence" type="INT-NUMBER" use="required"/>
      <xs:attribute name="support" type="REAL-NUMBER" use="required"/>
      <xs:attribute name="confidence" type="REAL-NUMBER" use="required"/>
    </xs:complexType>
  </xs:element>





  <xs:group name="SEQUENCE">
    <xs:sequence>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
      <xs:element ref="SequenceReference"/>
      <xs:element ref="Time" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:group>

  <xs:element name="SequenceReference">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
      <xs:attribute name="seqId" type="ELEMENT-ID" use="required"/>
    </xs:complexType>
  </xs:element>

  <xs:element name="AntecedentSequence">
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="SEQUENCE"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="ConsequentSequence">
    <xs:complexType>
      <xs:sequence>
        <xs:group ref="SEQUENCE"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>





  <xs:element name="NaiveBayesModel">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:element ref="MiningSchema"/>
        
        <xs:element ref="Output" minOccurs="0" />
        <xs:element ref="ModelStats" minOccurs="0"/>
        
        <xs:element ref="Targets" minOccurs="0" />

        <xs:element ref="LocalTransformations" minOccurs="0" />

        <xs:element ref="BayesInputs" />
        <xs:element ref="BayesOutput" />
        <xs:element ref="ModelVerification" minOccurs="0"/>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="modelName" type="xs:string" />
      <xs:attribute name="threshold" type="REAL-NUMBER" use="required"/>
      <xs:attribute name="functionName" type="MINING-FUNCTION" use="required" />
      <xs:attribute name="algorithmName" type="xs:string" />
    </xs:complexType>
  </xs:element>





  <xs:element name="BayesInputs">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:element maxOccurs="unbounded" ref="BayesInput" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  




  <xs:element name="BayesInput">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:element minOccurs="0" ref="DerivedField" />
        <xs:element maxOccurs="unbounded" ref="PairCounts" />
      </xs:sequence>
      <xs:attribute name="fieldName" type="xs:string" use="required" />
    </xs:complexType>
  </xs:element>





  <xs:element name="BayesOutput">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:element ref="TargetValueCounts" />
      </xs:sequence>
      <xs:attribute name="fieldName" type="xs:string" use="required" />
    </xs:complexType>
  </xs:element>





  <xs:element name="PairCounts">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:element ref="TargetValueCounts" />
      </xs:sequence>
      <xs:attribute name="value" type="xs:string" use="required" />
    </xs:complexType>
  </xs:element>





  <xs:element name="TargetValueCounts">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:element maxOccurs="unbounded" ref="TargetValueCount" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="TargetValueCount">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
      <xs:attribute name="value" type="xs:string" use="required" />
      <xs:attribute name="count" type="REAL-NUMBER" use="required" />
    </xs:complexType>
  </xs:element>




   <xs:element name="ModelVerification">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:element ref="VerificationFields" />
        <xs:element ref="InlineTable" />
      </xs:sequence>
      <xs:attribute name="recordCount" type="INT-NUMBER" use="optional"/>
      <xs:attribute name="fieldCount" type="INT-NUMBER" use="optional"/>
    </xs:complexType>
  </xs:element>

  <xs:element name="VerificationFields">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:element maxOccurs="unbounded" ref="VerificationField" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="VerificationField">
   <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
      <xs:attribute name="field" type="xs:string" use="required" />
      <xs:attribute name="column" type="xs:string" use="optional" />
      <xs:attribute name="precision" type="xs:double" default="1E-6"/>
      <xs:attribute name="zeroThreshold" type="xs:double" default="1E-16"/>
    </xs:complexType>
  </xs:element>





  <xs:group name="EmbeddedModel">
    <xs:sequence>
      <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
      <xs:choice>
        <xs:element ref="Regression" />
        <xs:element ref="DecisionTree" />
      </xs:choice>
    </xs:sequence>
  </xs:group>





  <xs:element name="Regression">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:element ref="LocalTransformations" minOccurs="0" />
        <xs:element ref="ResultField" minOccurs="0" maxOccurs="unbounded" />
        <xs:element ref="RegressionTable" maxOccurs="unbounded" />
      </xs:sequence>
      <xs:attribute name="modelName" type="xs:string" />
      <xs:attribute name="functionName" type="MINING-FUNCTION" use="required" />
      <xs:attribute name="algorithmName" type="xs:string" />
      <xs:attribute name="normalizationMethod" type="REGRESSIONNORMALIZATIONMETHOD" default="none" />
    </xs:complexType>
  </xs:element>





  <xs:element name="DecisionTree">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded" />
        <xs:element ref="LocalTransformations" minOccurs="0" />
        <xs:element ref="ResultField" minOccurs="0" maxOccurs="unbounded" />
        <xs:element ref="Node" />
      </xs:sequence>
      <xs:attribute name="modelName" type="xs:string" />
      <xs:attribute name="functionName" type="MINING-FUNCTION" use="required" />
      <xs:attribute name="algorithmName" type="xs:string" />
      <xs:attribute name="splitCharacteristic" default="multiSplit">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="binarySplit" />
            <xs:enumeration value="multiSplit" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:complexType>
  </xs:element>





  <xs:element name="MiningModel">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
        <xs:element ref="MiningSchema"/>
        <xs:element ref="Output" minOccurs="0"/>
        <xs:element ref="ModelStats" minOccurs="0"/>
        <xs:element ref="Targets" minOccurs="0"/>
        <xs:element ref="LocalTransformations" minOccurs="0" />
        <xs:choice maxOccurs="unbounded">
          <xs:element ref="Regression"/>
          <xs:element ref="DecisionTree"/>
        </xs:choice>
        <xs:element ref="ModelVerification" minOccurs="0"/>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="modelName" type="xs:string" use="optional"/>
      <xs:attribute name="functionName" type="MINING-FUNCTION" use="required"/>
      <xs:attribute name="algorithmName" type="xs:string" use="optional"/>
    </xs:complexType>
  </xs:element>





  <xs:element name="ResultField">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Extension" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
      <xs:attribute name="name" type="FIELD-NAME" use="required" />
      <xs:attribute name="displayName" type="xs:string" />
      <xs:attribute name="optype" type="OPTYPE" />
      <xs:attribute name="dataType" type="DATATYPE"/>
      <xs:attribute name="feature" type="RESULT-FEATURE" />
      <xs:attribute name="value" type="xs:string" />
    </xs:complexType>
  </xs:element>



 </xs:schema>
