<xs:schema targetNamespace="http://schemas.microsoft.com/bestpractices/models/FileServices/DFSN/2011/04"
    elementFormDefault="qualified"
    xmlns:tns="http://schemas.microsoft.com/bestpractices/models/FileServices/DFSN/2011/04"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
    <xs:element name="DFSNComposite" type="tns:DFSNCompositeType"></xs:element>

    <xs:complexType name="DFSNCompositeType">
        <xs:sequence>
            <xs:element name="DFSN" type="tns:DFSNType" minOccurs="0" maxOccurs="1"></xs:element>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="DFSNType">
        <xs:sequence>
            <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="IPAddressList" minOccurs="0" maxOccurs="1">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="IPAddress" type="tns:IPAddressType" minOccurs="0" maxOccurs="unbounded"></xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="IsDomainController" type="xs:boolean" minOccurs="0" maxOccurs="1"></xs:element > 
            <xs:element name="IsSysvolNetlogonTargetFailbackEnabled" type="xs:boolean" minOccurs="0" maxOccurs="1"></xs:element>
            <xs:element name="IsSiteCostedReferralEnabled" type="xs:boolean" minOccurs="0" maxOccurs="1"></xs:element>
            <xs:element name="LdapTimeoutValueInSeconds" type="xs:long" minOccurs="0" maxOccurs="1"></xs:element>
            <xs:element name="SyncIntervalInSeconds" type="xs:long" minOccurs="0" maxOccurs="1"></xs:element>
            <xs:element name="IsFFLAbove2003" type="xs:boolean" minOccurs="0" maxOccurs="1"></xs:element>
            <xs:element name="IsDFLAbove2008" type="xs:boolean" minOccurs="0" maxOccurs="1"></xs:element>
            <xs:element name="DFSNamespace" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="Name" type="xs:string" minOccurs="0" maxOccurs="1"></xs:element>
                        <xs:element name="Type" type="tns:DFSNamespaceType" minOccurs="0" maxOccurs="1"></xs:element>
                        <xs:element name="RootTargetsCount" type="xs:int" minOccurs="0" maxOccurs="1"></xs:element>
                        <xs:element name="IsSiteCostingEnabled" type="xs:boolean" minOccurs="0" maxOccurs="1"></xs:element>
                        <xs:element name="IsTargetFailbackEnabled" type="xs:boolean" minOccurs="0" maxOccurs="1"></xs:element>
                        <xs:element name="IsRootTargetOnline" type="xs:boolean" minOccurs="0" maxOccurs="1"></xs:element>
                        <xs:element name="IsABEEnabled" type="xs:boolean" minOccurs="0" maxOccurs="1"></xs:element>
                        <xs:element name="IsABEEnabledOnRootShare" type="xs:boolean" minOccurs="0" maxOccurs="1"></xs:element>
                        <xs:element name="IsCluster" type="xs:boolean" minOccurs="0" maxOccurs="1"></xs:element > 
                    </xs:sequence>   
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    
    <xs:complexType name="IPAddressType">
        <xs:sequence>
            <xs:element name="IPAddr" type="xs:string" minOccurs="0" maxOccurs="1"></xs:element>
            <xs:element name="ADSite" type="xs:string" minOccurs="0" maxOccurs="1"></xs:element>
        </xs:sequence>
    </xs:complexType>
    
    <xs:simpleType name="DFSNamespaceType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="Standalone"/>
            <xs:enumeration value="Windows2000"/>
            <xs:enumeration value="Windows2008"/>
        </xs:restriction>
    </xs:simpleType>
    

    <xs:complexType name="FSRMType">
        <xs:sequence>
            <xs:element name="ServiceStarted" type="xs:string"></xs:element>
            <xs:element name="Cluster" minOccurs="0" maxOccurs="1">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="ServiceInstallationOnClusterConsistent" type="xs:string" minOccurs="0" maxOccurs="1"></xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>    
    
    <xs:complexType name="NFSType">
        <xs:sequence>
            <xs:element name="ServiceStarted" type="xs:string"></xs:element>
        </xs:sequence>
    </xs:complexType>    


</xs:schema>