<xs:schema targetNamespace="http://schemas.microsoft.com/bestpractices/models/FileServices/DFSR/2011/04"
    elementFormDefault="qualified"
    xmlns:tns="http://schemas.microsoft.com/bestpractices/models/FileServices/DFSR/2011/04"
    xmlns:xs="http://www.w3.org/2001/XMLSchema">
    
    <xs:element name="DFSRComposite" type="tns:DFSRCompositeType"></xs:element>

    <xs:complexType name="DFSRCompositeType">
        <xs:sequence>
            <xs:element name="DFSR" type="tns:DFSRType" minOccurs="0" maxOccurs="1"></xs:element>
        </xs:sequence>
    </xs:complexType>
    
    
    <!-- Define DfsrType -->
    <xs:complexType name="DFSRType">
        <xs:sequence>
            <xs:element name="ServerName" type="xs:string" minOccurs="0" maxOccurs="1"></xs:element>
            <xs:element name="IsServiceStarted" type="xs:boolean" minOccurs="0" maxOccurs="1"></xs:element>
            <xs:element name="IsServiceStartTypeAuto" type="xs:boolean" minOccurs="0" maxOccurs="1"></xs:element>
            <xs:element name="IsReadOnlyDriverLoaded" type="xs:boolean" minOccurs="0" maxOccurs="1"></xs:element>
            <xs:element name="ReplicatedFolder" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="RfName" type="xs:string" minOccurs="0" maxOccurs="1"></xs:element>
                        <xs:element name="MemberName" type="xs:string" minOccurs="0" maxOccurs="1"></xs:element>
                        <xs:element name="IsEnabled" type="xs:boolean" minOccurs="0" maxOccurs="1"></xs:element>
                        <xs:element name="RfRgName" type="xs:string" minOccurs="0" maxOccurs="1"></xs:element>
                        <xs:element name="HasEnoughConflictSpace" type="xs:boolean" minOccurs="0" maxOccurs="1"></xs:element>
                        <xs:element name="HasMoreConflictedFiles" type="xs:boolean" minOccurs="0" maxOccurs="1"></xs:element>
                        <xs:element name="HasStagingCleanupHappened" type="xs:boolean" minOccurs="0" maxOccurs="1"></xs:element>
                    </xs:sequence>   
                </xs:complexType>
            </xs:element>
            <xs:element name="ReplicatedVolume" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="VolName" type="xs:string" minOccurs="0" maxOccurs="1"></xs:element>
                        <xs:element name="HasEnoughSpaceLeft" type="xs:boolean" minOccurs="0" maxOccurs="1"></xs:element>
                    </xs:sequence>   
                </xs:complexType>
            </xs:element>
            <xs:element name="ReplicationGroup" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="RgName" type="xs:string" minOccurs="0" maxOccurs="1"></xs:element>
                        <xs:element name="MemberName" type="xs:string" minOccurs="0" maxOccurs="1"></xs:element>
                        <xs:element name="Partner" minOccurs="0" maxOccurs="unbounded">
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element name="PartnerName" type="xs:string" minOccurs="0" maxOccurs="1"></xs:element>
                                    <xs:element name="HasTwoWayConnection" type="xs:boolean" minOccurs="0" maxOccurs="1"></xs:element>
                                </xs:sequence>   
                            </xs:complexType>
                        </xs:element>
                   </xs:sequence>   
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
</xs:schema>