<?xml version="1.0" encoding="gb2312"?>
<xs:schema targetNamespace="http://www.h3c.com/netconf/config:1.0"
                  elementFormDefault="qualified"
                  xmlns="http://www.h3c.com/netconf/config:1.0"
                  xmlns:base="http://www.h3c.com/netconf/base:1.0"
                  xmlns:netconf ="urn:ietf:params:xml:ns:netconf:base:1.0"
                  xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:import namespace="http://www.h3c.com/netconf/base:1.0" schemaLocation="basetype.xsd"/>
  <xs:import schemaLocation="netconf.xsd" namespace="urn:ietf:params:xml:ns:netconf:base:1.0"/>
  <xs:annotation>
    <xs:documentation>
       802.1x module config definition
    </xs:documentation>
  </xs:annotation>
  <xs:complexType name="DOT1XVLANID">
    <xs:simpleContent>
      <xs:restriction base="base:UnsignedInteger32">
        <xs:maxInclusive value="4094"/>
        <xs:minInclusive value="1"/>
      </xs:restriction>
    </xs:simpleContent>
  </xs:complexType>
  <xs:element name="Dot1X">
    <xs:complexType>
      <xs:choice maxOccurs="unbounded">
        <xs:element name="Protocol" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Dot1x protocol related paramenters</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:all>
              <xs:element name="Enable" nillable="true" minOccurs="0">
                <xs:annotation>
                  <xs:documentation>
                    This element controls, on the local system, whether or not Dot1x is enabled.
                  </xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:restriction base="base:Boolean"/>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
              <xs:element name="AuthenMethod" nillable="true" minOccurs="0">
                <xs:annotation>
                  <xs:documentation>The Authentication Method of 802.1x:
                         1--Chap; 2--PAP; 3--EAP;
                  </xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:restriction base="base:UnsignedInteger32">
                      <xs:enumeration value="1"></xs:enumeration>
                      <xs:enumeration value="2"></xs:enumeration>
                      <xs:enumeration value="3"></xs:enumeration>
                    </xs:restriction>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
              <xs:element name="DomainDelimiterAt" nillable="true" minOccurs="0">
                <xs:annotation>
                  <xs:documentation>indicate whether there is delimiter "@" between username and domain.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:restriction base="base:Boolean"/>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
              <xs:element name="DomainDelimiterSlash" nillable="true" minOccurs="0">
                <xs:annotation>
                  <xs:documentation>indicate whether there is delimiter "/" between username and domain.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:restriction base="base:Boolean"/>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
              <xs:element name="DomainDelimiterBackSlash" nillable="true" minOccurs="0">
                <xs:annotation>
                  <xs:documentation>indicate whether there is delimiter "\" between username and domain.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:restriction base="base:Boolean"/>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
              <xs:element name="DomainDelimiterDot" nillable="true" minOccurs="0">
                <xs:annotation>
                  <xs:documentation>indicate whether there is delimiter "." between username and domain.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:restriction base="base:Boolean"/>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
              <xs:element name="QuietEnable" nillable="true" minOccurs="0">
                <xs:annotation>
                  <xs:documentation>whether Dot1X is globally queit.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:restriction base="base:Boolean"/>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
              <xs:element name="QuietInterval" nillable="true" minOccurs="0">
                <xs:annotation>
                  <xs:documentation>Period value of Quiet timer</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:restriction base="base:UnsignedInteger32">
                        <xs:minInclusive value="10"></xs:minInclusive>
                        <xs:maxInclusive value="120"></xs:maxInclusive>
                    </xs:restriction>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
              <xs:element name="HandshakeInterval" nillable="true" minOccurs="0">
                <xs:annotation>
                  <xs:documentation>Period value of handshake timer</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:restriction base="base:UnsignedInteger32">
                        <xs:minInclusive value="5"></xs:minInclusive>
                        <xs:maxInclusive value="1024"></xs:maxInclusive>
                    </xs:restriction>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
              <xs:element name="ReauthenInterval" nillable="true" minOccurs="0">
                <xs:annotation>
                  <xs:documentation>Period value of re-authentication timer</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:restriction base="base:UnsignedInteger32">
                        <xs:minInclusive value="60"></xs:minInclusive>
                        <xs:maxInclusive value="7200"></xs:maxInclusive>
                    </xs:restriction>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
              <xs:element name="ServerInterval" nillable="true" minOccurs="0">
                <xs:annotation>
                  <xs:documentation>Period value of server response timer</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:restriction base="base:UnsignedInteger32">
                        <xs:minInclusive value="100"></xs:minInclusive>
                        <xs:maxInclusive value="300"></xs:maxInclusive>
                    </xs:restriction>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
              <xs:element name="SupplicantInterval" nillable="true" minOccurs="0">
                <xs:annotation>
                  <xs:documentation>Period value of supplicant response timer(response /ID exclusively)</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:restriction base="base:UnsignedInteger32">
                        <xs:minInclusive value="1"></xs:minInclusive>
                        <xs:maxInclusive value="120"></xs:maxInclusive>
                    </xs:restriction>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
              <xs:element name="ReqIDInterval" nillable="true" minOccurs="0">
                <xs:annotation>
                  <xs:documentation>Period value of supplicant response/ID timer</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:restriction base="base:UnsignedInteger32">
                        <xs:minInclusive value="1"></xs:minInclusive>
                        <xs:maxInclusive value="120"></xs:maxInclusive>
                    </xs:restriction>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
              <xs:element name="RequestRetryCount" nillable="true" minOccurs="0">
                <xs:annotation>
                  <xs:documentation>The Max count of retrying to send out dot1X¡¯s packets</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:restriction base="base:UnsignedInteger32">
                        <xs:minInclusive value="1"></xs:minInclusive>
                        <xs:maxInclusive value="10"></xs:maxInclusive>
                    </xs:restriction>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
            </xs:all>
            <xs:attributeGroup ref="base:TableAttributeGroup"></xs:attributeGroup>
          </xs:complexType>
        </xs:element>
        <xs:element name="EAD" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Dot1 EAD feature table</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:all>
              <xs:element name="AssistEnable" nillable="true" minOccurs="0">
                <xs:annotation>
                <xs:documentation>
                  This element indicates whether Ead assistance is enabled.
                </xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:restriction base="base:Boolean"/>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
              <xs:element name="AssistURL" nillable="true" minOccurs="0">
                <xs:annotation>
                  <xs:documentation>URL used in Ead assistance feature</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:restriction base="base:String">
                      <xs:minLength value ="1"></xs:minLength>
                      <xs:maxLength value ="64"></xs:maxLength>
                    </xs:restriction>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
            </xs:all>
            <xs:attributeGroup ref="base:TableAttributeGroup"></xs:attributeGroup>
          </xs:complexType>
        </xs:element>
        <xs:element name="EADFreeIPs" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Dot1 EAD assistant free IP table</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice maxOccurs="unbounded">
              <xs:element name="FreeIP" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                  <xs:all>
                    <xs:element name="IPv4Address" nillable="true" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>IP address used in EAD assistance feature</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:Ipv4Address"/>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="IPv4Mask" nillable="true" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>IP address mask.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:String"/>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                  </xs:all>
                  <xs:attributeGroup ref="base:RowAttributeGroup"></xs:attributeGroup>
                </xs:complexType>
              </xs:element>
            </xs:choice>
            <xs:attributeGroup ref="base:TableAttributeGroup"></xs:attributeGroup>
          </xs:complexType>
        </xs:element>
        <xs:element name="Smarton" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Dot1 Smarton feature table</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:all>
              <xs:element name="SwitchID" nillable="true" minOccurs="0">
                <xs:annotation>
                <xs:documentation>
                  Dot1x smarton switch ID.
                </xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:restriction base="base:String">
                      <xs:minLength value ="1"></xs:minLength>
                      <xs:maxLength value ="30"></xs:maxLength>
                    </xs:restriction>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
              <xs:element name="Password" nillable="true" minOccurs="0">
                <xs:annotation>
                  <xs:documentation>Dot1x smarton password.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:restriction base="base:String">
                      <xs:minLength value ="1"></xs:minLength>
                      <xs:maxLength value ="16"></xs:maxLength>
                    </xs:restriction>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
              <xs:element name="RetryCount" nillable="true" minOccurs="0">
                <xs:annotation>
                  <xs:documentation>Maxium attempt count to send out Request packets with smarton notification.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:restriction base="base:UnsignedInteger32">
                      <xs:minInclusive value="1"></xs:minInclusive>
                      <xs:maxInclusive value="10"></xs:maxInclusive>
                    </xs:restriction>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
            </xs:all>
            <xs:attributeGroup ref="base:TableAttributeGroup"></xs:attributeGroup>
          </xs:complexType>
        </xs:element>
        <xs:element name="Interfaces" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Dot1X interface's information</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice maxOccurs="unbounded">
              <xs:element name="Interface" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                  <xs:all>
                    <xs:element name="IfIndex" nillable="true" type="base:NameAndIndexUnion" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>The index of a Interface</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Enable" nillable="true" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Indicate whether Dot1X is enabled on a port.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:Boolean"/>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="SmartonEnable" nillable="true" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Enable Status of Smarton feature.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:Boolean"/>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="PortControl" nillable="true" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Portcontrol status of the interface:
                         1--forced-authorized; 2--forced-unauthorized; 3--auto; 
                        </xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:enumeration value="1"></xs:enumeration>
                            <xs:enumeration value="2"></xs:enumeration>
                            <xs:enumeration value="3"></xs:enumeration>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="PortMethod" nillable="true" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Dot1X Control Method of the interface:
                         1--Portbased; 2--MACbased;
                        </xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:enumeration value="1"></xs:enumeration>
                            <xs:enumeration value="2"></xs:enumeration>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="ReauthenEnable" nillable="true" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Indicate whether re-authentication is enabled on this interface.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:Boolean"/>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="MulticastTrigger" nillable="true" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Indicate whether the status of sending multicast request/ID packets is enabled.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:Boolean"/>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="UnicastTrigger" nillable="true" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Indicate whether the status of sending unicast request/ID packets is enabled.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:Boolean"/>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="HandshakeEnable" nillable="true" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Indicate whether handshake feature is enabled on this interface.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:Boolean"/>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="SecHandshakeEnable" nillable="true" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Indicate whether secure handshake feature is enabled on this interface.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:Boolean"/>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="ReauthUnreachableMode" nillable="true" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Status of user online or offline when the AAA server is not available during re-authenticating:
                         0--Offline; 1--Online;
                        </xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:enumeration value="0"></xs:enumeration>
                            <xs:enumeration value="1"></xs:enumeration>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="MandDomain" nillable="true" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Mandatory Domain set on this interface</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:String">
	                    <xs:minLength value ="1"></xs:minLength>
	                    <xs:maxLength value ="255"></xs:maxLength>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="MaxUser" type="base:UnsignedInteger32" nillable="true" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Maximum user count on this interface</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="FailVLAN" type="DOT1XVLANID" nillable="true" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>
                          VLAN for authentication failure users on the interface
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="CriticalVLAN" type="DOT1XVLANID" nillable="true" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>
                          VLAN for server unavailable situation on the interface
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="GuestVLAN" type="DOT1XVLANID" nillable="true" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>
                          VLAN for unauthenticated users on the interface
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                  </xs:all>
                  <xs:attributeGroup ref="base:RowAttributeGroup"></xs:attributeGroup>
                </xs:complexType>
              </xs:element>
            </xs:choice>
            <xs:attributeGroup ref="base:TableAttributeGroup"></xs:attributeGroup>
          </xs:complexType>
        </xs:element>
      </xs:choice>
      <xs:attributeGroup ref="base:NodeAttributeGroup"></xs:attributeGroup>
    </xs:complexType>
  </xs:element>
</xs:schema>
