<?xml version="1.0" encoding="gb2312" ?>
<xs:schema targetNamespace="http://www.h3c.com/netconf/data:1.0"
                  elementFormDefault="qualified"
                  xmlns="http://www.h3c.com/netconf/data:1.0"
                  xmlns:base="http://www.h3c.com/netconf/base:1.0"
                  xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:import schemaLocation="basetype.xsd" namespace="http://www.h3c.com/netconf/base:1.0"></xs:import>

  <xs:simpleType name="NoAging">
    <xs:annotation>
      <xs:documentation>No aging </xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:unsignedInt">
      <xs:enumeration value="0"></xs:enumeration>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="AgingTime">
    <xs:annotation>
      <xs:documentation>Aging time 5 to 43200 minutes. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:unsignedInt">
      <xs:minInclusive value="5"/>
      <xs:maxInclusive value="43200"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="_VoiceVlanAging">
    <xs:annotation>
      <xs:documentation>NoAging or AgingTime </xs:documentation>
    </xs:annotation>
    <xs:union memberTypes="NoAging AgingTime"></xs:union>
  </xs:simpleType>

  <xs:complexType name="VoiceVlanAging">
    <xs:annotation>
      <xs:documentation>NoAging or AgingTime </xs:documentation>
    </xs:annotation>
    <xs:simpleContent >
      <xs:extension base="_VoiceVlanAging">
        <xs:attributeGroup ref="base:ColumnAttributeGroup"></xs:attributeGroup>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:element name="VLAN">
    <xs:complexType>
      <xs:choice maxOccurs="unbounded">
        <xs:element name="VLANs" minOccurs="0">
          <xs:annotation>
            <xs:documentation>This table contains VLAN information.</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice maxOccurs="unbounded">
              <xs:element name="VLANID" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                  <xs:all>
                    <xs:element name="ID" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>VLAN identification as table index.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="1"></xs:minInclusive>
                            <xs:maxInclusive value="4094"></xs:maxInclusive>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Description" minOccurs="0" nillable="true" >
                      <xs:annotation>
                        <xs:documentation>VLAN description. String length constraints must be in range(0..255).</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:Text">
                            <xs:minLength value ="1"></xs:minLength>
                            <xs:maxLength value="255"></xs:maxLength>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Name" minOccurs="0" nillable="true" >
                      <xs:annotation>
                        <xs:documentation>VLAN name. String length constraints must be in range(1..32).</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:Text">
                            <xs:minLength value ="1"></xs:minLength>
                            <xs:maxLength value="32"></xs:maxLength>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="RouteIfIndex" minOccurs="0" type="base:NameAndIndexUnion" nillable="true">
                      <xs:annotation>
                        <xs:documentation>VLAN interface index.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="UntaggedPortList" minOccurs="0" nillable="true" type="base:PortRange">
                      <xs:annotation>
                        <xs:documentation>List of ports that are assigned to the VLAN as untagged VLAN members.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="TaggedPortList" minOccurs="0" nillable="true" type="base:PortRange">
                      <xs:annotation>
                        <xs:documentation>List of ports that are assigned to the VLAN as tagged VLAN members.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="AccessPortList" minOccurs="0" nillable="true" type="base:PortRange" >
                      <xs:annotation>
                        <xs:documentation>Access port list of the VLAN.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Ipv4" minOccurs="0" nillable="true" >
                      <xs:annotation>
                        <xs:documentation>IPv4 address of the VLAN interface</xs:documentation>
                      </xs:annotation>
                      <xs:complexType >
                        <xs:all>
                          <xs:element name="Ipv4Address" minOccurs="0" nillable="true" type="base:Ipv4Address" >
                            <xs:annotation>
                              <xs:documentation>IPv4 address of the VLAN interface.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="Ipv4Mask" minOccurs="0" nillable="true" type="base:Ipv4Address" >
                            <xs:annotation>
                              <xs:documentation>IPv4 address mask.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Shared" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                         <xs:documentation>Whether the VLAN is shared.</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:element name="Interfaces" minOccurs="0">
          <xs:annotation>
            <xs:documentation>This table contains VLAN information for a port.</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" minOccurs="0" type="base:NameAndIndexUnion" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Interface index as table index.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Name" minOccurs="0" type="base:InterfaceName" nillable="true" >
                      <xs:annotation>
                        <xs:documentation>Full name of the interface, including the interface type and number.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="LinkType" minOccurs="0" nillable="true" >
                      <xs:annotation>
                        <xs:documentation>Port link type</xs:documentation>
                      </xs:annotation>
                      <xs:complexType >
                        <xs:annotation>
                          <xs:documentation>
                            Port link type as follows:
                            1 Access.
                            2 Trunk.
                            3 Hybrid.
                          </xs:documentation>
                        </xs:annotation>
                        <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="PVID" minOccurs="0" nillable="true" >
                      <xs:annotation>
                        <xs:documentation>Port VLAN identification.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="1"></xs:minInclusive>
                            <xs:maxInclusive value="4094"></xs:maxInclusive>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="PermitVlanList" minOccurs="0" nillable="true" type="base:VlanRange" >
                      <xs:annotation>
                        <xs:documentation>List of permitted VLANs on the port, for example 1,2,4,5-8,9</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="UntaggedVlanList" minOccurs="0" nillable="true"  type="base:VlanRange"  >
                      <xs:annotation>
                        <xs:documentation>List of VLANs to which the port is assigned as an untagged VLAN member.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="TaggedVlanList" minOccurs="0" nillable="true"  type="base:VlanRange"  >
                      <xs:annotation>
                        <xs:documentation>List of VLANs to which the port is assigned as a tagged VLAN member.</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:element name="AccessInterfaces" minOccurs="0">
          <xs:annotation>
            <xs:documentation>This table contains information about Access ports.</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" minOccurs="0" type="base:NameAndIndexUnion" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Interface index as table index</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="PVID" minOccurs="0" nillable="true" >
                      <xs:annotation>
                        <xs:documentation>Port VLAN ID</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="1"></xs:minInclusive>
                            <xs:maxInclusive value="4094"></xs:maxInclusive>
                          </xs:restriction>
                        </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="TrunkInterfaces" minOccurs="0">
          <xs:annotation>
            <xs:documentation>This table contains information about trunk ports.</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" minOccurs="0" type="base:NameAndIndexUnion" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Interface index ad table index</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="PermitVlanList" minOccurs="0" nillable="true"  type="base:VlanRange"  >
                      <xs:annotation>
                        <xs:documentation>List of permitted VLANs on the port.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="PVID" minOccurs="0" nillable="true" >
                      <xs:annotation>
                        <xs:documentation>Port VLAN identification.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="1"></xs:minInclusive>
                            <xs:maxInclusive value="4094"></xs:maxInclusive>
                          </xs:restriction>
                        </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="HybridInterfaces" minOccurs="0">
          <xs:annotation>
            <xs:documentation>This table contains information about hybrid ports.</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" minOccurs="0" type="base:NameAndIndexUnion" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Interface index as table index.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="UntaggedVlanList" minOccurs="0" nillable="true"  type="base:VlanRange"  >
                      <xs:annotation>
                        <xs:documentation>List of VLANs to which the port is assigned as an untagged VLAN member.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="TaggedVlanList" minOccurs="0" nillable="true"  type="base:VlanRange"  >
                      <xs:annotation>
                        <xs:documentation>List of VLANs to which the port is assigned as a tagged VLAN member.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="PVID" minOccurs="0" nillable="true" >
                      <xs:annotation>
                        <xs:documentation>Port VLAN identification.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="1"></xs:minInclusive>
                            <xs:maxInclusive value="4094"></xs:maxInclusive>
                          </xs:restriction>
                        </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="VoiceInfo" minOccurs="0" maxOccurs="1">
          <xs:annotation>
            <xs:documentation>This table contains information about VoiceVlan.</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:all>
              <xs:element name="AgingTime" minOccurs="0" nillable="true" type="VoiceVlanAging">
                <xs:annotation>
                  <xs:documentation>Voice VLAN aging time</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="LLDPTrack" type="base:Boolean" minOccurs="0" nillable="true" >
                <xs:annotation>
                  <xs:documentation>Whether LLDP is enable for automatic IP phone discovery</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="Mode" minOccurs="0" nillable="true" >
                <xs:annotation>
                  <xs:documentation>Voice VLAN security mode</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="CurNum" minOccurs="0" type="base:UnsignedInteger32" nillable="true">
                <xs:annotation>
                  <xs:documentation>Number of existing voice VLANs</xs:documentation>
                </xs:annotation>
              </xs:element>
            </xs:all>
            <xs:attributeGroup ref="base:TableAttributeGroup"></xs:attributeGroup>
          </xs:complexType>
        </xs:element>

        <xs:element name="VoiceOUI" minOccurs="0">
          <xs:annotation>
            <xs:documentation>This table contains information about VoiceVlan OUI.</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice maxOccurs="unbounded">
              <xs:element name="OUI" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                  <xs:documentation>Row name</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:all>
                    <xs:element name="Address" minOccurs="0" type="base:MacAddress" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Source MAC address of voice traffic</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Mask" minOccurs="0" type="base:MacAddress" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The valid length of the OUI address by a mask</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Description" minOccurs="0" nillable="true" >
                      <xs:annotation>
                        <xs:documentation>The OUI address description</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:Text">
                            <xs:minLength value ="1"></xs:minLength>
                            <xs:maxLength value="30"></xs:maxLength>
                          </xs:restriction>
                        </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="VoicePorts" minOccurs="0">
          <xs:annotation>
            <xs:documentation>This table contains information about VoiceVlan Ports. </xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice maxOccurs="unbounded">
              <xs:element name="Interface" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                  <xs:documentation>Row name</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:all>
                    <xs:element name="IfIndex" minOccurs="0" type="base:NameAndIndexUnion" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Interface index as table index.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Vlan" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Voice VLAN identification on the port</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="1"></xs:minInclusive>
                            <xs:maxInclusive value="4094"></xs:maxInclusive>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Mode" minOccurs="0" nillable="true" >
                      <xs:annotation>
                        <xs:documentation>Voice VLAN assignment mode on the port</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="QoS" nillable="true" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>QoS information of voice VLAN on the port</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="Trust" type="base:Boolean" nillable="true" minOccurs="0">
                            <xs:annotation>
                              <xs:documentation>Whether LLDP is enable for automatic IP phone discovery</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="CoS" nillable="true" minOccurs="0">
                            <xs:annotation>
                              <xs:documentation>The CoS values for incoming voice VLAN packets on the port</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:minInclusive value="0"></xs:minInclusive>
                                  <xs:maxInclusive value="7"></xs:maxInclusive>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="DSCP" minOccurs="0" nillable="true" >
                            <xs:annotation>
                              <xs:documentation>The DSCP values for incoming voice VLAN packets on the port</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:minInclusive value="0"></xs:minInclusive>
                                  <xs:maxInclusive value="63"></xs:maxInclusive>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                        </xs:all>
                      </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:choice>
      <xs:attributeGroup ref="base:NodeAttributeGroup"></xs:attributeGroup>
    </xs:complexType>
  </xs:element>
</xs:schema>