<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" version="0.30">

   <xsd:element name="fleurInput" type="FleurInputType"/>
   
   <xsd:complexType name="FleurInputType">
      <xsd:all>
         <xsd:element maxOccurs="1" minOccurs="0" name="comment" type="xsd:string"/>
         <xsd:element maxOccurs="1" minOccurs="0" name="constants" type="ConstDefGroupType"/>
         <xsd:element name="calculationSetup" type="CalculationSetupType"/>
         <xsd:element name="cell" type="CellType"/>
         <xsd:element name="xcFunctional" type="XCFunctionalType"/>
         <xsd:element name="atomSpecies" type="AtomSpeciesType"/>
         <xsd:element name="atomGroups" type="AtomGroupsType"/>
         <xsd:element maxOccurs="1" minOccurs="0" name="output" type="OutputType"/>
	 <xsd:element maxOccurs="1" minOccurs="0" name="forceTheorem" type="ForcetheoremType"/>
	 <xsd:element maxOccurs="1" minOccurs="0" name="relaxation" type="RelaxationType"/>
      </xsd:all>
      <xsd:attribute name="fleurInputVersion" type="FleurVersionType" use="required"/>
   </xsd:complexType>

   <xsd:simpleType name="FleurVersionType">
      <xsd:restriction base="xsd:string">
         <xsd:enumeration value="0.27"/>
         <xsd:enumeration value="0.28"/>
         <xsd:enumeration value="0.29"/>
         <xsd:enumeration value="0.30"/>
      </xsd:restriction>
   </xsd:simpleType>

   <xsd:complexType name="ConstDefGroupType">
      <xsd:sequence>
         <xsd:element maxOccurs="unbounded" minOccurs="0" name="constant" type="ConstantDefinitionType"/>
      </xsd:sequence>
   </xsd:complexType>

   <xsd:complexType name="ConstantDefinitionType">
      <xsd:attribute name="name" type="xsd:string"/>
      <xsd:attribute name="value" type="xsd:string"/>
   </xsd:complexType>
   
   <xsd:complexType name="CalculationSetupType">
      <xsd:all>
         <xsd:element name="cutoffs" type="CutoffsType"/>
         <xsd:element name="scfLoop" type="SCFLoopType"/>
         <xsd:element name="coreElectrons" type="CoreElectronsType"/>
         <xsd:element name="magnetism" type="MagnetismType"/>
         <xsd:element name="bzIntegration" type="BZIntegrationType"/>
         <xsd:element maxOccurs="1" minOccurs="0" name="prodBasis" type="ProdBasisIRType"/>
         <xsd:element maxOccurs="1" minOccurs="0" name="soc" type="SOCType"/>
         <xsd:element maxOccurs="1" minOccurs="0" name="nocoParams" type="NocoParamsType"/>
         <xsd:element maxOccurs="1" minOccurs="0" name="oneDParams" type="OneDParamType"/>
         <xsd:element maxOccurs="1" minOccurs="0" name="expertModes" type="ExpertModeType"/>
         <xsd:element maxOccurs="1" minOccurs="0" name="geometryOptimization" type="GeometryOptimizerType"/>
         <xsd:element maxOccurs="1" minOccurs="0" name="ldaU" type="LdaUGeneralType"/>
         <xsd:element maxOccurs="1" minOccurs="0" name="rdmft" type="RDMFTType"/>
         <xsd:element maxOccurs="1" minOccurs="0" name="spinSpiralQPointMesh" type="SpinSpiralQPointMeshType"/>
         <xsd:element maxOccurs="1" minOccurs="0" name="fields" type="FieldType"/>
         <xsd:element maxOccurs="1" minOccurs="0" name="energyParameterLimits" type="EnergyParameterLimitsType"/>
      </xsd:all>
   </xsd:complexType>

   <xsd:complexType name="EnergyParameterLimitsType">
      <xsd:attribute name="ellow" type="xsd:string"/>
      <xsd:attribute name="elup" type="xsd:string"/>
   </xsd:complexType>

   <xsd:complexType name="FieldType">
      <xsd:sequence>
       <xsd:element maxOccurs="unbounded" minOccurs="0"  name="shape" type="xsd:string" />
     </xsd:sequence>
      <xsd:attribute default="0.0" name="b_field" type="xsd:string" use="optional"/>
      <xsd:attribute default="10.0" name="zsigma" type="xsd:string" use="optional"/>
      <xsd:attribute default="0.0" name="sig_b_1" type="xsd:string" use="optional"/>
      <xsd:attribute default="0.0" name="sig_b_2" type="xsd:string" use="optional"/>
      <xsd:attribute default="F" name="plot_charge" type="FleurBool" use="optional"/>
      <xsd:attribute default="F" name="plot_rho" type="FleurBool" use="optional"/>
      <xsd:attribute default="T" name="autocomp" type="FleurBool" use="optional"/>
      <xsd:attribute default="F" name="dirichlet" type="FleurBool" use="optional"/>
      <xsd:attribute default="F" name="eV" type="FleurBool" use="optional"/>
   </xsd:complexType>

   <xsd:complexType name="NocoParamsType">
      <xsd:sequence>
         <xsd:element name="qss" type="Double3DVecType"/>
         <xsd:element maxOccurs="1" minOccurs="0" name="qsc" type="Double3DVecType"/>
      </xsd:sequence>
      <xsd:attribute name="l_ss" type="FleurBool"/>
      <xsd:attribute name="l_mperp" type="FleurBool"/>
      <xsd:attribute name="l_constr" type="FleurBool"/>
      <xsd:attribute default="F" name="l_disp" type="FleurBool" use="optional"/>
      <xsd:attribute name="sso_opt" type="TripleFleurBool"/>
      <xsd:attribute name="mix_b" type="xsd:string"/>
      <xsd:attribute default="0.0" name="thetaJ" type="xsd:string" use="optional"/>
      <xsd:attribute default="0" name="nsh" type="xsd:nonNegativeInteger" use="optional"/>
      <xsd:attribute default="F" name="l_mtNocoPot" type="FleurBool" use="optional"/>
   </xsd:complexType>

   <xsd:complexType name="OneDParamType">
      <xsd:attribute name="d1" type="FleurBool"/>
      <xsd:attribute name="MM" type="xsd:integer"/>
      <xsd:attribute name="vM" type="xsd:integer"/>
      <xsd:attribute name="m_cyl" type="xsd:integer"/>
      <xsd:attribute name="chi" type="xsd:integer"/>
      <xsd:attribute name="rot" type="xsd:integer"/>
      <xsd:attribute name="invs1" type="FleurBool"/>
      <xsd:attribute name="zrfs1" type="FleurBool"/>
   </xsd:complexType>

   <xsd:complexType name="CoreElectronsType">
      <xsd:attribute name="ctail" type="FleurBool" use="required"/>
      <xsd:attribute default="F" name="frcor" type="FleurBool" use="optional"/>
      <xsd:attribute default="0" name="kcrel" type="xsd:integer" use="optional"/>
      <xsd:attribute default="0" name="coretail_lmax" type="xsd:integer" use="optional"/>
   </xsd:complexType>
   
   <xsd:complexType name="CellType">
      <xsd:sequence>
         <xsd:choice>
            <xsd:element name="symmetry" type="SymmetryType"/>
            <xsd:element name="symmetryFile" type="SymmetryFileType"/>
            <xsd:element name="symmetryOperations" type="SymmetryOperationsType"/>
         </xsd:choice>
         <xsd:choice>
            <xsd:element name="bulkLattice" type="BulkLatticeType"/>
            <xsd:element name="filmLattice" type="FilmLatticeType"/>
         </xsd:choice>
      </xsd:sequence>
   </xsd:complexType>

   <xsd:complexType name="SymmetryType">
      <xsd:attribute name="spgrp" type="SpgrpEnum" use="required"/>
      <xsd:attribute name="invs" type="FleurBool" use="required"/>
      <xsd:attribute name="zrfs" type="FleurBool" use="required"/>
   </xsd:complexType>

   <xsd:complexType name="SymmetryFileType">
      <xsd:attribute name="filename" type="xsd:string" use="required"/>
   </xsd:complexType>
   
   <xsd:complexType name="SymmetryOperationsType">
      <xsd:sequence>
         <xsd:element maxOccurs="48" minOccurs="1" name="symOp" type="SymOpMatrixType"/>
      </xsd:sequence>
   </xsd:complexType>

   <xsd:complexType name="MagnetismType">
      <xsd:attribute name="jspins" type="SpinNumberType" use="required"/>
      <xsd:attribute default="F" name="l_noco" type="FleurBool" use="optional"/>
      <xsd:attribute default="F" name="l_J" type="FleurBool" use="optional"/>
      <xsd:attribute default="F" name="swsp" type="FleurBool" use="optional"/>
      <xsd:attribute default="F" name="lflip" type="FleurBool" use="optional"/>
      <xsd:attribute default="0.0" name="fixed_moment" type="xsd:string" use="optional"/>
   </xsd:complexType>

   <xsd:simpleType name="SpinNumberType">
      <xsd:restriction base="xsd:integer">
         <xsd:minInclusive value="1"/>
         <xsd:maxInclusive value="2"/>
      </xsd:restriction>
   </xsd:simpleType>

   <xsd:complexType name="BulkLatticeType">
      <xsd:sequence>
         <xsd:choice>
            <xsd:sequence>
               <xsd:element name="a1" type="LatticeParameterType"/>
               <xsd:element minOccurs="0" name="a2" type="LatticeParameterType"/>
               <xsd:element name="c" type="LatticeParameterType"/>
            </xsd:sequence>
            <xsd:sequence>
               <xsd:element name="row-1" type="String2DVecType"/>
               <xsd:element name="row-2" type="String2DVecType"/>
               <xsd:element name="c" type="LatticeParameterType"/>
            </xsd:sequence>
            <xsd:element name="bravaisMatrix" type="BravaisMatrixType"/>
         </xsd:choice>
      </xsd:sequence>
      <xsd:attribute name="scale" type="xsd:string" use="required"/>
      <xsd:attribute name="latnam" type="LatnamEnum" use="required"/>
   </xsd:complexType>

   <xsd:complexType name="FilmLatticeType">
      <xsd:sequence>
         <xsd:choice>
            <xsd:sequence>
               <xsd:element name="a1" type="LatticeParameterType"/>
               <xsd:element minOccurs="0" name="a2" type="LatticeParameterType"/>
            </xsd:sequence>
            <xsd:sequence>
               <xsd:element name="row-1" type="String2DVecType"/>
               <xsd:element name="row-2" type="String2DVecType"/>
            </xsd:sequence>
            <xsd:element name="bravaisMatrix" type="BravaisMatrixType"/>
         </xsd:choice>
         <xsd:element minOccurs="0" maxOccurs="2" name="vacuumEnergyParameters" type="VacuumEnergyParameterType"/>
      </xsd:sequence>
      <xsd:attribute name="scale" type="xsd:string" use="required"/>
      <xsd:attribute name="latnam" type="LatnamEnum" use="required"/>
      <xsd:attribute name="dVac" type="xsd:string" use="required"/>
      <xsd:attribute name="dTilda" type="xsd:string" use="required"/>
   </xsd:complexType>

   <xsd:complexType name="LatticeParameterType">
      <xsd:simpleContent>
         <xsd:extension base="xsd:string">
            <xsd:attribute default="1.0" name="scale" type="xsd:string" use="optional"/>
         </xsd:extension>
      </xsd:simpleContent>
   </xsd:complexType>

   <xsd:complexType name="VacuumEnergyParameterType">
      <xsd:attribute name="vacuum" type="xsd:integer" use="required"/>
      <xsd:attribute name="spinUp" type="xsd:string" use="required"/>
      <xsd:attribute name="spinDown" type="xsd:string" use="optional"/>
   </xsd:complexType>

   <xsd:complexType name="BravaisMatrixType">
      <xsd:sequence>
         <xsd:element name="row-1" type="String3DVecType"/>
         <xsd:element name="row-2" type="String3DVecType"/>
         <xsd:element name="row-3" type="String3DVecType"/>
      </xsd:sequence>
   </xsd:complexType>

   <xsd:simpleType name="StringVecType">
      <xsd:list itemType="xsd:string"/>
   </xsd:simpleType>

   <xsd:simpleType name="String2DVecType">
      <xsd:restriction base="StringVecType">
         <xsd:length value="2"/>
      </xsd:restriction>
   </xsd:simpleType>

   <xsd:simpleType name="String3DVecType">
      <xsd:restriction base="StringVecType">
         <xsd:length value="3"/>
      </xsd:restriction>
   </xsd:simpleType>

   <xsd:simpleType name="TripleFleurBool">
      <xsd:restriction base="xsd:string">
         <xsd:pattern value="[FfTt][FfTt][FfTt]"/>
      </xsd:restriction>
   </xsd:simpleType>

   <xsd:simpleType name="DoubleVecType">
      <xsd:list itemType="xsd:double"/>
   </xsd:simpleType>

   <xsd:simpleType name="Double3DVecType">
      <xsd:restriction base="DoubleVecType">
         <xsd:length value="3"/>
      </xsd:restriction>
   </xsd:simpleType>
  
   <xsd:simpleType name="Double4DVecType">
      <xsd:restriction base="DoubleVecType">
         <xsd:length value="4"/>
      </xsd:restriction>
   </xsd:simpleType>

   <xsd:simpleType name="IntegerVecType">
      <xsd:list itemType="xsd:integer"/>
   </xsd:simpleType>

   <xsd:complexType name="SymOpMatrixType">
      <xsd:sequence>
         <xsd:element name="row-1" type="Double4DVecType"/>
         <xsd:element name="row-2" type="Double4DVecType"/>
         <xsd:element name="row-3" type="Double4DVecType"/>
      </xsd:sequence>
   </xsd:complexType>

   <xsd:complexType name="XCFunctionalType">
     <xsd:sequence>
         <xsd:element maxOccurs="1" minOccurs="0" name="LibXCID" type="XCLibXCIDType"/>
         <xsd:element maxOccurs="1" minOccurs="0" name="LibXCName" type="XCLibXCNameType"/>
         <xsd:element maxOccurs="1" minOccurs="0" name="xcParams" type="XCParamsType"/>
         <xsd:element maxOccurs="1" minOccurs="0" name="ggaPrinting" type="GGAPrintingType"/>
      </xsd:sequence>
      <xsd:attribute name="name" type="XCFunctionalEnum" use="required"/>
      <xsd:attribute default="F" name="relativisticCorrections" type="FleurBool" use="optional"/>
   </xsd:complexType>

   <xsd:complexType name="ProdBasisIRType">
     <xsd:attribute name="gcutm" type="xsd:double" use="required"/>
     <xsd:attribute name="bands" type="xsd:integer" use="required"/>
     <xsd:attribute name="tolerance" type="xsd:double" use="optional" default="0.00001"/>
     <xsd:attribute name="lexp" type="xsd:integer" use="optional" default="16"/>
     <xsd:attribute name="ewaldlambda" type="xsd:integer" use="optional" default="3"/>
   </xsd:complexType>
   
   <xsd:simpleType name="XCFunctionalEnum">
      <xsd:restriction base="xsd:string">
         <xsd:enumeration value="x-a"/>
         <xsd:enumeration value="mjw"/>
         <xsd:enumeration value="pz"/>
         <xsd:enumeration value="bh"/>
         <xsd:enumeration value="wign"/>
         <xsd:enumeration value="hl"/>
         <xsd:enumeration value="vwn"/>
         <xsd:enumeration value="xal"/>
         <xsd:enumeration value="l91"/>
         <xsd:enumeration value="pw91"/>
         <xsd:enumeration value="pbe"/>
         <xsd:enumeration value="rpbe"/>
         <xsd:enumeration value="Rpbe"/>
         <xsd:enumeration value="wc"/>
	 <xsd:enumeration value="PBEs"/>
	 <xsd:enumeration value="pbe0"/>
	 <xsd:enumeration value="hse"/>
	 <xsd:enumeration value="vhse"/>
	 <xsd:enumeration value="lhse"/>
	 <xsd:enumeration value="hf"/>
	 <xsd:enumeration value="LibXC"/>
      </xsd:restriction>
   </xsd:simpleType>
   <xsd:complexType name="XCLibXCIDType">
      <xsd:attribute name="exchange"         type="xsd:integer" use="required"/>
      <xsd:attribute name="correlation"      type="xsd:integer" use="required"/>
      <xsd:attribute name="etot_exchange"    type="xsd:integer" use="optional"/>
      <xsd:attribute name="etot_correlation" type="xsd:integer" use="optional"/>
   </xsd:complexType>
   <xsd:complexType name="XCLibXCNameType">
      <xsd:attribute name="exchange"         type="xsd:string" use="required"/>
      <xsd:attribute name="correlation"      type="xsd:string" use="required"/>
      <xsd:attribute name="etot_exchange"    type="xsd:string" use="optional"/>
      <xsd:attribute name="etot_correlation" type="xsd:string" use="optional"/>
   </xsd:complexType>
   <xsd:complexType name="XCParamsType">
      <xsd:attribute name="igrd" type="xsd:integer" use="required"/>
      <xsd:attribute name="lwb" type="FleurBool" use="required"/>
      <xsd:attribute name="ndvgrd" type="xsd:integer" use="required"/>
      <xsd:attribute name="idsprs" type="xsd:integer" use="required"/>
      <xsd:attribute name="chng" type="xsd:double" use="required"/>
   </xsd:complexType>
   
   <xsd:complexType name="GGAPrintingType">
      <xsd:attribute name="iggachk" type="xsd:integer" use="required"/>
      <xsd:attribute name="idsprs0" type="xsd:integer" use="required"/>
      <xsd:attribute name="idsprsl" type="xsd:integer" use="required"/>
      <xsd:attribute name="idsprsi" type="xsd:integer" use="required"/>
      <xsd:attribute name="idsprsv" type="xsd:double" use="required"/>
   </xsd:complexType>

   <xsd:complexType name="AtomSpeciesType">
      <xsd:sequence>
         <xsd:element maxOccurs="unbounded" name="species" type="SpeciesType"/>
      </xsd:sequence>
   </xsd:complexType>

   <xsd:complexType name="ProdBasisMTType">
     <xsd:attribute name="lcutm" type="xsd:integer" use="required"/>
     <xsd:attribute name="lcutwf" type="xsd:integer" use="required"/>
     <xsd:attribute name="select" type="xsd:string" use="optional" default="4 0 4 2"/>
   </xsd:complexType>

   <xsd:simpleType name="ZeroToOneNumberType">
      <xsd:restriction base="xsd:double">
         <xsd:minInclusive value="0.0"/>
         <xsd:maxInclusive value="1.0"/>
      </xsd:restriction>
   </xsd:simpleType>

   <xsd:complexType name="SpecialType">
     <xsd:attribute name="lda" type="FleurBool" use="optional" default="F"/>
     <xsd:attribute name="socscale" type="ZeroToOneNumberType" use="optional" default="1.0"/>
     <xsd:attribute name="b_field_mt" type="xsd:string" use="optional" default="0.0"/>
     <xsd:attribute name="vca_charge" type="xsd:string" use="optional" default="0.0"/>
   </xsd:complexType>


   
   <xsd:complexType name="SpeciesType">
      <xsd:sequence>
         <xsd:element name="mtSphere" type="MTSphereType"/>
         <xsd:element name="atomicCutoffs" type="AtomicCutoffsType"/>
         <xsd:element maxOccurs="1" minOccurs="0" name="energyParameters" type="EnergyParametersType"/>
	      <xsd:element maxOccurs="1" minOccurs="0" name="prodBasis" type="ProdBasisMTType"/>
         <xsd:element maxOccurs="1" minOccurs="0" name="special" type="SpecialType"/>
         <xsd:element maxOccurs="1" minOccurs="0" name="force" type="ForceType"/>
         <xsd:element maxOccurs="1" minOccurs="0" name="electronConfig" type="ElectronConfigType"/>
         <xsd:element maxOccurs="1" minOccurs="0" name="nocoParams" type="AtomicNocoParamsType"/>
         <xsd:element maxOccurs="4" minOccurs="0" name="ldaU" type="LdaUType"/>
         <xsd:element maxOccurs="unbounded" minOccurs="0" name="lo" type="LOType"/>
      </xsd:sequence>
      <xsd:attribute name="name" type="xsd:string" use="required"/>
      <xsd:attribute name="element" type="xsd:string" use="required"/>
      <xsd:attribute name="atomicNumber" type="xsd:nonNegativeInteger" use="required"/>
      <xsd:attribute name="coreStates" type="xsd:nonNegativeInteger" use="required"/>
      <xsd:attribute default="0.0" name="magMom" type="xsd:string" use="optional"/>
      <xsd:attribute default="F" name="flipSpin" type="FleurBool" use="optional"/>
      <xsd:attribute name="magField" type="xsd:double" use="optional"/>
      <xsd:attribute name="vcaAddCharge" type="xsd:double" use="optional"/>
   </xsd:complexType>

   <xsd:complexType name="AtomGroupsType">
      <xsd:sequence>
         <xsd:element maxOccurs="unbounded" name="atomGroup" type="AtomGroupType"/>
      </xsd:sequence>
   </xsd:complexType>

   <xsd:complexType name="AtomGroupType">
      <xsd:sequence>
         <xsd:choice maxOccurs="unbounded">
            <xsd:element name="relPos" type="AtomPosType"/>
            <xsd:element name="absPos" type="AtomPosType"/>
            <xsd:element name="filmPos" type="AtomPosType"/>
         </xsd:choice>
         <xsd:element maxOccurs="1" minOccurs="0" name="mtSphere" type="MTSphereType"/>
         <xsd:element maxOccurs="1" minOccurs="0" name="atomicCutoffs" type="AtomicCutoffsType"/>
         <xsd:element maxOccurs="1" minOccurs="0" name="energyParameters" type="EnergyParametersType"/>
         <xsd:element maxOccurs="1" minOccurs="0" name="force" type="ForceType"/>
         <xsd:element maxOccurs="1" minOccurs="0" name="nocoParams" type="AtomicNocoParamsType"/>
         <xsd:element maxOccurs="4" minOccurs="0" name="ldaU" type="LdaUType"/>
         <xsd:element maxOccurs="unbounded" minOccurs="0" name="lo" type="LOType"/>
         <xsd:element maxOccurs="1" minOccurs="0" name="orbcomprot" type="Double3DVecType"/>
      </xsd:sequence>
      <xsd:attribute name="species" type="xsd:string" use="required"/>
      <xsd:attribute name="magField" type="xsd:double" use="optional"/>
      <xsd:attribute name="vcaAddCharge" type="xsd:double" use="optional"/>
   </xsd:complexType>

   <xsd:complexType name="AtomPosType">
      <xsd:simpleContent>
         <xsd:extension base="String3DVecType">
            <xsd:attribute name="label" type="xsd:string" use="optional"/>
            <xsd:attribute default="F" name="wannier" type="FleurBool" use="optional"/>
            <xsd:attribute default="F" name="orbcomp" type="FleurBool" use="optional"/>
         </xsd:extension>
      </xsd:simpleContent>
   </xsd:complexType>

   <xsd:complexType name="AtomicNocoParamsType">
      <xsd:attribute name="l_relax" type="FleurBool" use="required"/>
      <xsd:attribute default="F" name="l_magn" type="FleurBool" use="optional"/>
      <xsd:attribute default="0.0" name="M" type="xsd:string" use="optional"/>
      <xsd:attribute name="alpha" type="xsd:string" use="required"/>
      <xsd:attribute name="beta" type="xsd:string" use="required"/>
      <xsd:attribute name="b_cons_x" type="xsd:string" use="required"/>
      <xsd:attribute name="b_cons_y" type="xsd:string" use="required"/>
   </xsd:complexType>

   <xsd:complexType name="MTSphereType">
      <xsd:attribute name="radius" type="xsd:string" use="required"/>
      <xsd:attribute name="gridPoints" type="xsd:positiveInteger" use="required"/>
      <xsd:attribute name="logIncrement" type="xsd:string" use="required"/>
   </xsd:complexType>

   <xsd:complexType name="AtomicCutoffsType">
      <xsd:attribute name="lmax" type="xsd:nonNegativeInteger" use="required"/>
      <xsd:attribute name="lnonsphr" type="xsd:nonNegativeInteger" use="required"/>
      <xsd:attribute name="lmaxAPW" type="xsd:nonNegativeInteger" use="optional"/>
   </xsd:complexType>

   <xsd:complexType name="EnergyParametersType">
      <xsd:attribute name="s" type="xsd:nonNegativeInteger" use="required"/>
      <xsd:attribute name="p" type="xsd:nonNegativeInteger" use="required"/>
      <xsd:attribute name="d" type="xsd:nonNegativeInteger" use="required"/>
      <xsd:attribute name="f" type="xsd:nonNegativeInteger" use="required"/>
   </xsd:complexType>

   <xsd:complexType name="LdaUType">
      <xsd:attribute name="l" type="xsd:nonNegativeInteger" use="required"/>
      <xsd:attribute name="U" type="xsd:string" use="required"/>
      <xsd:attribute name="J" type="xsd:string" use="required"/>
      <xsd:attribute name="phi" type="xsd:string" use="optional" default="0.0"/>
      <xsd:attribute name="theta" type="xsd:string" use="optional" default="0.0"/>
      <xsd:attribute name="l_amf" type="FleurBool" use="required"/>
   </xsd:complexType>

   <xsd:complexType name="ForceType">
      <xsd:attribute name="calculate" type="FleurBool" use="required"/>
      <xsd:attribute name="relaxXYZ" type="TripleFleurBool" use="required"/>
   </xsd:complexType>

   <xsd:complexType name="PositionType">
      <xsd:simpleContent>
         <xsd:extension base="Double3DVecType">
            <xsd:attribute name="scale" type="xsd:string" use="required"/>
         </xsd:extension>
      </xsd:simpleContent>
   </xsd:complexType>

   <xsd:complexType name="LOType">
      <xsd:attribute name="type" type="EParamSelectionEnum" use="required"/>
      <xsd:attribute name="l" type="AngularMomentumNumberType" use="required"/>
      <xsd:attribute name="n" type="MainQuantumNumberType" use="required"/>
      <xsd:attribute default="0" name="eDeriv" type="xsd:nonNegativeInteger" use="optional"/>
   </xsd:complexType>

    <xsd:simpleType name="AngularMomentumNumberType">
      <xsd:restriction base="xsd:string">
         <xsd:pattern value="([1-9])?[0-9](((-([1-9])?[0-9])?)|(,([1-9])?[0-9])+)"/>
      </xsd:restriction>
   </xsd:simpleType> 

    <xsd:simpleType name="MainQuantumNumberType">
      <xsd:restriction base="xsd:string">
         <xsd:pattern value="[1-9]([0-9])?(,[1-9]([0-9])?)*"/>
      </xsd:restriction>
   </xsd:simpleType> 
   
   <xsd:simpleType name="EParamSelectionEnum">
      <xsd:restriction base="xsd:string">
         <xsd:enumeration value="SCLO"/>
         <xsd:enumeration value="HELO"/>
      </xsd:restriction>
   </xsd:simpleType>
   
   <xsd:complexType name="CutoffsType">
      <xsd:attribute name="Kmax" type="xsd:string" use="required"/>
      <xsd:attribute name="Gmax" type="xsd:string" use="required"/>
      <xsd:attribute name="GmaxXC" type="xsd:string" use="optional"/>
      <xsd:attribute default="0" name="numbands" type="NumBandsType" use="optional"/>
   </xsd:complexType>

    <xsd:simpleType name="NumBandsType">
      <xsd:union>
        <xsd:simpleType>
          <xsd:restriction base="xsd:nonNegativeInteger"/>
        </xsd:simpleType>
        <xsd:simpleType>
          <xsd:restriction base="xsd:string">
            <xsd:enumeration value="all"/>
          </xsd:restriction>
        </xsd:simpleType>
      </xsd:union>
    </xsd:simpleType>

   <xsd:complexType name="BZIntegrationType">
      <xsd:sequence>
         <xsd:choice>
            <xsd:element name="kPointMesh" type="KPointMeshType"/>
            <xsd:element name="kPointCount" type="KPointCountType"/>
            <xsd:element name="kPointList" type="KPointListType"/>
            <xsd:element name="kPointDensity" type="KPointDensityType"/>
         </xsd:choice>
         <xsd:element maxOccurs="unbounded" minOccurs="0" name="altKPointSet" type="AltKPointSetType"/>
      </xsd:sequence>
      <xsd:attribute name="valenceElectrons" type="xsd:string" use="optional"/>
      <xsd:attribute default="hist" name="mode" type="BZIntegrationModeEnum" use="optional"/>
      <xsd:attribute name="fermiSmearingEnergy" type="xsd:string" use="optional"/>
      <xsd:attribute name="fermiSmearingTemp" type="xsd:string" use="optional"/>
   </xsd:complexType>

   <xsd:complexType name="SOCType">
      <xsd:attribute name="theta" type="xsd:string" use="required"/>
      <xsd:attribute name="phi" type="xsd:string" use="required"/>
      <xsd:attribute name="l_soc" type="FleurBool" use="required"/>
      <xsd:attribute name="spav" type="FleurBool" use="required"/>
      <xsd:attribute default="F" name="off" type="FleurBool" use="optional"/>
      <xsd:attribute default="T" name="soc66" type="FleurBool" use="optional"/>
   </xsd:complexType>
   
   <xsd:complexType name="SCFLoopType">
      <xsd:attribute name="itmax" type="xsd:positiveInteger" use="required"/>
      <xsd:attribute default="99" name="maxIterBroyd" type="xsd:nonNegativeInteger" use="optional"/>
      <xsd:attribute name="imix" type="MixingEnum" use="required"/>
      <xsd:attribute name="alpha" type="xsd:string" use="required"/>
      <xsd:attribute default="0.0" name="precondParam" type="xsd:string" use="optional"/>
      <xsd:attribute default="2.0" name="spinf" type="xsd:string" use="optional"/>
      <xsd:attribute default="0.0" name="minDistance" type="xsd:string" use="optional"/>
      <xsd:attribute name="maxTimeToStartIter" type="xsd:string" use="optional"/>
   </xsd:complexType>

   <xsd:complexType name="VacDOSType">
      <xsd:attribute name="layers" type="xsd:integer" use="required"/>
      <xsd:attribute name="integ" type="FleurBool" use="required"/>
      <xsd:attribute name="star" type="FleurBool" use="required"/>
      <xsd:attribute name="nstars" type="xsd:integer" use="required"/>
      <xsd:attribute name="locx1" type="xsd:string" use="required"/>
      <xsd:attribute name="locy1" type="xsd:string" use="required"/>
      <xsd:attribute name="locx2" type="xsd:string" use="required"/>
      <xsd:attribute name="locy2" type="xsd:string" use="required"/>
      <xsd:attribute name="nstm" type="xsd:integer" use="required"/>
      <xsd:attribute name="tworkf" type="xsd:string" use="required"/>
   </xsd:complexType>

   <xsd:complexType name="PlottingType">
      <xsd:attribute default="0" name="iplot" type="xsd:integer" use="optional"/>
      <xsd:attribute default="F" name="score" type="FleurBool" use="optional"/>
      <xsd:attribute default="F" name="plplot" type="FleurBool" use="optional"/>
   </xsd:complexType>

   <xsd:complexType name="ChargeDensitySlicingType">
      <xsd:attribute name="numkpt" type="xsd:nonNegativeInteger" use="required"/>
      <xsd:attribute name="minEigenval" type="xsd:string" use="required"/>
      <xsd:attribute name="maxEigenval" type="xsd:string" use="required"/>
      <xsd:attribute name="nnne" type="xsd:integer" use="required"/>
      <xsd:attribute name="pallst" type="FleurBool" use="required"/>
   </xsd:complexType>
   
   <xsd:complexType name="GeometryOptimizerType">
      <xsd:attribute name="l_f" type="FleurBool" use="required"/>
      <xsd:attribute name="forcealpha" type="xsd:string" use="optional" default="0" />
      <xsd:attribute name="epsdisp" type="xsd:string" use="optional" default="0.001"/>
      <xsd:attribute name="epsforce" type="xsd:string" use="optional" default="0.001"/>
      <xsd:attribute name="forcemix" type="ForceMixEnum" use="optional" default="BFGS" />
      <xsd:attribute name="qfix" type="xsd:integer" use="optional" default="0" />
      <xsd:attribute name="force_converged" type="xsd:string" use="optional" default="0.00001" />
   </xsd:complexType>

   <xsd:complexType name="LdaUGeneralType">
      <xsd:attribute default="F" name="l_linMix" type="FleurBool" use="optional"/>
      <xsd:attribute default="0.05" name="mixParam" type="xsd:double" use="optional"/>
      <xsd:attribute default="1.00" name="spinf" type="xsd:double" use="optional"/>
   </xsd:complexType>

   <xsd:complexType name="RDMFTType">
      <xsd:attribute name="l_rdmft" type="FleurBool" use="required"/>
      <xsd:attribute default="0.00001" name="occEps" type="xsd:double" use="optional"/>
      <xsd:attribute name="statesBelow" type="xsd:positiveInteger" use="required"/>
      <xsd:attribute name="statesAbove" type="xsd:positiveInteger" use="required"/>
      <xsd:attribute name="functional" type="RDMFTFunctionalEnum" use="required"/>
   </xsd:complexType>

   <xsd:complexType name="DOSOutputType">
      <xsd:attribute name="ndir" type="xsd:integer" use="required"/>
      <xsd:attribute name="minEnergy" type="xsd:string" use="required"/>
      <xsd:attribute name="maxEnergy" type="xsd:string" use="required"/>
      <xsd:attribute name="sigma" type="xsd:string" use="required"/>
   </xsd:complexType>

   <xsd:complexType name="AltKPointSetType">
      <xsd:sequence>
         <xsd:choice>
            <xsd:element name="kPointMesh" type="KPointMeshType"/>
            <xsd:element name="kPointCount" type="KPointCountType"/>
            <xsd:element name="kPointList" type="KPointListType"/>
            <xsd:element name="kPointDensity" type="KPointDensityType"/>
            <xsd:element name="kPointListFile" type="KPointListFileType"/>
         </xsd:choice>
      </xsd:sequence>
      <xsd:attribute name="purpose" type="KPointSetPurposeEnum" use="required"/>
   </xsd:complexType>

   <xsd:complexType name="KPointMeshType">
      <xsd:attribute name="nx" type="xsd:positiveInteger" use="required"/>
      <xsd:attribute name="ny" type="xsd:positiveInteger" use="required"/>
      <xsd:attribute name="nz" type="xsd:positiveInteger" use="required"/>
      <xsd:attribute name="gamma" type="FleurBool" use="required"/>
   </xsd:complexType>

   <xsd:complexType name="KPointCountType">
      <xsd:sequence>
         <xsd:element maxOccurs="unbounded" minOccurs="0" name="specialPoint" type="SpecialPointType"/>
      </xsd:sequence>
      <xsd:attribute name="count" type="xsd:nonNegativeInteger" use="required"/>
      <xsd:attribute name="gamma" type="FleurBool" use="required"/>
   </xsd:complexType>

   <xsd:complexType name="KPointListType">
      <xsd:sequence>
         <xsd:element maxOccurs="unbounded" minOccurs="1" name="kPoint" type="KPointType"/>
      </xsd:sequence>
      <xsd:attribute name="posScale" type="xsd:string" use="required"/>
      <xsd:attribute name="weightScale" type="xsd:string" use="required"/>
      <xsd:attribute name="count" type="xsd:nonNegativeInteger" use="optional"/>
   </xsd:complexType>

   <xsd:complexType name="KPointDensityType">
      <xsd:attribute name="denX" type="xsd:double" use="required"/>
      <xsd:attribute name="denY" type="xsd:double" use="required"/>
      <xsd:attribute name="denZ" type="xsd:double" use="required"/>
      <xsd:attribute name="gamma" type="FleurBool" use="required"/>
   </xsd:complexType>

   <xsd:complexType name="KPointListFileType">
      <xsd:attribute name="filename" type="xsd:string" use="required"/>
   </xsd:complexType>

   <xsd:complexType name="SpecialPointType">
      <xsd:simpleContent>
         <xsd:extension base="String3DVecType">
            <xsd:attribute name="name" type="xsd:string" use="required"/>      
         </xsd:extension>
      </xsd:simpleContent>
   </xsd:complexType>

   <xsd:complexType name="KPointType">
      <xsd:simpleContent>
         <xsd:extension base="Double3DVecType">
            <xsd:attribute name="weight" type="xsd:string" use="required"/>      
         </xsd:extension>
      </xsd:simpleContent>
   </xsd:complexType>
   
   <xsd:complexType name="SpinSpiralQPointMeshType">
      <xsd:attribute name="qx" type="xsd:nonNegativeInteger" use="required"/>
      <xsd:attribute name="qy" type="xsd:nonNegativeInteger" use="required"/>
      <xsd:attribute name="qz" type="xsd:nonNegativeInteger" use="required"/>
   </xsd:complexType>

   <xsd:complexType name="ExpertModeType">
      <xsd:attribute default="0" name="gw" type="xsd:integer" use="optional"/>
      <xsd:attribute default="F" name="pot8" type="FleurBool" use="optional"/>
      <xsd:attribute default="F" name="eig66" type="FleurBool" use="optional"/>
      <xsd:attribute default="0" name="lpr" type="xsd:integer" use="optional"/>
      <xsd:attribute default="99" name="isec1" type="xsd:integer" use="optional"/>
      <xsd:attribute default="F" name="secvar" type="FleurBool" use="optional"/>
   </xsd:complexType>

   <xsd:complexType name="ChecksType">
      <xsd:attribute default="F" name="vchk" type="FleurBool" use="optional"/>
      <xsd:attribute default="F" name="cdinf" type="FleurBool" use="optional"/>
      <xsd:attribute default="F" name="disp" type="FleurBool" use="optional"/>
   </xsd:complexType>

   <xsd:complexType name="SpecialOutputType">
      <xsd:attribute default="F" name="form66" type="FleurBool" use="optional"/>
      <xsd:attribute default="F" name="eonly" type="FleurBool" use="optional"/>
      <xsd:attribute default="F" name="bmt" type="FleurBool" use="optional"/>
   </xsd:complexType>

   <xsd:complexType name="CoreSpecOutputType">
      <xsd:sequence>
         <xsd:element name="edgeIndices" type="IntegerVecType"/>
      </xsd:sequence>
      <xsd:attribute name="eKin" type="xsd:double" use="required"/>
      <xsd:attribute name="atomType" type="xsd:positiveInteger" use="required"/>
      <xsd:attribute name="lmax" type="xsd:nonNegativeInteger" use="required"/>
      <xsd:attribute name="edgeType" type="CoreSpecEdgeEnum" use="required"/>
      <xsd:attribute name="eMin" type="xsd:double" use="required"/>
      <xsd:attribute name="eMax" type="xsd:double" use="required"/>
      <xsd:attribute name="numPoints" type="xsd:positiveInteger" use="required"/>
      <xsd:attribute default="F" name="verbose" type="FleurBool" use="optional"/>
      <xsd:attribute default="10" name="nqphi" type="xsd:positiveInteger" use="optional"/>
      <xsd:attribute default="10" name="nqr" type="xsd:positiveInteger" use="optional"/>
      <xsd:attribute default="0.024" name="alpha_Ex" type="xsd:double" use="optional"/>
      <xsd:attribute default="0.05" name="beta_Ex" type="xsd:double" use="optional"/>
      <xsd:attribute default="155" name="I_initial" type="xsd:double" use="optional"/>      
   </xsd:complexType>

   <xsd:complexType name="MagneticCircularDichroismType">
      <xsd:attribute name="energyLo" type="xsd:double" use="required"/>
      <xsd:attribute name="energyUp" type="xsd:double" use="required"/>
   </xsd:complexType>

   <xsd:complexType name="WannierBandSelectionType">
      <xsd:attribute name="minSpinUp" type="xsd:positiveInteger" use="required"/>
      <xsd:attribute name="maxSpinUp" type="xsd:positiveInteger" use="required"/>
      <xsd:attribute name="minSpinDown" type="xsd:positiveInteger" use="optional"/>
      <xsd:attribute name="maxSpinDown" type="xsd:positiveInteger" use="optional"/>
   </xsd:complexType>

   <xsd:complexType name="WannierOutputType">
      <xsd:all>
         <xsd:element maxOccurs="1" minOccurs="0" name="bandSelection" type="WannierBandSelectionType"/>
         <xsd:element maxOccurs="1" minOccurs="0" name="jobList" type="StringVecType"/>
      </xsd:all>
      <xsd:attribute default="F" name="ms" type="FleurBool" use="optional"/>
      <xsd:attribute default="F" name="sgwf" type="FleurBool" use="optional"/>
      <xsd:attribute default="F" name="socgwf" type="FleurBool" use="optional"/>
      <xsd:attribute default="F" name="bsComf" type="FleurBool" use="optional"/>
      <xsd:attribute default="F" name="atomList" type="FleurBool" use="optional"/>
   </xsd:complexType>

   <xsd:complexType name="RelaxationType">
     <xsd:all>
         <xsd:element maxOccurs="1" minOccurs="0" name="displacements" type="DisplacementType"/>
         <xsd:element maxOccurs="1" minOccurs="0" name="relaxation-history" type="RelaxHistType"/>
      </xsd:all>
   </xsd:complexType>

   <xsd:complexType name="DisplacementType">
     <xsd:sequence>
       <xsd:element maxOccurs="unbounded" minOccurs="1"  name="displace" type="DisplaceType" />
     </xsd:sequence>
   </xsd:complexType>

   <xsd:complexType name="DisplaceType">
     <xsd:simpleContent>
       <xsd:extension base="Double3DVecType">
       </xsd:extension>
     </xsd:simpleContent>
   </xsd:complexType>

   
   <xsd:complexType name="RelaxHistType">
     <xsd:sequence>
       <xsd:element maxOccurs="unbounded" minOccurs="1"  name="step" type="RelaxStepType" />
     </xsd:sequence>
   </xsd:complexType>

   <xsd:complexType name="RelaxStepType">
     <xsd:sequence>
       <xsd:element maxOccurs="unbounded" minOccurs="1"  name="posforce" type="xsd:string" />
     </xsd:sequence>
      <xsd:attribute name="energy" type="xsd:string"/>
   </xsd:complexType>


   <xsd:complexType name="ForcetheoremType">
     <xsd:choice>
       <xsd:element name="MAE" type="MAEType"/>
       <xsd:element name="spinSpiralDispersion" type="QListType"/>
       <xsd:element name="DMI" type="DMIType"/>
       <xsd:element name="Jij" type="JijType"/>
     </xsd:choice>
   </xsd:complexType>

   <xsd:complexType name="MAEType">
     <xsd:attribute name="theta" type="xsd:string" use="required"/>
     <xsd:attribute name="phi" type="xsd:string" use="required"/>
   </xsd:complexType>

   <xsd:complexType name="DMIType">
     <xsd:all>
       <xsd:element  maxOccurs="1" minOccurs="1" name="qVectors" type="QListType"/>
     </xsd:all>
     <xsd:attribute name="theta" type="xsd:string" use="required"/>
     <xsd:attribute name="phi" type="xsd:string" use="required"/>
   </xsd:complexType>

   <xsd:complexType name="JijType">
     <xsd:all>
       <xsd:element  maxOccurs="1" minOccurs="1" name="qVectors" type="QListType"/>
     </xsd:all>
     <xsd:attribute name="thetaj" type="xsd:string" use="required"/>
   </xsd:complexType>

   <xsd:complexType name="QListType">
     <xsd:sequence>
       <xsd:element maxOccurs="unbounded" minOccurs="1"  name="q" type="xsd:string" />
     </xsd:sequence>
   </xsd:complexType>

   <xsd:complexType name="UnfoldingBandType">
      <xsd:attribute name="unfoldBand" type="FleurBool" use="required"/>
      <xsd:attribute name="supercellX" type="xsd:positiveInteger" use="required"/>
      <xsd:attribute name="supercellY" type="xsd:positiveInteger" use="required"/>
      <xsd:attribute name="supercellZ" type="xsd:positiveInteger" use="required"/>
   </xsd:complexType>

   
   <xsd:complexType name="OutputType">
      <xsd:all>
         <xsd:element maxOccurs="1" minOccurs="0" name="checks" type="ChecksType"/>
         <xsd:element maxOccurs="1" minOccurs="0" name="densityOfStates" type="DOSOutputType"/>
         <xsd:element maxOccurs="1" minOccurs="0" name="vacuumDOS" type="VacDOSType"/>
         <xsd:element maxOccurs="1" minOccurs="0" name="plotting" type="PlottingType"/>
         <xsd:element maxOccurs="1" minOccurs="0" name="chargeDensitySlicing" type="ChargeDensitySlicingType"/>
         <xsd:element maxOccurs="1" minOccurs="0" name="specialOutput" type="SpecialOutputType"/>
         <xsd:element maxOccurs="1" minOccurs="0" name="coreSpectrum" type="CoreSpecOutputType"/>
         <xsd:element maxOccurs="1" minOccurs="0" name="wannier" type="WannierOutputType"/>
         <xsd:element maxOccurs="1" minOccurs="0" name="magneticCircularDichroism" type="MagneticCircularDichroismType"/>
         <xsd:element maxOccurs="1" minOccurs="0" name="unfoldingBand" type="UnfoldingBandType"/> 
      </xsd:all>
      <xsd:attribute default="F" name="dos" type="FleurBool" use="optional"/>
      <xsd:attribute default="F" name="band" type="FleurBool" use="optional"/>
      <xsd:attribute default="F" name="vacdos" type="FleurBool" use="optional"/>
      <xsd:attribute default="F" name="slice" type="FleurBool" use="optional"/>
      <xsd:attribute default="F" name="coreSpec" type="FleurBool" use="optional"/>
      <xsd:attribute default="F" name="wannier" type="FleurBool" use="optional"/>
      <xsd:attribute default="F" name="mcd" type="FleurBool" use="optional"/>
   </xsd:complexType>

   <xsd:complexType name="ElectronConfigType">
      <xsd:sequence>
         <xsd:element name="coreConfig" type="CoreStateListType"/>
         <xsd:element maxOccurs="1" minOccurs="0" name="valenceConfig" type="ValenceStateListType"/>
         <xsd:element maxOccurs="unbounded" minOccurs="0" name="stateOccupation" type="ElectronStateOccupationType"/>
      </xsd:sequence>
   </xsd:complexType>

   <xsd:simpleType name="ValenceStateListType">
      <xsd:list itemType="ElectronStateEnum"/>
   </xsd:simpleType>

   <xsd:simpleType name="CoreStateListType">
      <xsd:list itemType="CoreConfigEnum"/>
   </xsd:simpleType>

   <xsd:complexType name="ElectronStateOccupationType">
      <xsd:attribute name="state" type="ElectronStateEnum" use="required"/>
      <xsd:attribute name="spinUp" type="xsd:string" use="required"/>
      <xsd:attribute name="spinDown" type="xsd:string" use="required"/>
   </xsd:complexType>

   <xsd:simpleType name="CoreSpecEdgeEnum">
      <xsd:restriction base="xsd:string">
         <xsd:enumeration value="K"/>
         <xsd:enumeration value="L"/>
         <xsd:enumeration value="M"/>
         <xsd:enumeration value="N"/>
         <xsd:enumeration value="O"/>
         <xsd:enumeration value="P"/>
      </xsd:restriction>
   </xsd:simpleType>

   <xsd:simpleType name="LatnamEnum">
      <xsd:restriction base="xsd:string">
         <xsd:enumeration value="any"/>
         <xsd:enumeration value="squ"/>
         <xsd:enumeration value="c-b"/>
         <xsd:enumeration value="fcc"/>
         <xsd:enumeration value="hex"/>
         <xsd:enumeration value="hx3"/>
         <xsd:enumeration value="bcc"/>
         <xsd:enumeration value="c-r"/>
         <xsd:enumeration value="p-r"/>
         <xsd:enumeration value="obl"/>
      </xsd:restriction>
   </xsd:simpleType>

   <xsd:simpleType name="SpgrpEnum">
      <xsd:restriction base="xsd:string">
         <xsd:enumeration value="any"/>
         <xsd:enumeration value="p1"/>
         <xsd:enumeration value="p2"/>
         <xsd:enumeration value="pmy"/>
         <xsd:enumeration value="pgy"/>
         <xsd:enumeration value="cmy"/>
         <xsd:enumeration value="pmm"/>
         <xsd:enumeration value="pmg"/>
         <xsd:enumeration value="pgg"/>
         <xsd:enumeration value="cmm"/>
         <xsd:enumeration value="p4"/>
         <xsd:enumeration value="p4m"/>
         <xsd:enumeration value="p4g"/>
         <xsd:enumeration value="p3"/>
         <xsd:enumeration value="p3m1"/>
         <xsd:enumeration value="p31m"/>
         <xsd:enumeration value="p6"/>
         <xsd:enumeration value="p6m"/>
         <xsd:enumeration value="pm"/>
         <xsd:enumeration value="pg"/>
         <xsd:enumeration value="cm"/>
      </xsd:restriction>
   </xsd:simpleType>

   <xsd:simpleType name="MixingEnum">
      <xsd:restriction base="xsd:string">
         <xsd:enumeration value="straight"/>
         <xsd:enumeration value="Broyden1"/>
         <xsd:enumeration value="Broyden2"/>
         <xsd:enumeration value="Anderson"/>
         <xsd:enumeration value="Pulay"/>
         <xsd:enumeration value="rPulay"/>
         <xsd:enumeration value="pPulay"/>
         <xsd:enumeration value="aPulay"/>
      </xsd:restriction>
   </xsd:simpleType>

   <xsd:simpleType name="ForceMixEnum">
      <xsd:restriction base="xsd:string">
         <xsd:enumeration value="straight"/>
         <xsd:enumeration value="CG"/>
         <xsd:enumeration value="BFGS"/>
      </xsd:restriction>
   </xsd:simpleType>

   <xsd:simpleType name="BZIntegrationModeEnum">
      <xsd:restriction base="xsd:string">
         <xsd:enumeration value="hist"/>
         <xsd:enumeration value="gauss"/>
         <xsd:enumeration value="tria"/>
      </xsd:restriction>
   </xsd:simpleType>

   <xsd:simpleType name="ElectronStateEnum">
      <xsd:restriction base="xsd:string">
         <xsd:enumeration value="(1s1/2)"/>
         <xsd:enumeration value="(2s1/2)"/>
         <xsd:enumeration value="(2p1/2)"/>
         <xsd:enumeration value="(2p3/2)"/>
         <xsd:enumeration value="(3s1/2)"/>
         <xsd:enumeration value="(3p1/2)"/>
         <xsd:enumeration value="(3p3/2)"/>
         <xsd:enumeration value="(3d3/2)"/>
         <xsd:enumeration value="(3d5/2)"/>
         <xsd:enumeration value="(4s1/2)"/>
         <xsd:enumeration value="(4p1/2)"/>
         <xsd:enumeration value="(4p3/2)"/>
         <xsd:enumeration value="(4d3/2)"/>
         <xsd:enumeration value="(4d5/2)"/>
         <xsd:enumeration value="(4f5/2)"/>
         <xsd:enumeration value="(4f7/2)"/>
         <xsd:enumeration value="(5s1/2)"/>
         <xsd:enumeration value="(5p1/2)"/>
         <xsd:enumeration value="(5p3/2)"/>
         <xsd:enumeration value="(5d3/2)"/>
         <xsd:enumeration value="(5d5/2)"/>
         <xsd:enumeration value="(5f5/2)"/>
         <xsd:enumeration value="(5f7/2)"/>
         <xsd:enumeration value="(6s1/2)"/>
         <xsd:enumeration value="(6p1/2)"/>
         <xsd:enumeration value="(6p3/2)"/>
         <xsd:enumeration value="(6d3/2)"/>
         <xsd:enumeration value="(6d5/2)"/>
         <xsd:enumeration value="(7s1/2)"/>
      </xsd:restriction>
   </xsd:simpleType>

   <xsd:simpleType name="KPointSetPurposeEnum">
      <xsd:restriction base="xsd:string">
         <xsd:enumeration value="bands"/>
         <xsd:enumeration value="GW"/>
      </xsd:restriction>
   </xsd:simpleType>

   <xsd:simpleType name="RDMFTFunctionalEnum">
      <xsd:restriction base="xsd:string">
         <xsd:enumeration value="Muller"/>
      </xsd:restriction>
   </xsd:simpleType>

   <xsd:simpleType name="NobleGasConfigEnum">
      <xsd:restriction base="xsd:string">
         <xsd:enumeration value="[He]"/>
         <xsd:enumeration value="[Ne]"/>
         <xsd:enumeration value="[Ar]"/>
         <xsd:enumeration value="[Kr]"/>
         <xsd:enumeration value="[Xe]"/>
         <xsd:enumeration value="[Rn]"/>
      </xsd:restriction>
   </xsd:simpleType>

   <xsd:simpleType name="CoreConfigEnum">
      <xsd:union memberTypes="ElectronStateEnum NobleGasConfigEnum"/>
   </xsd:simpleType>
   
   <xsd:simpleType name="FleurBool">
      <xsd:restriction base="xsd:string">
         <xsd:enumeration value="F"/>
         <xsd:enumeration value="f"/>
         <xsd:enumeration value="T"/>
         <xsd:enumeration value="t"/>
      </xsd:restriction>
   </xsd:simpleType>

</xsd:schema>
