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

  <xs:complexType name="Acl_Name">
    <xs:simpleContent>
      <xs:restriction base="base:String">
        <xs:pattern value="^[a-zA-Z][^?&#x09;&#x0d;&#x0a;]{0,62}$"></xs:pattern>
      </xs:restriction>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="Acl_GroupIndex">
    <xs:simpleContent>
      <xs:restriction base="base:String">
        <xs:pattern value="(^[2345][0-9]{3}$)|(^[a-zA-Z][^?&#x09;&#x0d;&#x0a;]{0,62}$)"></xs:pattern>
      </xs:restriction>
    </xs:simpleContent>
  </xs:complexType>
  
  <xs:complexType name="Acl_BscGroupIndex">
    <xs:simpleContent>
      <xs:restriction base="base:String">
        <xs:pattern value="(^2[0-9]{3}$)|(^[a-zA-Z][^?&#x09;&#x0d;&#x0a;]{0,62}$)"></xs:pattern>
      </xs:restriction>
    </xs:simpleContent>
  </xs:complexType>
  
  <xs:complexType name="Acl_AdvGroupIndex">
    <xs:simpleContent>
      <xs:restriction base="base:String">
        <xs:pattern value="(^3[0-9]{3}$)|(^[a-zA-Z][^?&#x09;&#x0d;&#x0a;]{0,62}$)"></xs:pattern>
      </xs:restriction>
    </xs:simpleContent>
  </xs:complexType>
  
  <xs:complexType name="Acl_MACGroupIndex">
    <xs:simpleContent>
      <xs:restriction base="base:String">
        <xs:pattern value="(^4[0-9]{3}$)|(^[a-zA-Z][^?&#x09;&#x0d;&#x0a;]{0,62}$)"></xs:pattern>
      </xs:restriction>
    </xs:simpleContent>
  </xs:complexType>
  
  <xs:complexType name="Acl_UserGroupIndex">
    <xs:simpleContent>
      <xs:restriction base="base:String">
        <xs:pattern value="(^5[0-9]{3}$)|(^[a-zA-Z][^?&#x09;&#x0d;&#x0a;]{0,62}$)"></xs:pattern>
      </xs:restriction>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="Acl_TimeRange">
    <xs:simpleContent>
      <xs:restriction base="base:String">
        <xs:pattern value="^[a-zA-Z][^?&#x09;&#x0d;&#x0a;]{0,31}$"></xs:pattern>
      </xs:restriction>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="Acl_RuleString">
    <xs:simpleContent>
      <xs:restriction base="base:String">
        <xs:pattern value="^([a-fA-F0-9]{2}){1,127}$"></xs:pattern>
      </xs:restriction>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="Acl_Comment">
    <xs:simpleContent>
      <xs:restriction base="base:Text">
        <xs:minLength value="1"/>
        <xs:maxLength value="127"/>
      </xs:restriction>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="Acl_Action">
    <xs:simpleContent>
      <xs:restriction base="base:UnsignedInteger32">
        <xs:enumeration value="1"/>
        <xs:enumeration value="2"/>
      </xs:restriction>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="Acl_TcpFlag">
    <xs:simpleContent>
      <xs:restriction base="base:UnsignedInteger32">
        <xs:minInclusive value="0"></xs:minInclusive>
        <xs:maxInclusive value="1"></xs:maxInclusive>
      </xs:restriction>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="Acl_MACProtocol">
    <xs:simpleContent>
      <xs:restriction base="base:String">
        <xs:pattern value="^[a-fA-F0-9]{1,4}$"/>
      </xs:restriction>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="Acl_VRF">
    <xs:simpleContent>
      <xs:restriction base="base:String">
        <xs:minLength value ="1"></xs:minLength>
        <xs:maxLength value="31"></xs:maxLength>
      </xs:restriction>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="Acl_Status">
    <xs:simpleContent>
      <xs:restriction base="base:UnsignedInteger32">
        <xs:enumeration value="1"/>
        <xs:enumeration value="2"/>
      </xs:restriction>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="Acl_MaxOffset">
    <xs:simpleContent>
      <xs:restriction base="base:UnsignedInteger32">
        <xs:minInclusive value="0"/>
        <xs:maxInclusive value="254"/>
      </xs:restriction>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="Acl_MaxLen">
    <xs:simpleContent>
      <xs:restriction base="base:UnsignedInteger32">
        <xs:minInclusive value="0"/>
        <xs:maxInclusive value="254"/>
      </xs:restriction>
    </xs:simpleContent>
  </xs:complexType>
  
  <xs:complexType name="Acl_MatchIndex">
    <xs:simpleContent>
      <xs:restriction base="base:UnsignedInteger32">
        <xs:minInclusive value="0"/>
        <xs:maxInclusive value="65534"/>
      </xs:restriction>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="ObjectType">
    <xs:simpleContent>
      <xs:restriction base="base:UnsignedInteger32">
        <xs:enumeration value="1"/>
        <xs:enumeration value="2"/>
        <xs:enumeration value="3"/>
      </xs:restriction>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="AppDirType">
    <xs:simpleContent>
      <xs:restriction base="base:UnsignedInteger32">
        <xs:enumeration value="1"/>
        <xs:enumeration value="2"/>
      </xs:restriction>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="AclType">
    <xs:simpleContent>
      <xs:restriction base="base:UnsignedInteger32">
        <xs:enumeration value="1"/>
        <xs:enumeration value="2"/>
        <xs:enumeration value="3"/>
        <xs:enumeration value="4"/>
        <xs:enumeration value="5"/>
      </xs:restriction>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="Apply_AclGroup">
    <xs:simpleContent>
      <xs:restriction base="base:String">
        <xs:pattern value="(^0$)|(^[2345][0-9]{3}$)|(^[a-zA-Z][^?&#x09;&#x0d;&#x0a;]{0,62}$)"></xs:pattern>
      </xs:restriction>
    </xs:simpleContent>
  </xs:complexType>  
  <xs:complexType name="Group_AclGroup">
    <xs:simpleContent>
      <xs:restriction base="base:String">
        <xs:pattern value="(^[123]$)|(^[2345][0-9]{3}$)|(^[a-zA-Z][^?&#x09;&#x0d;&#x0a;]{0,62}$)"></xs:pattern>
      </xs:restriction>
    </xs:simpleContent>
  </xs:complexType>  
  <xs:complexType name="Rule_AclGroup">
    <xs:simpleContent>
      <xs:restriction base="base:String">
        <xs:pattern value="(^[2345][0-9]{3}$)|(^[a-zA-Z][^?&#x09;&#x0d;&#x0a;]{0,62}$)"></xs:pattern>
      </xs:restriction>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="RuleIDType">
    <xs:simpleContent>
      <xs:restriction base="base:UnsignedInteger32">
        <xs:minInclusive value="0"/>
        <xs:maxInclusive value="65534"/>
      </xs:restriction>
    </xs:simpleContent>
  </xs:complexType>
  <xs:complexType name="AppStatusType">
    <xs:simpleContent>
      <xs:restriction base="base:UnsignedInteger32">
        <xs:enumeration value="1"/>
        <xs:enumeration value="2"/>
        <xs:enumeration value="3"/>
      </xs:restriction>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="ZoneNameString">
    <xs:simpleContent>
      <xs:restriction base="base:String">
        <xs:maxLength value ="31"/>
      </xs:restriction>
    </xs:simpleContent>
  </xs:complexType>

  <!-- Module Table -->
  <xs:element name="ACL">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">

        <!-- Base Table -->
        <xs:element name="Base" minOccurs="0">
          <xs:annotation>
            <xs:documentation>ACL base information table</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:all>
              <xs:element name="ProcessingStatus" minOccurs="0" nillable="true">
                <xs:annotation>
                  <xs:documentation>Processing status. 1: Processing, 2: Idle</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:restriction base="base:UnsignedInteger32">
                      <xs:enumeration value="1" />
                      <xs:enumeration value="2" />
                    </xs:restriction>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
            </xs:all>
            <xs:attributeGroup ref="base:TableAttributeGroup"></xs:attributeGroup>
          </xs:complexType>
        </xs:element>

        <!-- Capability Table -->
        <xs:element name="Capability" minOccurs="0">
          <xs:annotation>
            <xs:documentation>ACL capability table.</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:all>
              <xs:element name="UserAclL2" minOccurs="0">
                <xs:annotation>
                  <xs:documentation>
                    Capability parameters of Layer 2 frame rule.
                  </xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:all>
                    <xs:element name="L2MaxOffset" minOccurs="0" type="Acl_MaxOffset" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Maximum offset from the beginning of Layer 2 frame.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="L2MaxLen" minOccurs="0" type="Acl_MaxLen" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Maximum length of the matching pattern of Layer 2 frame.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                  </xs:all>
                </xs:complexType>
              </xs:element>
              <xs:element name="UserAclL4" minOccurs="0">
                <xs:annotation>
                  <xs:documentation>
                    Capability parameters of Layer 4 frame rule.
                  </xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:all>
                    <xs:element name="L4MaxOffset" minOccurs="0" type="Acl_MaxOffset" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Maximum offset from the beginning of Layer 4 frame.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="L4MaxLen" minOccurs="0" type="Acl_MaxLen" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Maximum length of the matching pattern of Layer 4 frame.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                  </xs:all>
                </xs:complexType>
              </xs:element>
              <xs:element name="UserAclIPv4" minOccurs="0">
                <xs:annotation>
                  <xs:documentation>
                    Capability parameters of IPv4 packet rule.
                  </xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:all>
                    <xs:element name="IPv4MaxOffset" minOccurs="0" type="Acl_MaxOffset" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Maximum offset from the beginning of IPv4 packet.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="IPv4MaxLen" minOccurs="0" type="Acl_MaxLen" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Maximum length of the matching pattern of IPv4 packet.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                  </xs:all>
                </xs:complexType>
              </xs:element>
              <xs:element name="UserAclIPv6" minOccurs="0">
                <xs:annotation>
                  <xs:documentation>
                    Capability parameters of IPv6 packet rule.
                  </xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:all>
                    <xs:element name="IPv6MaxOffset" minOccurs="0" type="Acl_MaxOffset" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Maximum offset from the beginning of IPv6 packet.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="IPv6MaxLen" minOccurs="0" type="Acl_MaxLen" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Maximum length of the matching pattern of IPv6 packet.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                  </xs:all>
                </xs:complexType>
              </xs:element>
            </xs:all>
            <xs:attributeGroup ref="base:TableAttributeGroup"></xs:attributeGroup>
          </xs:complexType>
        </xs:element>
        
        <!-- Groups Table -->
        <xs:element name="Groups" minOccurs="0">
          <xs:annotation>
            <xs:documentation>ACL groups table.</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice maxOccurs="unbounded">
              <xs:element name="Group" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                  <xs:documentation>ACL group row.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:all>
                    <xs:element name="GroupType" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Group type. 1: IPv4, 2: IPv6, 3: MAC, 4: User-defined.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:enumeration value="1"/>
                            <xs:enumeration value="2"/>
                            <xs:enumeration value="3"/>
                            <xs:enumeration value="4"/>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="GroupID" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Group ID. IPv4: 2000~5999, IPv6: 2000~3999.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="2000"></xs:minInclusive>
                            <xs:maxInclusive value="5999"></xs:maxInclusive>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="MatchOrder" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Match order. 1: config, 2: auto. Default: config.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:enumeration value="1"/>
                            <xs:enumeration value="2"/>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Step" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Step length, range from 1 to 20. Default: 5.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="1"></xs:minInclusive>
                            <xs:maxInclusive value="20"></xs:maxInclusive>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Name" minOccurs="0" type="Acl_Name" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          Name of the ACL group, a case-insensitive string of 1 to 63 characters.
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Description" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Description of the ACL group, a string of 1 to 127 characters.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:Text">
                            <xs:minLength value ="1"></xs:minLength>
                            <xs:maxLength value="127"></xs:maxLength>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="RuleNum" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The rules number of the ACL group. Range from 0 to 65535.</xs:documentation>
                      </xs:annotation>
                       <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="0"></xs:minInclusive>
                            <xs:maxInclusive value="65535"></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>

        <!-- NamedGroups Table -->
        <xs:element name="NamedGroups" minOccurs="0">
          <xs:annotation>
            <xs:documentation>ACL named groups table.</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice maxOccurs="unbounded">
              <xs:element name="Group" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                  <xs:documentation>ACL group row.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:all>
                    <xs:element name="GroupType" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Group type. 1: IPv4, 2: IPv6, 3: MAC, 4: User-defined.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:enumeration value="1"/>
                            <xs:enumeration value="2"/>
                            <xs:enumeration value="3"/>
                            <xs:enumeration value="4"/>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="GroupCategory" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Group type. 0: invalid, 1: basic, 2: advanced.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:enumeration value="0"/>
                            <xs:enumeration value="1"/>
                            <xs:enumeration value="2"/>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="GroupIndex" minOccurs="0" type="Acl_GroupIndex" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          Acl Group Name of Index.If it's Index, range from 2000 to 5999.
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="MatchOrder" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Match order. 1: config, 2: auto. Default: config.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:enumeration value="1"/>
                            <xs:enumeration value="2"/>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Step" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Step length, range from 1 to 20. Default: 5.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="1"></xs:minInclusive>
                            <xs:maxInclusive value="20"></xs:maxInclusive>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Description" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Description of the ACL group, a string of 1 to 127 characters.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:Text">
                            <xs:minLength value ="1"></xs:minLength>
                            <xs:maxLength value="127"></xs:maxLength>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="RuleNum" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The rules number of the ACL group. Range from 0 to 65535.</xs:documentation>
                      </xs:annotation>
                       <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="0"></xs:minInclusive>
                            <xs:maxInclusive value="65535"></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>

        <!-- IPv4BasicRules Table -->
        <xs:element name="IPv4BasicRules" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Table of IPv4 basic ACL rules.</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice maxOccurs="unbounded">
              <xs:element name="Rule" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                  <xs:all>
                    <xs:element name="GroupID" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Group ID. Range from 2000 to 2999.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="2000"></xs:minInclusive>
                            <xs:maxInclusive value="2999"></xs:maxInclusive>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="RuleID" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Rule ID. Range from 0 to 65534.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="0"></xs:minInclusive>
                            <xs:maxInclusive value="65534"></xs:maxInclusive>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Action" minOccurs="0" type="Acl_Action" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Action type. 1: deny, 2: permit.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="SrcAny" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The flag of matching any IP address.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="SrcIPv4" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Source IP, including SrcIPv4Addr and SrcIPv4Wildcard.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="SrcIPv4Addr" type="base:Ipv4Address" nillable="true">
                            <xs:annotation>
                              <xs:documentation>Source IP address.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="SrcIPv4Wildcard" type="base:Ipv4Address" nillable="true">
                            <xs:annotation>
                              <xs:documentation>Source IP wildcard.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Fragment" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          The flag of matching fragmented packet.
                          0: the rule applies to all fragments and non-fragments,
                          1: the rule applies to only non-first fragments.
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="TimeRange" minOccurs="0" type="Acl_TimeRange" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          Specifies a time range for the rule, a case-insensitive string of 1 to 32 characters.
                          It must start with an English letter.
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="VRF" minOccurs="0" type="Acl_VRF" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          Applies the rule to packets in a VRF instance.
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Counting" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Counts times the ACL rule has been matched.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Logging" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Logs matching packets.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Comment" minOccurs="0" type="Acl_Comment" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          Rule comment, a case-sensitive string of 1 to 127 characters.
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Status" minOccurs="0" type="Acl_Status" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Rule status. 1: active, 2: inactive.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Count" minOccurs="0" type="base:Counter64" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The number of times the ACL rule has been matched.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="MatchIndex" minOccurs="0" type="Acl_MatchIndex" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The matching index of rules when match-order of group is auto.</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>

        <!-- IPv4NamedBasicRules Table -->
        <xs:element name="IPv4NamedBasicRules" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Table of named IPv4 basic ACL rules.</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice maxOccurs="unbounded">
              <xs:element name="Rule" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                  <xs:all>
                    <xs:element name="GroupIndex" minOccurs="0" type="Acl_BscGroupIndex" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          Acl Group Name of Index.If it's Index, range from 2000 to 2999.
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="RuleID" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Rule ID. Range from 0 to 65534.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="0"></xs:minInclusive>
                            <xs:maxInclusive value="65534"></xs:maxInclusive>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Action" minOccurs="0" type="Acl_Action" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Action type. 1: deny, 2: permit.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="SrcAny" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The flag of matching any IP address.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="SrcIPv4" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Source IP, including SrcIPv4Addr and SrcIPv4Wildcard.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="SrcIPv4Addr" type="base:Ipv4Address" nillable="true">
                            <xs:annotation>
                              <xs:documentation>Source IP address.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="SrcIPv4Wildcard" type="base:Ipv4Address" nillable="true">
                            <xs:annotation>
                              <xs:documentation>Source IP wildcard.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Fragment" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          The flag of matching fragmented packet.
                          0: the rule applies to all fragments and non-fragments,
                          1: the rule applies to only non-first fragments.
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="TimeRange" minOccurs="0" type="Acl_TimeRange" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          Specifies a time range for the rule, a case-insensitive string of 1 to 32 characters.
                          It must start with an English letter.
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="VRF" minOccurs="0" type="Acl_VRF" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          Applies the rule to packets in a VRF instance.
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Counting" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Counts times the ACL rule has been matched.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Logging" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Logs matching packets.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Comment" minOccurs="0" type="Acl_Comment" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          Rule comment, a case-sensitive string of 1 to 127 characters.
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Status" minOccurs="0" type="Acl_Status" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Rule status. 1: active, 2: inactive.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Count" minOccurs="0" type="base:Counter64" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The number of times the ACL rule has been matched.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="MatchIndex" minOccurs="0" type="Acl_MatchIndex" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The matching index of rules when match-order of group is auto.</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>

        <!-- IPv6BasicRules Table -->
        <xs:element name="IPv6BasicRules" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Table of IPv6 basic ACL rules.</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
              <xs:element name="Rule" minOccurs="0">
                <xs:complexType>
                  <xs:all>
                    <xs:element name="GroupID" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Group ID. Range from 2000 to 2999.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="2000"/>
                            <xs:maxInclusive value="2999"/>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="RuleID" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Rule ID. Range from 0 to 65534.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="0"/>
                            <xs:maxInclusive value="65534"/>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Action" minOccurs="0" type="Acl_Action" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Action type. 1: deny, 2: permit.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="SrcAny" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The flag of matching any source IPv6 address.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="SrcIPv6" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Source IPv6, including SrcIPv6Address and SrcIPv6Prefix.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="SrcIPv6Addr" type="base:Ipv6Address" nillable="true">
                            <xs:annotation>
                              <xs:documentation>Source IPv6 address.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="SrcIPv6Prefix" nillable="true">
                            <xs:annotation>
                              <xs:documentation>Prefix length of source IPv6 address.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:minInclusive value="1"/>
                                  <xs:maxInclusive value="128"/>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="RoutingTypeAny" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The flag of matching any routing header type.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="RoutingTypeValue" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The value of routing header type.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="0"></xs:minInclusive>
                            <xs:maxInclusive value="255"></xs:maxInclusive>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Fragment" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          The flag of matching fragmented packet.
                          0: the rule applies to all fragments and non-fragments,
                          1: the rule applies to only non-first fragments.
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="TimeRange" minOccurs="0" type="Acl_TimeRange" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          Specifies a time range for the rule, a case-insensitive string of 1 to 32 characters.
                          It must start with an English letter.
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="VRF" minOccurs="0" type="Acl_VRF" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          Applies the rule to packets in a VRF instance.
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Counting" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Counts times the ACL rule has been matched.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Logging" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Logs matching packets.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Comment" minOccurs="0" type="Acl_Comment" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          Rule comment, a case-sensitive string of 1 to 127 characters.
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Status" minOccurs="0" type="Acl_Status" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Rule status. 1: active, 2: inactive.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Count" minOccurs="0" type="base:Counter64" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The number of times the ACL rule has been matched.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="MatchIndex" minOccurs="0" type="Acl_MatchIndex" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The matching index of rules when match-order of group is auto.</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>

        <!-- IPv6NamedBasicRules Table -->
        <xs:element name="IPv6NamedBasicRules" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Table of named IPv6 basic ACL rules.</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
              <xs:element name="Rule" minOccurs="0">
                <xs:complexType>
                  <xs:all>
                    <xs:element name="GroupIndex" minOccurs="0" type="Acl_BscGroupIndex" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          Acl Group Name of Index.If it's Index, range from 2000 to 2999.
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="RuleID" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Rule ID. Range from 0 to 65534.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="0"/>
                            <xs:maxInclusive value="65534"/>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Action" minOccurs="0" type="Acl_Action" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Action type. 1: deny, 2: permit.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="SrcAny" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The flag of matching any source IPv6 address.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="SrcIPv6" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Source IPv6, including SrcIPv6Address and SrcIPv6Prefix.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="SrcIPv6Addr" type="base:Ipv6Address" nillable="true">
                            <xs:annotation>
                              <xs:documentation>Source IPv6 address.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="SrcIPv6Prefix" nillable="true">
                            <xs:annotation>
                              <xs:documentation>Prefix length of source IPv6 address.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:minInclusive value="1"/>
                                  <xs:maxInclusive value="128"/>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="RoutingTypeAny" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The flag of matching any routing header type.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="RoutingTypeValue" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The value of routing header type.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="0"></xs:minInclusive>
                            <xs:maxInclusive value="255"></xs:maxInclusive>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Fragment" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          The flag of matching fragmented packet.
                          0: the rule applies to all fragments and non-fragments,
                          1: the rule applies to only non-first fragments.
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="TimeRange" minOccurs="0" type="Acl_TimeRange" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          Specifies a time range for the rule, a case-insensitive string of 1 to 32 characters.
                          It must start with an English letter.
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="VRF" minOccurs="0" type="Acl_VRF" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          Applies the rule to packets in a VRF instance.
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Counting" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Counts times the ACL rule has been matched.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Logging" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Logs matching packets.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Comment" minOccurs="0" type="Acl_Comment" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          Rule comment, a case-sensitive string of 1 to 127 characters.
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Status" minOccurs="0" type="Acl_Status" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Rule status. 1: active, 2: inactive.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Count" minOccurs="0" type="base:Counter64" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The number of times the ACL rule has been matched.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="MatchIndex" minOccurs="0" type="Acl_MatchIndex" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The matching index of rules when match-order of group is auto.</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>

        <!-- IPv4AdvanceRules table -->
        <xs:element name="IPv4AdvanceRules" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Table of IPv4 advance ACL rules.</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
              <xs:element name="Rule" minOccurs="0">
                <xs:complexType>
                  <xs:all>
                    <xs:element name="GroupID" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Group ID. Range from 3000 to 3999.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="3000"/>
                            <xs:maxInclusive value="3999"/>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="RuleID" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Rule ID. Range from 0 to 65534.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="0"/>
                            <xs:maxInclusive value="65534"/>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Action" minOccurs="0" type="Acl_Action" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Action type. 1: deny, 2: permit.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="ProtocolType" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Protocol type of packets, 256 indicates IP family.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="0"/>
                            <xs:maxInclusive value="256"/>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="SrcAny" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The flag of matching any source IPv4 address.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="SrcIPv4" minOccurs="0">
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="SrcIPv4Addr" type="base:Ipv4Address" nillable="true">
                            <xs:annotation>
                              <xs:documentation>Source IPv4 address.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="SrcIPv4Wildcard" type="base:Ipv4Address" nillable="true">
                            <xs:annotation>
                              <xs:documentation>Source IPv4 address wildcard.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="DstAny" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The flag of matching any destination IPv4 address.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="DstIPv4" minOccurs="0">
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="DstIPv4Addr" type="base:Ipv4Address" nillable="true">
                            <xs:annotation>
                              <xs:documentation>Destination IPv4 address.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="DstIPv4Wildcard" type="base:Ipv4Address" nillable="true">
                            <xs:annotation>
                              <xs:documentation>Destination IPv4 address wildcard.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="DSCP" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The value of DSCP of IP packet.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="0"/>
                            <xs:maxInclusive value="63"/>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Precedence" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The value of IP packet's precedence.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="0"/>
                            <xs:maxInclusive value="7"/>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="TOS" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The value of IP packet's TOS.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="0"/>
                            <xs:maxInclusive value="15"/>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="SrcPort" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Source port, including SrcPortOp, SrcPortValue1 and SrcPortValue2.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="SrcPortOp" nillable="true">
                            <xs:annotation>
                              <xs:documentation>Source port operator. 1: lt, 2: eq, 3: gt, 4: neq, 5: range.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:enumeration value="1"/>
                                  <xs:enumeration value="2"/>
                                  <xs:enumeration value="3"/>
                                  <xs:enumeration value="4"/>
                                  <xs:enumeration value="5"/>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="SrcPortValue1" nillable="true">
                            <xs:annotation>
                              <xs:documentation>The value of first source port.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:minInclusive value="0"/>
                                  <xs:maxInclusive value="65535"/>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="SrcPortValue2" nillable="true">
                            <xs:annotation>
                              <xs:documentation>
                              The value of second source port; 65536 is invalid value.
                              </xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:minInclusive value="0"/>
                                  <xs:maxInclusive value="65536"/>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="DstPort" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Destination port, including DstPortOp, DstPortValue1 and DstPortValue2.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="DstPortOp" nillable="true">
                            <xs:annotation>
                              <xs:documentation>Destination port operator. 1: lt, 2: eq, 3: gt, 4: neq, 5: range.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:enumeration value="1"/>
                                  <xs:enumeration value="2"/>
                                  <xs:enumeration value="3"/>
                                  <xs:enumeration value="4"/>
                                  <xs:enumeration value="5"/>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="DstPortValue1" nillable="true">
                            <xs:annotation>
                              <xs:documentation>The value of first destination port.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:minInclusive value="0"/>
                                  <xs:maxInclusive value="65535"/>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="DstPortValue2" nillable="true">
                            <xs:annotation>
                              <xs:documentation>
                              The value of second destination port; 65536 is invalid value.
                              </xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:minInclusive value="0"/>
                                  <xs:maxInclusive value="65536"/>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="TcpFlag" minOccurs="0">
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="ACK" minOccurs="0" type="Acl_TcpFlag" nillable="true">
                            <xs:annotation>
                              <xs:documentation>TCP ACK flag.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="FIN" minOccurs="0" type="Acl_TcpFlag" nillable="true">
                            <xs:annotation>
                              <xs:documentation>TCP FIN flag.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="PSH" minOccurs="0" type="Acl_TcpFlag" nillable="true">
                            <xs:annotation>
                              <xs:documentation>TCP PSH flag.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="RST" minOccurs="0" type="Acl_TcpFlag" nillable="true">
                            <xs:annotation>
                              <xs:documentation>TCP RST flag.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="SYN" minOccurs="0" type="Acl_TcpFlag" nillable="true">
                            <xs:annotation>
                              <xs:documentation>TCP SYN flag.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="URG" minOccurs="0" type="Acl_TcpFlag" nillable="true">
                            <xs:annotation>
                              <xs:documentation>TCP URG flag.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Established" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The flags that indicating the established status of a TCP connection.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="ICMP" minOccurs="0">
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="ICMPType" nillable="true">
                            <xs:annotation>
                              <xs:documentation>The ICMP message type.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:minInclusive value="0"/>
                                  <xs:maxInclusive value="255"/>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="ICMPCode" nillable="true">
                            <xs:annotation>
                              <xs:documentation>The ICMP message code. 256 is invalid value.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:minInclusive value="0"/>
                                  <xs:maxInclusive value="256"/>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Fragment" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          The flag of matching fragmented packet.
                          0: the rule applies to all fragments and non-fragments,
                          1: the rule applies to only non-first fragments.
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="TimeRange" minOccurs="0" type="Acl_TimeRange" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          Specifies a time range for the rule, a case-insensitive string of 1 to 32 characters.
                          It must start with an English letter.
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="VRF" minOccurs="0" type="Acl_VRF" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          Applies the rule to packets in a VRF instance.
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="QoSLocalID" minOccurs="0" nillable="true">
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="1"></xs:minInclusive>
                            <xs:maxInclusive value="4095"></xs:maxInclusive>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="EncapType" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Encap Type. 1: VXLAN, 2: GRE-ENCAP, 3: IPINIP-ENCAP.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:enumeration value="1"/>
                            <xs:enumeration value="2"/>
                            <xs:enumeration value="3"/>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="InProtocolType" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Inner protocol type of packets, 256 indicates IP family.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="0"/>
                            <xs:maxInclusive value="256"/>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="VxlanID" minOccurs="0" nillable="true">
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="0"></xs:minInclusive>
                            <xs:maxInclusive value="16777215"></xs:maxInclusive>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="InSrcAny" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The flag of matching any inner-source IPv4 address.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="InSrcIPv4" minOccurs="0">
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="InSrcIPv4Addr" type="base:Ipv4Address" nillable="true">
                            <xs:annotation>
                              <xs:documentation>Source IPv4 address.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="InSrcIPv4Wildcard" type="base:Ipv4Address" nillable="true">
                            <xs:annotation>
                              <xs:documentation>Source IPv4 address wildcard.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="InDstAny" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The flag of matching any inner-destination IPv4 address.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="InDstIPv4" minOccurs="0">
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="InDstIPv4Addr" type="base:Ipv4Address" nillable="true">
                            <xs:annotation>
                              <xs:documentation>Destination IPv4 address.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="InDstIPv4Wildcard" type="base:Ipv4Address" nillable="true">
                            <xs:annotation>
                              <xs:documentation>Destination IPv4 address wildcard.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="InSrcPort" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Inner-Source port, including SrcPortOp, SrcPortValue1 and SrcPortValue2.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="InSrcPortOp" nillable="true">
                            <xs:annotation>
                              <xs:documentation>Source port operator. 1: lt, 2: eq, 3: gt, 4: neq, 5: range.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:enumeration value="1"/>
                                  <xs:enumeration value="2"/>
                                  <xs:enumeration value="3"/>
                                  <xs:enumeration value="4"/>
                                  <xs:enumeration value="5"/>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="InSrcPortValue1" nillable="true">
                            <xs:annotation>
                              <xs:documentation>The value of first source port.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:minInclusive value="0"/>
                                  <xs:maxInclusive value="65535"/>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="InSrcPortValue2" nillable="true">
                            <xs:annotation>
                              <xs:documentation>
                              The value of second source port; 65536 is invalid value.
                              </xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:minInclusive value="0"/>
                                  <xs:maxInclusive value="65536"/>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="InDstPort" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Inner-Destination port, including DstPortOp, DstPortValue1 and DstPortValue2.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="InDstPortOp" nillable="true">
                            <xs:annotation>
                              <xs:documentation>Destination port operator. 1: lt, 2: eq, 3: gt, 4: neq, 5: range.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:enumeration value="1"/>
                                  <xs:enumeration value="2"/>
                                  <xs:enumeration value="3"/>
                                  <xs:enumeration value="4"/>
                                  <xs:enumeration value="5"/>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="InDstPortValue1" nillable="true">
                            <xs:annotation>
                              <xs:documentation>The value of first destination port.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:minInclusive value="0"/>
                                  <xs:maxInclusive value="65535"/>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="InDstPortValue2" nillable="true">
                            <xs:annotation>
                              <xs:documentation>
                              The value of second destination port; 65536 is invalid value.
                              </xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:minInclusive value="0"/>
                                  <xs:maxInclusive value="65536"/>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="InEstablished" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The flags that indicating the established status of a Inner TCP connection.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Counting" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          Counts times the ACL rule has been matched.
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Logging" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Logs matching packets.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Comment" minOccurs="0" type="Acl_Comment" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          Rule comment, a case-sensitive string of 1 to 127 characters.
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Status" minOccurs="0" type="Acl_Status" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Rule status. 1: active, 2: inactive.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Count" minOccurs="0" type="base:Counter64" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The number of times the ACL rule has been matched.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="MatchIndex" minOccurs="0" type="Acl_MatchIndex" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The matching index of rules when match-order of group is auto.</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>

        <!-- IPv4NamedAdvanceRules table -->
        <xs:element name="IPv4NamedAdvanceRules" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Table of named IPv4 advance ACL rules.</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
              <xs:element name="Rule" minOccurs="0">
                <xs:complexType>
                  <xs:all>
                    <xs:element name="GroupIndex" minOccurs="0" type="Acl_AdvGroupIndex" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          Acl Group Name of Index.If it's Index, range from 3000 to 3999.
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="RuleID" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Rule ID. Range from 0 to 65534.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="0"/>
                            <xs:maxInclusive value="65534"/>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Action" minOccurs="0" type="Acl_Action" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Action type. 1: deny, 2: permit.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="ProtocolType" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Protocol type of packets, 256 indicates IP family.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="0"/>
                            <xs:maxInclusive value="256"/>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="SrcAny" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The flag of matching any source IPv4 address.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="SrcIPv4" minOccurs="0">
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="SrcIPv4Addr" type="base:Ipv4Address" nillable="true">
                            <xs:annotation>
                              <xs:documentation>Source IPv4 address.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="SrcIPv4Wildcard" type="base:Ipv4Address" nillable="true">
                            <xs:annotation>
                              <xs:documentation>Source IPv4 address wildcard.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="DstAny" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The flag of matching any destination IPv4 address.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="DstIPv4" minOccurs="0">
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="DstIPv4Addr" type="base:Ipv4Address" nillable="true">
                            <xs:annotation>
                              <xs:documentation>Destination IPv4 address.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="DstIPv4Wildcard" type="base:Ipv4Address" nillable="true">
                            <xs:annotation>
                              <xs:documentation>Destination IPv4 address wildcard.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="DSCP" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The value of DSCP of IP packet.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="0"/>
                            <xs:maxInclusive value="63"/>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Precedence" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The value of IP packet's precedence.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="0"/>
                            <xs:maxInclusive value="7"/>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="TOS" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The value of IP packet's TOS.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="0"/>
                            <xs:maxInclusive value="15"/>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="SrcPort" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Source port, including SrcPortOp, SrcPortValue1 and SrcPortValue2.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="SrcPortOp" nillable="true">
                            <xs:annotation>
                              <xs:documentation>Source port operator. 1: lt, 2: eq, 3: gt, 4: neq, 5: range.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:enumeration value="1"/>
                                  <xs:enumeration value="2"/>
                                  <xs:enumeration value="3"/>
                                  <xs:enumeration value="4"/>
                                  <xs:enumeration value="5"/>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="SrcPortValue1" nillable="true">
                            <xs:annotation>
                              <xs:documentation>The value of first source port.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:minInclusive value="0"/>
                                  <xs:maxInclusive value="65535"/>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="SrcPortValue2" nillable="true">
                            <xs:annotation>
                              <xs:documentation>
                              The value of second source port; 65536 is invalid value.
                              </xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:minInclusive value="0"/>
                                  <xs:maxInclusive value="65536"/>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="DstPort" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Destination port, including DstPortOp, DstPortValue1 and DstPortValue2.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="DstPortOp" nillable="true">
                            <xs:annotation>
                              <xs:documentation>Destination port operator. 1: lt, 2: eq, 3: gt, 4: neq, 5: range.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:enumeration value="1"/>
                                  <xs:enumeration value="2"/>
                                  <xs:enumeration value="3"/>
                                  <xs:enumeration value="4"/>
                                  <xs:enumeration value="5"/>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="DstPortValue1" nillable="true">
                            <xs:annotation>
                              <xs:documentation>The value of first destination port.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:minInclusive value="0"/>
                                  <xs:maxInclusive value="65535"/>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="DstPortValue2" nillable="true">
                            <xs:annotation>
                              <xs:documentation>
                              The value of second destination port; 65536 is invalid value.
                              </xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:minInclusive value="0"/>
                                  <xs:maxInclusive value="65536"/>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="TcpFlag" minOccurs="0">
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="ACK" minOccurs="0" type="Acl_TcpFlag" nillable="true">
                            <xs:annotation>
                              <xs:documentation>TCP ACK flag.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="FIN" minOccurs="0" type="Acl_TcpFlag" nillable="true">
                            <xs:annotation>
                              <xs:documentation>TCP FIN flag.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="PSH" minOccurs="0" type="Acl_TcpFlag" nillable="true">
                            <xs:annotation>
                              <xs:documentation>TCP PSH flag.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="RST" minOccurs="0" type="Acl_TcpFlag" nillable="true">
                            <xs:annotation>
                              <xs:documentation>TCP RST flag.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="SYN" minOccurs="0" type="Acl_TcpFlag" nillable="true">
                            <xs:annotation>
                              <xs:documentation>TCP SYN flag.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="URG" minOccurs="0" type="Acl_TcpFlag" nillable="true">
                            <xs:annotation>
                              <xs:documentation>TCP URG flag.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Established" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The flags that indicating the established status of a TCP connection.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="ICMP" minOccurs="0">
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="ICMPType" nillable="true">
                            <xs:annotation>
                              <xs:documentation>The ICMP message type.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:minInclusive value="0"/>
                                  <xs:maxInclusive value="255"/>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="ICMPCode" nillable="true">
                            <xs:annotation>
                              <xs:documentation>The ICMP message code. 256 is invalid value.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:minInclusive value="0"/>
                                  <xs:maxInclusive value="256"/>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Fragment" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          The flag of matching fragmented packet.
                          0: the rule applies to all fragments and non-fragments,
                          1: the rule applies to only non-first fragments.
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="TimeRange" minOccurs="0" type="Acl_TimeRange" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          Specifies a time range for the rule, a case-insensitive string of 1 to 32 characters.
                          It must start with an English letter.
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="VRF" minOccurs="0" type="Acl_VRF" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          Applies the rule to packets in a VRF instance.
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="QoSLocalID" minOccurs="0" nillable="true">
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="1"></xs:minInclusive>
                            <xs:maxInclusive value="4095"></xs:maxInclusive>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="EncapType" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Encap Type. 1: VXLAN</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:enumeration value="1"/>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="InProtocolType" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Inner protocol type of packets, 256 indicates IP family.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="0"/>
                            <xs:maxInclusive value="256"/>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="VxlanID" minOccurs="0" nillable="true">
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="0"></xs:minInclusive>
                            <xs:maxInclusive value="16777215"></xs:maxInclusive>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="InSrcAny" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The flag of matching any inner-source IPv4 address.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="InSrcIPv4" minOccurs="0">
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="InSrcIPv4Addr" type="base:Ipv4Address" nillable="true">
                            <xs:annotation>
                              <xs:documentation>Source IPv4 address.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="InSrcIPv4Wildcard" type="base:Ipv4Address" nillable="true">
                            <xs:annotation>
                              <xs:documentation>Source IPv4 address wildcard.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="InDstAny" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The flag of matching any inner-destination IPv4 address.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="InDstIPv4" minOccurs="0">
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="InDstIPv4Addr" type="base:Ipv4Address" nillable="true">
                            <xs:annotation>
                              <xs:documentation>Destination IPv4 address.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="InDstIPv4Wildcard" type="base:Ipv4Address" nillable="true">
                            <xs:annotation>
                              <xs:documentation>Destination IPv4 address wildcard.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="InSrcPort" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Inner-Source port, including SrcPortOp, SrcPortValue1 and SrcPortValue2.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="InSrcPortOp" nillable="true">
                            <xs:annotation>
                              <xs:documentation>Source port operator. 1: lt, 2: eq, 3: gt, 4: neq, 5: range.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:enumeration value="1"/>
                                  <xs:enumeration value="2"/>
                                  <xs:enumeration value="3"/>
                                  <xs:enumeration value="4"/>
                                  <xs:enumeration value="5"/>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="InSrcPortValue1" nillable="true">
                            <xs:annotation>
                              <xs:documentation>The value of first source port.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:minInclusive value="0"/>
                                  <xs:maxInclusive value="65535"/>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="InSrcPortValue2" nillable="true">
                            <xs:annotation>
                              <xs:documentation>
                              The value of second source port; 65536 is invalid value.
                              </xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:minInclusive value="0"/>
                                  <xs:maxInclusive value="65536"/>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="InDstPort" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Inner-Destination port, including DstPortOp, DstPortValue1 and DstPortValue2.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="InDstPortOp" nillable="true">
                            <xs:annotation>
                              <xs:documentation>Destination port operator. 1: lt, 2: eq, 3: gt, 4: neq, 5: range.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:enumeration value="1"/>
                                  <xs:enumeration value="2"/>
                                  <xs:enumeration value="3"/>
                                  <xs:enumeration value="4"/>
                                  <xs:enumeration value="5"/>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="InDstPortValue1" nillable="true">
                            <xs:annotation>
                              <xs:documentation>The value of first destination port.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:minInclusive value="0"/>
                                  <xs:maxInclusive value="65535"/>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="InDstPortValue2" nillable="true">
                            <xs:annotation>
                              <xs:documentation>
                              The value of second destination port; 65536 is invalid value.
                              </xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:minInclusive value="0"/>
                                  <xs:maxInclusive value="65536"/>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="InEstablished" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The flags that indicating the established status of a Inner TCP connection.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Counting" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          Counts times the ACL rule has been matched.
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Logging" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Logs matching packets.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Comment" minOccurs="0" type="Acl_Comment" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          Rule comment, a case-sensitive string of 1 to 127 characters.
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Status" minOccurs="0" type="Acl_Status" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Rule status. 1: active, 2: inactive.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Count" minOccurs="0" type="base:Counter64" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The number of times the ACL rule has been matched.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="MatchIndex" minOccurs="0" type="Acl_MatchIndex" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The matching index of rules when match-order of group is auto.</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>

        <!-- IPv6AdvanceRules Table -->
        <xs:element name="IPv6AdvanceRules" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Table of IPv6 advance ACL rules.</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
              <xs:element name="Rule" minOccurs="0">
                <xs:complexType>
                  <xs:all>
                    <xs:element name="GroupID" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Group ID. Range from 3000 to 3999.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="3000"></xs:minInclusive>
                            <xs:maxInclusive value="3999"></xs:maxInclusive>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="RuleID" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Rule ID. Range from 0 to 65534.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="0"></xs:minInclusive>
                            <xs:maxInclusive value="65534"></xs:maxInclusive>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Action" minOccurs="0" type="Acl_Action" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Action type. 1: deny, 2: permit.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="ProtocolType" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Protocol type of packets, 256 indicates IP family.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="0"/>
                            <xs:maxInclusive value="256"/>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="SrcAny" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The flag of matching any source IPv6 address.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="SrcIPv6" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Source IPv6.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="SrcIPv6Addr" type="base:Ipv6Address" nillable="true">
                            <xs:annotation>
                              <xs:documentation>Source IPv6 address.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="SrcIPv6Prefix" nillable="true">
                            <xs:annotation>
                              <xs:documentation>Prefix length of source IPv6 address.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:minInclusive value="1"/>
                                  <xs:maxInclusive value="128"/>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="DstAny" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The flag of matching any destination IPv6 address.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="DstIPv6" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Destination IPv6.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="DstIPv6Addr" type="base:Ipv6Address" nillable="true">
                            <xs:annotation>
                              <xs:documentation>Destination IPv6 address.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="DstIPv6Prefix" nillable="true">
                            <xs:annotation>
                              <xs:documentation>Prefix length of destination IPv6 address.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:minInclusive value="1"/>
                                  <xs:maxInclusive value="128"/>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="DSCP" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The value of DSCP of IPv6 packet.</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:element name="FlowLabel" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The value of flow label of IPv6 packet header.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="0"></xs:minInclusive>
                            <xs:maxInclusive value="1048575"></xs:maxInclusive>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="RoutingTypeAny" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The flag of matching any routing header type.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="RoutingTypeValue" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The value of routing header type.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="0"></xs:minInclusive>
                            <xs:maxInclusive value="255"></xs:maxInclusive>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="SrcPort" minOccurs="0" nillable="true">
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="SrcPortOp" nillable="true">
                            <xs:annotation>
                              <xs:documentation>Source port operator. 1: lt, 2: eq, 3: gt, 4: neq, 5: range.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:enumeration value="1"/>
                                  <xs:enumeration value="2"/>
                                  <xs:enumeration value="3"/>
                                  <xs:enumeration value="4"/>
                                  <xs:enumeration value="5"/>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="SrcPortValue1" nillable="true">
                            <xs:annotation>
                              <xs:documentation>The value of first source port.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:minInclusive value="0"></xs:minInclusive>
                                  <xs:maxInclusive value="65535"></xs:maxInclusive>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="SrcPortValue2" nillable="true">
                            <xs:annotation>
                              <xs:documentation>The value of second source port; 65536 is invalid value.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:minInclusive value="0"></xs:minInclusive>
                                  <xs:maxInclusive value="65536"></xs:maxInclusive>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="DstPort" minOccurs="0" nillable="true">
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="DstPortOp" nillable="true">
                            <xs:annotation>
                              <xs:documentation>Destination port operator. 1: lt, 2: eq, 3: gt, 4: neq, 5: range.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:enumeration value="1"/>
                                  <xs:enumeration value="2"/>
                                  <xs:enumeration value="3"/>
                                  <xs:enumeration value="4"/>
                                  <xs:enumeration value="5"/>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="DstPortValue1" nillable="true">
                            <xs:annotation>
                              <xs:documentation>The value of first destination port.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:minInclusive value="0"></xs:minInclusive>
                                  <xs:maxInclusive value="65535"></xs:maxInclusive>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="DstPortValue2" nillable="true">
                            <xs:annotation>
                              <xs:documentation>The value of second destination port; 65536 is invalid value.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:minInclusive value="0"></xs:minInclusive>
                                  <xs:maxInclusive value="65536"></xs:maxInclusive>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="TcpFlag" minOccurs="0" nillable="true">
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="ACK" minOccurs="0" type="Acl_TcpFlag" nillable="true">
                            <xs:annotation>
                              <xs:documentation>TCP ACK flag.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="FIN" minOccurs="0" type="Acl_TcpFlag" nillable="true">
                            <xs:annotation>
                              <xs:documentation>TCP FIN flag.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="PSH" minOccurs="0" type="Acl_TcpFlag" nillable="true">
                            <xs:annotation>
                              <xs:documentation>TCP PSH flag.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="RST" minOccurs="0" type="Acl_TcpFlag" nillable="true">
                            <xs:annotation>
                              <xs:documentation>TCP RST flag.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="SYN" minOccurs="0" type="Acl_TcpFlag" nillable="true">
                            <xs:annotation>
                              <xs:documentation>TCP SYN flag.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="URG" minOccurs="0" type="Acl_TcpFlag" nillable="true">
                            <xs:annotation>
                              <xs:documentation>TCP URG flag.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Established" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The flags that indicating the established status of a TCP connection.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="ICMP6" minOccurs="0">
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="ICMP6Type" nillable="true">
                            <xs:annotation>
                              <xs:documentation>The ICMPv6 message type.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:minInclusive value ="0"></xs:minInclusive>
                                  <xs:maxInclusive value="255"></xs:maxInclusive>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="ICMP6Code" nillable="true">
                            <xs:annotation>
                              <xs:documentation>The ICMPv6 message code. 256 is invalid value.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:minInclusive value ="0"></xs:minInclusive>
                                  <xs:maxInclusive value="256"></xs:maxInclusive>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Fragment" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          The flag of matching fragmented packet.
                          0: the rule applies to all fragments and non-fragments,
                          1: the rule applies to only non-first fragments.
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="HopTypeAny" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The flag of matching any hop type.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="HopTypeValue" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The value of hop type which is in the range of 0 to 255.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="0"></xs:minInclusive>
                            <xs:maxInclusive value="255"></xs:maxInclusive>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="TimeRange" minOccurs="0" type="Acl_TimeRange" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          Specifies a time range for the rule, a case-insensitive string of 1 to 32 characters.
                          It must start with an English letter.
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="VRF" minOccurs="0" type="Acl_VRF" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          Applies the rule to packets in a VRF instance.
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="QoSLocalID" minOccurs="0" nillable="true">
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="1"></xs:minInclusive>
                            <xs:maxInclusive value="4095"></xs:maxInclusive>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Counting" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          Counts times the ACL rule has been matched.
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Logging" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Logs matching packets.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Comment" minOccurs="0" type="Acl_Comment" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Rule comment, a case-sensitive string of 1 to 127 characters.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Status" minOccurs="0" type="Acl_Status" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Rule status. 1: active, 2: inactive.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Count" minOccurs="0" type="base:Counter64" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The number of times the ACL rule has been matched.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="MatchIndex" minOccurs="0" type="Acl_MatchIndex" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The matching index of rules when match-order of group is auto.</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>
	
        <!-- IPv6NamedAdvanceRules Table -->
        <xs:element name="IPv6NamedAdvanceRules" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Table of named IPv6 advance ACL rules.</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
              <xs:element name="Rule" minOccurs="0">
                <xs:complexType>
                  <xs:all>
                    <xs:element name="GroupIndex" minOccurs="0" type="Acl_AdvGroupIndex" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          Acl Group Name of Index.If it's Index, range from 3000 to 3999.
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="RuleID" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Rule ID. Range from 0 to 65534.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="0"></xs:minInclusive>
                            <xs:maxInclusive value="65534"></xs:maxInclusive>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Action" minOccurs="0" type="Acl_Action" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Action type. 1: deny, 2: permit.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="ProtocolType" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Protocol type of packets, 256 indicates IP family.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="0"/>
                            <xs:maxInclusive value="256"/>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="SrcAny" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The flag of matching any source IPv6 address.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="SrcIPv6" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Source IPv6.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="SrcIPv6Addr" type="base:Ipv6Address" nillable="true">
                            <xs:annotation>
                              <xs:documentation>Source IPv6 address.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="SrcIPv6Prefix" nillable="true">
                            <xs:annotation>
                              <xs:documentation>Prefix length of source IPv6 address.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:minInclusive value="1"/>
                                  <xs:maxInclusive value="128"/>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="DstAny" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The flag of matching any destination IPv6 address.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="DstIPv6" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Destination IPv6.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="DstIPv6Addr" type="base:Ipv6Address" nillable="true">
                            <xs:annotation>
                              <xs:documentation>Destination IPv6 address.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="DstIPv6Prefix" nillable="true">
                            <xs:annotation>
                              <xs:documentation>Prefix length of destination IPv6 address.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:minInclusive value="1"/>
                                  <xs:maxInclusive value="128"/>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="DSCP" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The value of DSCP of IPv6 packet.</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:element name="FlowLabel" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The value of flow label of IPv6 packet header.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="0"></xs:minInclusive>
                            <xs:maxInclusive value="1048575"></xs:maxInclusive>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="RoutingTypeAny" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The flag of matching any routing header type.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="RoutingTypeValue" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The value of routing header type.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="0"></xs:minInclusive>
                            <xs:maxInclusive value="255"></xs:maxInclusive>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="SrcPort" minOccurs="0" nillable="true">
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="SrcPortOp" nillable="true">
                            <xs:annotation>
                              <xs:documentation>Source port operator. 1: lt, 2: eq, 3: gt, 4: neq, 5: range.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:enumeration value="1"/>
                                  <xs:enumeration value="2"/>
                                  <xs:enumeration value="3"/>
                                  <xs:enumeration value="4"/>
                                  <xs:enumeration value="5"/>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="SrcPortValue1" nillable="true">
                            <xs:annotation>
                              <xs:documentation>The value of first source port.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:minInclusive value="0"></xs:minInclusive>
                                  <xs:maxInclusive value="65535"></xs:maxInclusive>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="SrcPortValue2" nillable="true">
                            <xs:annotation>
                              <xs:documentation>The value of second source port; 65536 is invalid value.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:minInclusive value="0"></xs:minInclusive>
                                  <xs:maxInclusive value="65536"></xs:maxInclusive>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="DstPort" minOccurs="0" nillable="true">
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="DstPortOp" nillable="true">
                            <xs:annotation>
                              <xs:documentation>Destination port operator. 1: lt, 2: eq, 3: gt, 4: neq, 5: range.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:enumeration value="1"/>
                                  <xs:enumeration value="2"/>
                                  <xs:enumeration value="3"/>
                                  <xs:enumeration value="4"/>
                                  <xs:enumeration value="5"/>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="DstPortValue1" nillable="true">
                            <xs:annotation>
                              <xs:documentation>The value of first destination port.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:minInclusive value="0"></xs:minInclusive>
                                  <xs:maxInclusive value="65535"></xs:maxInclusive>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="DstPortValue2" nillable="true">
                            <xs:annotation>
                              <xs:documentation>The value of second destination port; 65536 is invalid value.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:minInclusive value="0"></xs:minInclusive>
                                  <xs:maxInclusive value="65536"></xs:maxInclusive>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="TcpFlag" minOccurs="0" nillable="true">
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="ACK" minOccurs="0" type="Acl_TcpFlag" nillable="true">
                            <xs:annotation>
                              <xs:documentation>TCP ACK flag.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="FIN" minOccurs="0" type="Acl_TcpFlag" nillable="true">
                            <xs:annotation>
                              <xs:documentation>TCP FIN flag.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="PSH" minOccurs="0" type="Acl_TcpFlag" nillable="true">
                            <xs:annotation>
                              <xs:documentation>TCP PSH flag.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="RST" minOccurs="0" type="Acl_TcpFlag" nillable="true">
                            <xs:annotation>
                              <xs:documentation>TCP RST flag.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="SYN" minOccurs="0" type="Acl_TcpFlag" nillable="true">
                            <xs:annotation>
                              <xs:documentation>TCP SYN flag.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="URG" minOccurs="0" type="Acl_TcpFlag" nillable="true">
                            <xs:annotation>
                              <xs:documentation>TCP URG flag.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Established" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The flags that indicating the established status of a TCP connection.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="ICMP6" minOccurs="0">
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="ICMP6Type" nillable="true">
                            <xs:annotation>
                              <xs:documentation>The ICMPv6 message type.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:minInclusive value ="0"></xs:minInclusive>
                                  <xs:maxInclusive value="255"></xs:maxInclusive>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                          <xs:element name="ICMP6Code" nillable="true">
                            <xs:annotation>
                              <xs:documentation>The ICMPv6 message code. 256 is invalid value.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:minInclusive value ="0"></xs:minInclusive>
                                  <xs:maxInclusive value="256"></xs:maxInclusive>
                                </xs:restriction>
                              </xs:simpleContent>
                            </xs:complexType>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Fragment" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          The flag of matching fragmented packet.
                          0: the rule applies to all fragments and non-fragments,
                          1: the rule applies to only non-first fragments.
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="HopTypeAny" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The flag of matching any hop type.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="HopTypeValue" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The value of hop type which is in the range of 0 to 255.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="0"></xs:minInclusive>
                            <xs:maxInclusive value="255"></xs:maxInclusive>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="TimeRange" minOccurs="0" type="Acl_TimeRange" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          Specifies a time range for the rule, a case-insensitive string of 1 to 32 characters.
                          It must start with an English letter.
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="VRF" minOccurs="0" type="Acl_VRF" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          Applies the rule to packets in a VRF instance.
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="QoSLocalID" minOccurs="0" nillable="true">
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="1"></xs:minInclusive>
                            <xs:maxInclusive value="4095"></xs:maxInclusive>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Counting" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          Counts times the ACL rule has been matched.
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Logging" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Logs matching packets.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Comment" minOccurs="0" type="Acl_Comment" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Rule comment, a case-sensitive string of 1 to 127 characters.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Status" minOccurs="0" type="Acl_Status" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Rule status. 1: active, 2: inactive.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Count" minOccurs="0" type="base:Counter64" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The number of times the ACL rule has been matched.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="MatchIndex" minOccurs="0" type="Acl_MatchIndex" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The matching index of rules when match-order of group is auto.</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>

        <!-- MACRules Table -->
        <xs:element name="MACRules" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Table of MAC ACL rules.</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
              <xs:element name="Rule" minOccurs="0">
                <xs:complexType>
                  <xs:all>
                    <xs:element name="GroupID" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Group ID. Range from 4000 to 4999.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="4000"></xs:minInclusive>
                            <xs:maxInclusive value="4999"></xs:maxInclusive>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="RuleID" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Rule ID. Range from 0 to 65534.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="0"></xs:minInclusive>
                            <xs:maxInclusive value="65534"></xs:maxInclusive>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Action" minOccurs="0" type="Acl_Action" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Action type. 1: deny, 2: permit.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="SrcMACAddr" minOccurs="0">
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="SrcMACAddress" type="base:MacAddress" nillable="true"/>
                          <xs:element name="SrcMACMask" type="base:MacAddress" nillable="true"/>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="DstMACAddr" minOccurs="0">
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="DstMACAddress" type="base:MacAddress" nillable="true"/>
                          <xs:element name="DstMACMask" type="base:MacAddress" nillable="true"/>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="COS" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>802.1p priority.</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="Protocol" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Protocol in the Ethernet frame header.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="ProtocolType" type="Acl_MACProtocol" nillable="true">
                            <xs:annotation>
                              <xs:documentation>The type of protocol in the Ethernet frame header.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="ProtocolTypeMask" type="Acl_MACProtocol" nillable="true">
                            <xs:annotation>
                              <xs:documentation>The mask of protocol in the Ethernet frame header.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="LSAP" minOccurs="0">
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="LSAPType" type="Acl_MACProtocol" nillable="true">
                            <xs:annotation>
                              <xs:documentation>The type of LSAP</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="LSAPTypeMask" type="Acl_MACProtocol" nillable="true">
                            <xs:annotation>
                              <xs:documentation>The mask of LSAP.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="EncapType" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Encap Type. 1: VXLAN</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:enumeration value="1"/>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="VxlanID" minOccurs="0" nillable="true">
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="0"></xs:minInclusive>
                            <xs:maxInclusive value="16777215"></xs:maxInclusive>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="InSrcMACAddr" minOccurs="0">
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="InSrcMACAddress" type="base:MacAddress" nillable="true"/>
                          <xs:element name="InSrcMACMask" type="base:MacAddress" nillable="true"/>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="InDstMACAddr" minOccurs="0">
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="InDstMACAddress" type="base:MacAddress" nillable="true"/>
                          <xs:element name="InDstMACMask" type="base:MacAddress" nillable="true"/>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="InProtocol" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Inner protocol in the Ethernet frame header.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="InProtocolType" type="Acl_MACProtocol" nillable="true">
                            <xs:annotation>
                              <xs:documentation>The type of protocol in the Ethernet frame header.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="InProtocolTypeMask" type="Acl_MACProtocol" nillable="true">
                            <xs:annotation>
                              <xs:documentation>The mask of protocol in the Ethernet frame header.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="TimeRange" minOccurs="0" type="Acl_TimeRange" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          Specifies a time range for the rule, a case-insensitive string of 1 to 32 characters.
                          It must start with an English letter.
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Counting" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          Counts times the ACL rule has been matched.
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Comment" minOccurs="0" type="Acl_Comment" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Rule comment, a case-sensitive string of 1 to 127 characters.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Status" minOccurs="0" type="Acl_Status" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Rule status. 1: active, 2: inactive.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Count" minOccurs="0" type="base:Counter64" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The number of times the ACL rule has been matched.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="MatchIndex" minOccurs="0" type="Acl_MatchIndex" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The matching index of rules when match-order of group is auto.</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>

        <!-- MACNamedRules Table -->
        <xs:element name="MACNamedRules" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Table of named MAC ACL rules.</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
              <xs:element name="Rule" minOccurs="0">
                <xs:complexType>
                  <xs:all>
                    <xs:element name="GroupIndex" minOccurs="0" type="Acl_MACGroupIndex" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          Acl Group Name of Index.If it's Index, range from 4000 to 4999.
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="RuleID" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Rule ID. Range from 0 to 65534.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="0"></xs:minInclusive>
                            <xs:maxInclusive value="65534"></xs:maxInclusive>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Action" minOccurs="0" type="Acl_Action" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Action type. 1: deny, 2: permit.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="SrcMACAddr" minOccurs="0">
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="SrcMACAddress" type="base:MacAddress" nillable="true"/>
                          <xs:element name="SrcMACMask" type="base:MacAddress" nillable="true"/>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="DstMACAddr" minOccurs="0">
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="DstMACAddress" type="base:MacAddress" nillable="true"/>
                          <xs:element name="DstMACMask" type="base:MacAddress" nillable="true"/>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="COS" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>802.1p priority.</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="Protocol" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Protocol in the Ethernet frame header.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="ProtocolType" type="Acl_MACProtocol" nillable="true">
                            <xs:annotation>
                              <xs:documentation>The type of protocol in the Ethernet frame header.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="ProtocolTypeMask" type="Acl_MACProtocol" nillable="true">
                            <xs:annotation>
                              <xs:documentation>The mask of protocol in the Ethernet frame header.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="LSAP" minOccurs="0">
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="LSAPType" type="Acl_MACProtocol" nillable="true">
                            <xs:annotation>
                              <xs:documentation>The type of LSAP</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="LSAPTypeMask" type="Acl_MACProtocol" nillable="true">
                            <xs:annotation>
                              <xs:documentation>The mask of LSAP.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="EncapType" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Encap Type. 1: VXLAN</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:enumeration value="1"/>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="VxlanID" minOccurs="0" nillable="true">
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="0"></xs:minInclusive>
                            <xs:maxInclusive value="16777215"></xs:maxInclusive>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="InSrcMACAddr" minOccurs="0">
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="InSrcMACAddress" type="base:MacAddress" nillable="true"/>
                          <xs:element name="InSrcMACMask" type="base:MacAddress" nillable="true"/>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="InDstMACAddr" minOccurs="0">
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="InDstMACAddress" type="base:MacAddress" nillable="true"/>
                          <xs:element name="InDstMACMask" type="base:MacAddress" nillable="true"/>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="InProtocol" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Inner protocol in the Ethernet frame header.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="InProtocolType" type="Acl_MACProtocol" nillable="true">
                            <xs:annotation>
                              <xs:documentation>The type of protocol in the Ethernet frame header.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="InProtocolTypeMask" type="Acl_MACProtocol" nillable="true">
                            <xs:annotation>
                              <xs:documentation>The mask of protocol in the Ethernet frame header.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="TimeRange" minOccurs="0" type="Acl_TimeRange" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          Specifies a time range for the rule, a case-insensitive string of 1 to 32 characters.
                          It must start with an English letter.
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Counting" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          Counts times the ACL rule has been matched.
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Comment" minOccurs="0" type="Acl_Comment" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Rule comment, a case-sensitive string of 1 to 127 characters.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Status" minOccurs="0" type="Acl_Status" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Rule status. 1: active, 2: inactive.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Count" minOccurs="0" type="base:Counter64" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The number of times the ACL rule has been matched.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="MatchIndex" minOccurs="0" type="Acl_MatchIndex" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The matching index of rules when match-order of group is auto.</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>

        <!-- UserRules Table -->
        <xs:element name="UserRules" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Table of the user ACL rules.</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
              <xs:element name="Rule" minOccurs="0">
                <xs:complexType>
                  <xs:all>
                    <xs:element name="GroupID" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Group ID. Range from 5000 to 5999.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="5000"/>
                            <xs:maxInclusive value="5999"/>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="RuleID" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Rule ID. Range from 0 to 65534.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="0"/>
                            <xs:maxInclusive value="65534"/>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Action" minOccurs="0" type="Acl_Action" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Action type. 1: deny, 2: permit.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="L2Rule" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Specifies that the offset is relative to the beginning of the Layer 2 frame header.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="L2RuleString" type="Acl_RuleString" nillable="true">
                            <xs:annotation>
                              <xs:documentation>
                                Defines a match pattern in hexadecimal format. Its length must be a multiple of two.
                                Range from 2 to 254.
                              </xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="L2RuleMask" type="Acl_RuleString" nillable="true">
                            <xs:annotation>
                              <xs:documentation>
                                Defines a match pattern mask in hexadecimal format.
                                Its length must be the same as that of the match pattern. Range from 2 to 254.
                              </xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="L2Offset" nillable="true">
                            <xs:annotation>
                              <xs:documentation>Specifies an offset in bytes after which the match operation begins.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:minInclusive value="0"></xs:minInclusive>
                                  <xs:maxInclusive value="254"></xs:maxInclusive>
                                </xs:restriction>
                              </xs:simpleContent>
                           </xs:complexType>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="IPv4Rule" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Specifies that the offset is relative to the beginning of the IPv4 header.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="IPv4RuleString" type="Acl_RuleString" nillable="true">
                            <xs:annotation>
                              <xs:documentation>
                                Defines a match pattern in hexadecimal format. Its length must be a multiple of two.
                                Range from 2 to 254.
                              </xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="IPv4RuleMask" type="Acl_RuleString" nillable="true">
                            <xs:annotation>
                              <xs:documentation>
                                Defines a match pattern mask in hexadecimal format.
                                Its length must be the same as that of the match pattern. Range from 2 to 254.
                              </xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="IPv4Offset" nillable="true">
                            <xs:annotation>
                              <xs:documentation>Specifies an offset in bytes after which the match operation begins.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:minInclusive value="0"></xs:minInclusive>
                                  <xs:maxInclusive value="254"></xs:maxInclusive>
                                </xs:restriction>
                              </xs:simpleContent>
                           </xs:complexType>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="IPv6Rule" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Specifies that the offset is relative to the beginning of the IPv6 header. </xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="IPv6RuleString" type="Acl_RuleString" nillable="true">
                            <xs:annotation>
                              <xs:documentation>
                                Defines a match pattern in hexadecimal format. Its length must be a multiple of two.
                                Range from 2 to 254.
                              </xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="IPv6RuleMask" type="Acl_RuleString" nillable="true">
                            <xs:annotation>
                              <xs:documentation>
                                Defines a match pattern mask in hexadecimal format.
                                Its length must be the same as that of the match pattern. Range from 2 to 254.
                              </xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="IPv6Offset" nillable="true">
                            <xs:annotation>
                              <xs:documentation>Specifies an offset in bytes after which the match operation begins.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:minInclusive value="0"></xs:minInclusive>
                                  <xs:maxInclusive value="254"></xs:maxInclusive>
                                </xs:restriction>
                              </xs:simpleContent>
                           </xs:complexType>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="L4Rule" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Specifies that the offset is relative to the beginning of the Layer 4 header. </xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="L4RuleString" type="Acl_RuleString" nillable="true">
                            <xs:annotation>
                              <xs:documentation>
                                Defines a match pattern in hexadecimal format. Its length must be a multiple of two.
                                Range from 2 to 254.
                              </xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="L4RuleMask" type="Acl_RuleString" nillable="true">
                            <xs:annotation>
                              <xs:documentation>
                                Defines a match pattern mask in hexadecimal format.
                                Its length must be the same as that of the match pattern. Range from 2 to 254.
                              </xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="L4Offset" nillable="true">
                            <xs:annotation>
                              <xs:documentation>Specifies an offset in bytes after which the match operation begins.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:minInclusive value="0"></xs:minInclusive>
                                  <xs:maxInclusive value="254"></xs:maxInclusive>
                                </xs:restriction>
                              </xs:simpleContent>
                           </xs:complexType>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="TimeRange" minOccurs="0" type="Acl_TimeRange" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          Specifies a time range for the rule, a case-insensitive string of 1 to 32 characters.
                          It must start with an English letter.
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Counting" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          Counts the number of times the ACL rule has been matched.
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Comment" minOccurs="0" type="Acl_Comment" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          Rule comment, a case-sensitive string of 1 to 127 characters.
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Status" minOccurs="0" type="Acl_Status" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Rule status. 1: active, 2: inactive.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Count" minOccurs="0" type="base:Counter64" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The number of times the ACL rule has been matched.</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>

        <!-- UserNamedRules Table -->
        <xs:element name="UserNamedRules" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Table of the named user ACL rules.</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice minOccurs="0" maxOccurs="unbounded">
              <xs:element name="Rule" minOccurs="0">
                <xs:complexType>
                  <xs:all>
                    <xs:element name="GroupIndex" minOccurs="0" type="Acl_UserGroupIndex" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          Acl Group Name of Index.If it's Index, range from 5000 to 5999.
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="RuleID" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Rule ID. Range from 0 to 65534.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="0"/>
                            <xs:maxInclusive value="65534"/>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Action" minOccurs="0" type="Acl_Action" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Action type. 1: deny, 2: permit.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="L2Rule" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Specifies that the offset is relative to the beginning of the Layer 2 frame header.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="L2RuleString" type="Acl_RuleString" nillable="true">
                            <xs:annotation>
                              <xs:documentation>
                                Defines a match pattern in hexadecimal format. Its length must be a multiple of two.
                                Range from 2 to 254.
                              </xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="L2RuleMask" type="Acl_RuleString" nillable="true">
                            <xs:annotation>
                              <xs:documentation>
                                Defines a match pattern mask in hexadecimal format.
                                Its length must be the same as that of the match pattern. Range from 2 to 254.
                              </xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="L2Offset" nillable="true">
                            <xs:annotation>
                              <xs:documentation>Specifies an offset in bytes after which the match operation begins.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:minInclusive value="0"></xs:minInclusive>
                                  <xs:maxInclusive value="254"></xs:maxInclusive>
                                </xs:restriction>
                              </xs:simpleContent>
                           </xs:complexType>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="IPv4Rule" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Specifies that the offset is relative to the beginning of the IPv4 header.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="IPv4RuleString" type="Acl_RuleString" nillable="true">
                            <xs:annotation>
                              <xs:documentation>
                                Defines a match pattern in hexadecimal format. Its length must be a multiple of two.
                                Range from 2 to 254.
                              </xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="IPv4RuleMask" type="Acl_RuleString" nillable="true">
                            <xs:annotation>
                              <xs:documentation>
                                Defines a match pattern mask in hexadecimal format.
                                Its length must be the same as that of the match pattern. Range from 2 to 254.
                              </xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="IPv4Offset" nillable="true">
                            <xs:annotation>
                              <xs:documentation>Specifies an offset in bytes after which the match operation begins.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:minInclusive value="0"></xs:minInclusive>
                                  <xs:maxInclusive value="254"></xs:maxInclusive>
                                </xs:restriction>
                              </xs:simpleContent>
                           </xs:complexType>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="IPv6Rule" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Specifies that the offset is relative to the beginning of the IPv6 header. </xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="IPv6RuleString" type="Acl_RuleString" nillable="true">
                            <xs:annotation>
                              <xs:documentation>
                                Defines a match pattern in hexadecimal format. Its length must be a multiple of two.
                                Range from 2 to 254.
                              </xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="IPv6RuleMask" type="Acl_RuleString" nillable="true">
                            <xs:annotation>
                              <xs:documentation>
                                Defines a match pattern mask in hexadecimal format.
                                Its length must be the same as that of the match pattern. Range from 2 to 254.
                              </xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="IPv6Offset" nillable="true">
                            <xs:annotation>
                              <xs:documentation>Specifies an offset in bytes after which the match operation begins.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:minInclusive value="0"></xs:minInclusive>
                                  <xs:maxInclusive value="254"></xs:maxInclusive>
                                </xs:restriction>
                              </xs:simpleContent>
                           </xs:complexType>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="L4Rule" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Specifies that the offset is relative to the beginning of the Layer 4 header. </xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="L4RuleString" type="Acl_RuleString" nillable="true">
                            <xs:annotation>
                              <xs:documentation>
                                Defines a match pattern in hexadecimal format. Its length must be a multiple of two.
                                Range from 2 to 254.
                              </xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="L4RuleMask" type="Acl_RuleString" nillable="true">
                            <xs:annotation>
                              <xs:documentation>
                                Defines a match pattern mask in hexadecimal format.
                                Its length must be the same as that of the match pattern. Range from 2 to 254.
                              </xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="L4Offset" nillable="true">
                            <xs:annotation>
                              <xs:documentation>Specifies an offset in bytes after which the match operation begins.</xs:documentation>
                            </xs:annotation>
                            <xs:complexType>
                              <xs:simpleContent>
                                <xs:restriction base="base:UnsignedInteger32">
                                  <xs:minInclusive value="0"></xs:minInclusive>
                                  <xs:maxInclusive value="254"></xs:maxInclusive>
                                </xs:restriction>
                              </xs:simpleContent>
                           </xs:complexType>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="TimeRange" minOccurs="0" type="Acl_TimeRange" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          Specifies a time range for the rule, a case-insensitive string of 1 to 32 characters.
                          It must start with an English letter.
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Counting" minOccurs="0" type="base:Boolean" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          Counts the number of times the ACL rule has been matched.
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Comment" minOccurs="0" type="Acl_Comment" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          Rule comment, a case-sensitive string of 1 to 127 characters.
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Status" minOccurs="0" type="Acl_Status" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Rule status. 1: active, 2: inactive.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="Count" minOccurs="0" type="base:Counter64" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The number of times the ACL rule has been matched.</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>
      	
        <!-- Intervals Table -->
        <xs:element name="Intervals" minOccurs="0">
          <xs:annotation>
            <xs:documentation>ACL intervals table.</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice maxOccurs="unbounded">
              <xs:element name="Interval" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                  <xs:documentation>ACL interval row.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:all>
                    <xs:element name="IntervalType" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Interval Type. 1: logs, 2: trap.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:enumeration value="1" />
                            <xs:enumeration value="2" />
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="IntervalValue" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The value of Interval.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="5"></xs:minInclusive>
                            <xs:maxInclusive value="1440"></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>
        
        <!-- Pfilter Default Action Table -->
        <xs:element name="PfilterDefAction" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Pfilter base information table</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:all>
              <xs:element name="DefaultAction" minOccurs="0" nillable="true">
                <xs:annotation>
                  <xs:documentation>Default Action.1:Permit,2:Deny.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:restriction base="base:UnsignedInteger32">
                      <xs:enumeration value="1"/>
                      <xs:enumeration value="2"/>
                    </xs:restriction>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
            </xs:all>
            <xs:attributeGroup ref="base:TableAttributeGroup"></xs:attributeGroup>
          </xs:complexType>
        </xs:element>
        <!-- Pfilter Apply Table -->
        <xs:element name="PfilterApply" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Pfilter apply table</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice maxOccurs="unbounded">
              <xs:element name="Pfilter" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                  <xs:documentation>Pfilter apply row</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:all>
                    <xs:element name="AppObjType" type="ObjectType" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Object type. 1: interface, 2: vlan,3: global.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="AppObjIndex" type="base:UnsignedInteger32" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Object Index.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="AppDirection" type="AppDirType" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Apply Direction.1:inbound£¬2:outbound.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="AppAclType" type="AclType" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>ACL Group type. 1: IPv4, 2: IPv6, 3:MAC, 4:User-defined, 5: default.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="AppAclGroup" type="Apply_AclGroup" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Acl Group Name of Index.If it's index, range from 2000 to 5999, Default: 0.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="HardCount" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Hardware count flag.1:true,2:false.Default:false</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:enumeration value="1"/>
                            <xs:enumeration value="2"/>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="AppSequence" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The configure sequence of packet filter application.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
			    <xs:minInclusive value="1"/>
			    <xs:maxInclusive value="4294967295"/>
			  </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>
        <!-- Pfilter Group RunInfo Table -->
        <xs:element name="PfilterGroupRunInfo" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Pfilter Group RunInfo table</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice maxOccurs="unbounded">
              <xs:element name="GroupRunInfo" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                  <xs:documentation>Pfilter group row</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:all>
                    <xs:element name="AppObjType" type="ObjectType" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Object type. 1: interface, 2: vlan,3: global.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="AppObjIndex" type="base:UnsignedInteger32" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Object Index.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="AppDirection" type="AppDirType" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Apply Direction.1:inbound£¬2:outbound.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="AppAclType" type="AclType" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>ACL Group type. 1: IPv4, 2: IPv6, 3:MAC, 4:user, 5:Default.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="AppAclGroup" type="Group_AclGroup" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Acl Group Name or Index. If it's index, range from 2000 to 5999, Default 1: MAC, 2: IPv4, 3: IPv6.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="AclGroupStatus" type="AppStatusType" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The status of ACL group applied.1:success,2:failed,3:partialSuccess</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="AclGroupCountStatus" type="AppStatusType" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The status of enabling hardware count. 1:success, 2:failed, 3:partialSuccess</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="AclGroupPermitPkts" type="base:Counter64" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The number of packets permitted.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="AclGroupPermitBytes" type="base:Counter64" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The number of bytes permitted.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="AclGroupDenyPkts" type="base:Counter64" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The number of packets denied.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="AclGroupDenyBytes" type="base:Counter64" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The number of bytes denied.</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>
        <!-- Pfilter Rule RunInfo Table -->
        <xs:element name="PfilterRuleRunInfo" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Pfilter Rule RunInfo table</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice maxOccurs="unbounded">
              <xs:element name="RuleRunInfo" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                  <xs:documentation>Pfilter rule row</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:all>
                    <xs:element name="AppObjType" type="ObjectType" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Object type. 1: interface, 2: vlan,3: global.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="AppObjIndex" type="base:UnsignedInteger32" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Object Index.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="AppDirection" type="AppDirType" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Apply Direction.1:inbound£¬2:outbound.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="AppAclType" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>ACL Group type. 1: IPv4, 2: IPv6, 3:MAC, 4:user.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:enumeration value="1"/>
                            <xs:enumeration value="2"/>
                            <xs:enumeration value="3"/>
                            <xs:enumeration value="4"/>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="AppAclGroup" type="Rule_AclGroup" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Acl Group Name of Index. If it's index, range from 2000 to 5999</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="AppAclRuleIndex" type="RuleIDType" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Rule index.range from 0 to 65534.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="AclRuleStatus" type="AppStatusType" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The status of rule application.1:success,2:failed,3:partialSuccess</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="AclRuleCountStatus" type="AppStatusType" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The status of enabling rule's hardware count.1:success,2:failed,3:partialSuccess</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="AclRuleMatchPkts" type="base:Counter64" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The number of packets matched</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="AclRuleMatchBytes" type="base:Counter64" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The number of bytes matched</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:complexType>
        </xs:element>
        <!-- Pfilter Sum Table -->
        <xs:element name="PfilterStatisticSum" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Pfilter sum table</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice maxOccurs="unbounded">
              <xs:element name="StatisticSum" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                  <xs:documentation>Pfilter sum row</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:all>
                    <xs:element name="Direction" type="AppDirType" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Apply Direction.1:inbound£¬2:outbound.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="AclType" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>ACL Group type. 1: IPv4, 2: IPv6, 3:MAC, 4:user.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:enumeration value="1"/>
                            <xs:enumeration value="2"/>
                            <xs:enumeration value="3"/>
                            <xs:enumeration value="4"/>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="AclGroup" type="Rule_AclGroup" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Acl Group Name or Index. If it's index, range from 2000 to 5999</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="AclRuleIndex" type="RuleIDType" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Rule index.range from 0 to 65534.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="MatchPackets" type="base:Counter64" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The sum number of packets matched the ACL rule</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="MatchBytes" type="base:Counter64" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The sum number of bytes matched the ACL rule.</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="ZonePairPfilter" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Packet-filter policy table</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice maxOccurs="unbounded">
              <xs:element name="Pfilter" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                  <xs:documentation>Row name</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:all>
                    <xs:element name="SrcZone" type="ZoneNameString" minOccurs="0"  nillable="true">
                      <xs:annotation>
                        <xs:documentation>Source zone name</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="DestZone" type="ZoneNameString" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Destination zone name</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="AclType" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Acl version type</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:enumeration value="1"/>
                            <xs:enumeration value="2"/>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="AclGroup" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Acl group name or number</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:String">
                            <xs:maxLength value ="61"/>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="AppSequence" type="base:UnsignedInteger32" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>App sequence</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="ZonePairPfilterRules" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Packet-filter policy rule table</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice maxOccurs="unbounded">
              <xs:element name="Rule" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                  <xs:documentation>Row name</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:all>
                    <xs:element name="SrcZone" type="ZoneNameString" minOccurs="0"  nillable="true">
                      <xs:annotation>
                        <xs:documentation>Source zone name</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="DestZone" type="ZoneNameString" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Destination zone name</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="AclType" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Acl version type</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:enumeration value="1"/>
                            <xs:enumeration value="2"/>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="AclGroup" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Acl group name or number</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:String">
                            <xs:maxLength value ="61"/>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="AclRuleID" type="RuleIDType" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Acl rule id</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="RuleMatchPkts" type="base:Counter64" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Count of matched packets</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="RuleMatchBytes" type="base:Counter64" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Count of matched bytes</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>

