﻿<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <xs:include schemaLocation="WTIStabilityModel.xsd" />

  <xs:simpleType name="DistributionType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Deterministic" />
      <xs:enumeration value="Normal" />
      <xs:enumeration value="LogNormal" />
    </xs:restriction>
  </xs:simpleType>

  <xs:complexType name ="StochastType">
    <xs:attribute name="DistributionType" type="DistributionType" use="required" />
    <xs:attribute name="Mean" type="xs:double" use="required" />
    <xs:attribute name="Deviation" type="xs:double" use="required" />
    <xs:attribute name="Shift" type="xs:double" use="required" />
  </xs:complexType>

  <xs:complexType name="StochasticSoilType">
    <xs:complexContent>
      <xs:extension base="SoilType">
        <xs:sequence>
          <xs:element name="CohesionStochast" type="StochastType" />
          <xs:element name="FrictionAngleStochast" type="StochastType"/>
          <xs:element name="POPStochast" type="StochastType" />
          <xs:element name="RatioCuPcStochast" type="StochastType"/>
          <xs:element name="StrengthIncreaseExponentStochast" type="StochastType"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="StochasticSoilModelType">
    <xs:sequence>
      <xs:element name="Soils">
        <xs:complexType>
          <xs:sequence>
            <xs:element maxOccurs="unbounded" name="Soil" type="StochasticSoilType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="StochasticPreconsolidationStressType">
    <xs:complexContent>
      <xs:extension base="PreconsolidationStressType">
        <xs:sequence>
          <xs:element name="StressStochast" type="StochastType" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="StochasticPreconsolidationStressListType">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="PreconsolidationStress" type="StochasticPreconsolidationStressType"/>
    </xs:sequence>
    <xs:attribute name="PreconsolidationStressModelFactor" type="xs:double" use="required" />
  </xs:complexType>

  <xs:complexType name="WTIStochasticStabilityModelType">
    <xs:sequence>
      <xs:element name="SoilModel" type="StochasticSoilModelType"/>
      <xs:element name="SoilProfile" type="SoilProfileType"/>
      <xs:element name="SurfaceLine" type="SurfaceLineType" />
      <xs:element name="Location" type="LocationType"/>
      <xs:element name="PreconsolidationStresses" type="StochasticPreconsolidationStressListType"/>
      <xs:element name="UniformLoads" type="UniformLoadsType"/>
      <xs:element name="ModelUncertaintyParameterStochast"  type="StochastType" />
      <xs:element name="ConsolidationValues" type="ConsolidationValuesType"/>
      <xs:element name="MultiplicationFactorsCPhiForUplift" type="MultiplicationFactorsCPhiForUpliftType"/>
      <xs:element name="Waternet" type="WaternetType"/>
      <xs:element name="SpencerSlipPlanes" type="SpencerSlipPlanesType"/>
      <xs:element name="UpliftVanCalculationGrid" type="UpliftVanCalculationGridType"/>
      <xs:element name="SlipPlaneConstraints" type="SlipPlaneConstraintsType"/>
      <xs:element name="GeneticAlgorithmOptions" type="GeneticAlgorithmOptionsType"/>
      <xs:element name="LevenbergMarquardtOptions" type="LevenbergMarquardtOptionsType" />
    </xs:sequence>
    <xs:attribute name="ModelUncertaintyParameter" type="xs:double" use="required" />
    <xs:attribute name="OnlyMinimumSafetyCurve" type="xs:boolean" use="required" />
    <xs:attribute name="ModelOption" type="ModelOptionType" use="required" />
    <xs:attribute name="SearchAlgorithm" type="SearchAlgorithmType" use="required" />
    <xs:attribute name="MaximumSliceWidth" type="xs:double" use="required" />
    <xs:attribute name="MoveGrid" type="xs:boolean" use="required" />
  </xs:complexType>

  <xs:element name="WTIStochasticStabilityModel" type="WTIStochasticStabilityModelType" />

</xs:schema>