<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="SettingsFileSchema" targetNamespace="http://tempuri.org/SettingsFileSchema.xsd" elementFormDefault="qualified" xmlns="http://tempuri.org/SettingsFileSchema.xsd" xmlns:mstns="http://tempuri.org/SettingsFileSchema.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema">
   <xs:element name="Settings">
      <xs:complexType>
         <xs:sequence>
            <xs:element name="Source" type="Database" minOccurs="1" maxOccurs="1">
            </xs:element>
            <xs:element name="Target" type="Database" minOccurs="1" maxOccurs="1">
            </xs:element>
            <xs:element name="Tables" minOccurs="1" maxOccurs="1">
               <xs:complexType>
                  <xs:sequence>
                     <xs:element name="Table" minOccurs="1" maxOccurs="unbounded">
                        <xs:complexType>
                           <xs:sequence />
                           <xs:attribute name="Name" type="xs:string" use="required" />
                           <xs:attribute name="SyncMode" use="optional" default="Complete" type="xs:string" />
                           <xs:attribute name="LastModifiedField" use="optional" default="last-modified" type="xs:string" />
                           <xs:attribute name="RemoveDeletedItems" use="optional" default="true" type="xs:boolean" />
                           <xs:attribute name="CopyCompleteOnFieldsMismatch" use="optional" default="true" type="xs:boolean" />
                        </xs:complexType>
                     </xs:element>
                  </xs:sequence>
               </xs:complexType>
            </xs:element>
            <xs:element name="Options" minOccurs="0" maxOccurs="1">
               <xs:complexType>
                  <xs:sequence>
                  </xs:sequence>
                  <xs:attribute name="StopOnError" type="xs:boolean" use="optional" default="true"/>
                  <xs:attribute name="EnforceNameCompatibility" use="optional" default="false" type="xs:boolean" />
                  <xs:attribute name="Verbose" use="optional" default="false" type="xs:boolean" />
                  <xs:attribute name="StripAccessOleImageHeaders" use="optional" default="true" type="xs:boolean" />
                  <xs:attribute name="DeleteTemporaryTablesOnFailure" use="optional" default="true" type="xs:boolean" />
                  <xs:attribute name="TurnOffFKCheckingDuringInsert" use ="optional" default="false" type="xs:boolean"/>
               </xs:complexType>
            </xs:element>
         </xs:sequence>
      </xs:complexType>
   </xs:element>
   <xs:complexType name="Database">
      <xs:sequence>
         <xs:choice>
            <xs:element name="AccessDatabase">
               <xs:complexType>
                  <xs:sequence />
                  <xs:attribute name="DataFile" type="xs:string" use="required" />
               </xs:complexType>
            </xs:element>
            <xs:element name="MySqlDatabase">
               <xs:complexType>
                  <xs:sequence />
                  <xs:attribute name="Host" type="xs:string" use="optional" default="localhost" />
                  <xs:attribute name="Port" type="xs:unsignedInt" use="optional" default="3306" />
                  <xs:attribute name="Username" type="xs:string" use="optional" default="root" />
                  <xs:attribute name="Password" type="xs:string" use="optional" default="" />
                  <xs:attribute name="Database" type="xs:string" use="required" />
                  <xs:attribute name="TunnelAddress" type="xs:string" use="optional" default="" />
                  <xs:attribute name="TunnelCompression" type="xs:boolean" use="optional" default="false" />
               </xs:complexType>
            </xs:element>
            <xs:element name="MsSqlDatabase">
               <xs:complexType>
                  <xs:sequence />
                  <xs:attribute name="Host" type="xs:string" use="optional" default="localhost" />
                  <xs:attribute name="Port" type="xs:unsignedInt" use="optional" default="3306" />
                  <xs:attribute name="Username" type="xs:string" use="optional" default="root" />
                  <xs:attribute name="Password" type="xs:string" use="optional" default="" />
                  <xs:attribute name="Database" type="xs:string" use="required" />
                  <xs:attribute name="WindowsAuthentication" type="xs:boolean" use="optional" default="false" />                  
               </xs:complexType>
            </xs:element>
         </xs:choice>
      </xs:sequence>
   </xs:complexType>
</xs:schema>