﻿<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <!--<xs:include schemaLocation="WTIWaternet.xsd" />-->

  <xs:complexType name="PointType">
    <xs:attribute name="X" type="xs:double" use="required" />
    <xs:attribute name="Z" type="xs:double" use="required" />
  </xs:complexType>

  <xs:complexType name="SliceType">
    <xs:sequence>
      <xs:element name="TopLeftPoint" type="PointType"/>
      <xs:element name="TopRightPoint" type="PointType"/>
      <xs:element name="BottomLeftPoint" type="PointType"/>
      <xs:element name="BottomRightPoint" type="PointType"/>
    </xs:sequence>
    <xs:attribute name="Cohesion" type="xs:double" use="required" />
    <xs:attribute name="FrictionAngle" type="xs:double" use="required" />
    <xs:attribute name="CriticalPressure" type="xs:double" use="required" />
    <xs:attribute name="OCR" type="xs:double" use="required" />
    <xs:attribute name="POP" type="xs:double" use="required" />
    <xs:attribute name="DegreeofConsolidationPorePressure" type="xs:double" use="required" />
    <xs:attribute name="PorePressureDueToDegreeOfConsolidationLoad" type="xs:double" use="required" />
    <xs:attribute name="Dilatancy" type="xs:double" use="required" />
    <xs:attribute name="ExternalLoad" type="xs:double" use="required" />
    <xs:attribute name="HydrostaticPorePressure" type="xs:double" use="required" />
    <xs:attribute name="LeftForce" type="xs:double" use="required" />
    <xs:attribute name="LeftForceAngle" type="xs:double" use="required" />
    <xs:attribute name="LeftForceY" type="xs:double" use="required" />
    <xs:attribute name="RightForce" type="xs:double" use="required" />
    <xs:attribute name="RightForceAngle" type="xs:double" use="required" />
    <xs:attribute name="RightForceY" type="xs:double" use="required" />
    <xs:attribute name="LoadStress" type="xs:double" use="required" />
    <xs:attribute name="NormalStress" type="xs:double" use="required" />
    <xs:attribute name="PorePressure" type="xs:double" use="required" />
    <xs:attribute name="HorizontalPorePressure" type="xs:double" use="required" />
    <xs:attribute name="VerticalPorePressure" type="xs:double" use="required" />
    <xs:attribute name="PiezometricPorePressure" type="xs:double" use="required" />
    <xs:attribute name="EffectiveStress" type="xs:double" use="required" />
    <xs:attribute name="ExcessPorePressure" type="xs:double" use="required" />
    <xs:attribute name="ShearStress" type="xs:double" use="required" />
    <xs:attribute name="SoilStress" type="xs:double" use="required" />
    <xs:attribute name="TotalPorePressure" type="xs:double" use="required" />
    <xs:attribute name="TotalStress" type="xs:double" use="required" />
    <xs:attribute name="Weight" type="xs:double" use="required" />
  </xs:complexType>

  <xs:simpleType name="CurveType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Circle" />
      <xs:enumeration value="DualCircle" />
      <xs:enumeration value="Plane" />
    </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="MinimumSafetyCurveType">
    <xs:sequence>
      <xs:element name="Slices">
        <xs:complexType>
          <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="unbounded" name="Slice" type="SliceType"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
    <xs:attribute name="CurveType" type="CurveType" use="required" />
    <xs:attribute name="ActiveCircleCenterX" type="xs:double" use="optional" />
    <xs:attribute name="ActiveCircleCenterZ" type="xs:double" use="optional" />
    <xs:attribute name="ActiveCircleRadius" type="xs:double" use="optional" />
    <xs:attribute name="PassiveCircleCenterX" type="xs:double" use="optional" />
    <xs:attribute name="PassiveCircleCenterZ" type="xs:double" use="optional" />
    <xs:attribute name="PassiveCircleRadius" type="xs:double" use="optional" />
    <xs:attribute name="NonIteratedHorizontaleForce" type="xs:double" use="optional" />
    <xs:attribute name="NonIteratedActiveForce" type="xs:double" use="optional" />
    <xs:attribute name="NonIteratedPassiveForce" type="xs:double" use="optional" />
    <xs:attribute name="IteratedHorizontaleForce" type="xs:double" use="optional" />
    <xs:attribute name="IteratedActiveForce" type="xs:double" use="optional" />
    <xs:attribute name="IteratedPassiveForce" type="xs:double" use="optional" />
    <xs:attribute name="DrivingMomentActive" type="xs:double" use="optional" />
    <xs:attribute name="DrivingMomentPassive" type="xs:double" use="optional" />
    <xs:attribute name="ResistingMomentActive" type="xs:double" use="optional" />
    <xs:attribute name="ResistingMomentPassive" type="xs:double" use="optional" />
    <xs:attribute name="LeftCircleIsActive" type="xs:boolean" use="optional" />
  </xs:complexType>
  <xs:simpleType name="MessageType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Info" />
      <xs:enumeration value="Warning" />
      <xs:enumeration value="Error" />
    </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="MessagesType">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Message">
        <xs:complexType>
          <xs:attribute name="MessageType" type="MessageType" use="required" />
          <xs:attribute name="Message" type="xs:string" use="required" />
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="WTIStabilityModelResultType">
    <xs:sequence>
      <xs:element name="Waternet" type="WaternetType"/>
      <xs:element name="MinimumSafetyCurve" type="MinimumSafetyCurveType"/>
      <xs:element name="Messages" type="MessagesType"/>
    </xs:sequence>
    <xs:attribute name="Succeeded" type="xs:boolean" use="required" />
    <xs:attribute name="SafetyFactor" type="xs:double" use="required" />
    <xs:attribute name="ZValue" type="xs:double" use="required" />
  </xs:complexType>

  <xs:element name="WTIStabilityModelResult" type="WTIStabilityModelResultType" />

</xs:schema>