<?xml version="1.0" encoding="gb2312" ?>
<xs:schema targetNamespace="http://www.h3c.com/netconf/config:1.0"
                  elementFormDefault="qualified"
                  xmlns="http://www.h3c.com/netconf/config:1.0"
                  xmlns:base="http://www.h3c.com/netconf/base:1.0"
                  xmlns:netconf ="urn:ietf:params:xml:ns:netconf:base:1.0"
                  xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:import namespace="http://www.h3c.com/netconf/base:1.0" schemaLocation="basetype.xsd"></xs:import>
  <xs:import schemaLocation="netconf.xsd" namespace="urn:ietf:params:xml:ns:netconf:base:1.0"></xs:import>
  
  <xs:annotation>
   <xs:documentation>
    The common name,the state name, the locality name, the organization name, the unit name, comma can not be contained
   </xs:documentation>
  </xs:annotation>
  <xs:complexType name="PKI_EntityDN">
    <xs:simpleContent>
      <xs:restriction base="base:Text">
        <xs:pattern value="^[^,]{0,}$"></xs:pattern>
      </xs:restriction>
    </xs:simpleContent>
  </xs:complexType>
  
  <xs:annotation>
  <xs:documentation>
   Key name,case insensitive, only containe character, number, "-"
  </xs:documentation>
 </xs:annotation>
   <xs:complexType name="PKI_PkeyName">
    <xs:simpleContent>
      <xs:restriction base="base:String">
        <xs:pattern value="^[-A-Za-z0-9]{0,}$"></xs:pattern>
      </xs:restriction>
    </xs:simpleContent>
  </xs:complexType>
  
  <xs:annotation>
    <xs:documentation >
      PKI config definition
    </xs:documentation>
  </xs:annotation>
  
  <!--PKI module-->
  <xs:element name="PKI">
    <xs:complexType>
      <xs:choice maxOccurs="unbounded">
        <!--PKI Table-->
        
        <!--Domains Table-->
        <xs:element name="Domains" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Configure PKI domains</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice maxOccurs="unbounded">
              <xs:element name="Domain" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                  <xs:documentation>Row name</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:all>
					<xs:element name="Name" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          PKI domain name, 1 to 31 characters, case insensitive
                        </xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <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:element>
                    
                    <xs:element name="CAIdentifier" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          CA identifier name, 1 to 63 characters, case sensitive
                        </xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:Text">
                            <xs:minLength value="1"></xs:minLength>
                            <xs:maxLength value="63"></xs:maxLength>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    
					<xs:element name="Entity" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          Reference a PKI entity for the PKI domain, 1 to 31 characters, case insensitive
                        </xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <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:element>

                    <xs:element name="CertRequestFrom" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          The type of certificate request reception authority
                          Enumeration
                          1-CA
                          2-RA
						</xs:documentation>
                      </xs:annotation>
					  <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:enumeration value="1"></xs:enumeration>
                            <xs:enumeration value="2"></xs:enumeration>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>

                    <xs:element name="CertRequestURL" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          The URL of the certificate request reception authority (CA or RA), Data structure, Members include: URL, VRF
                        </xs:documentation>
                      </xs:annotation>
					  <xs:complexType>
					  <xs:all>
					    <xs:element name="URL" minOccurs="0" nillable="true">
                          <xs:annotation>
                            <xs:documentation>
                              The value of URL, 1 to 511 characters, case sensitive
                            </xs:documentation>
                          </xs:annotation>
                          <xs:complexType>
                            <xs:simpleContent>
                             <xs:restriction base="base:URLString">
                              <xs:minLength value="1"></xs:minLength>
                              <xs:maxLength value="511"></xs:maxLength>
                             </xs:restriction>
                            </xs:simpleContent>
                          </xs:complexType>
                        </xs:element>
						<xs:element name="VRF" minOccurs="0" nillable="true">
                          <xs:annotation>
                            <xs:documentation>
                              The VPN instance which the address is belongs to, 1 to 31 characters, case sensitive
                            </xs:documentation>
                          </xs:annotation>
                          <xs:complexType>
                            <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:element>
					  </xs:all>
					 </xs:complexType>
                    </xs:element>

                    <xs:element name="CertRequestMode" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          The certificate request mode, Data structur, members include: Mode, Password
                        </xs:documentation>
                      </xs:annotation>
					  <xs:complexType>
					  <xs:all>
					    <xs:element name="Mode" minOccurs="0" nillable="true">
                          <xs:annotation>
                            <xs:documentation>
                              The mode of certificate request
                              Enumeration:
                              1-Auto
                              2-Manual
                              Default value is 2
                            </xs:documentation>
                          </xs:annotation> 
                         <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:enumeration value="1"></xs:enumeration>
                            <xs:enumeration value="2"></xs:enumeration>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType> 
                        </xs:element>

                        <xs:element name="PWDType" minOccurs="0" nillable="true">
                          <xs:annotation>
                            <xs:documentation>
                              The password type of certificate revocation
                              Enumeration:
                              1-simple
                              2-cipher
                              The column can be valid only when Mode is Auto
                            </xs:documentation>
                          </xs:annotation> 
                         <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:enumeration value="1"></xs:enumeration>
                            <xs:enumeration value="2"></xs:enumeration>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType> 
                        </xs:element>
                        
						<xs:element name="Password" minOccurs="0" nillable="true">
                          <xs:annotation>
                            <xs:documentation>
                              The password value of certificate revocation, type simple string length is 1 to 31, type cipher string length is 1 to 73
                              Case sensitive, the column can be valid only when Mode is Auto
                            </xs:documentation>
                          </xs:annotation> 
                          <xs:complexType>
                            <xs:simpleContent>
                             <xs:restriction base="base:String">
                              <xs:minLength value="1"></xs:minLength>
                              <xs:maxLength value="73"></xs:maxLength>
                             </xs:restriction>
                            </xs:simpleContent>
                          </xs:complexType>
                        </xs:element>
					  </xs:all>
					 </xs:complexType>
                    </xs:element>

                    <xs:element name="RootCertFingerprint" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                         The fingerprint for verifying the validity of the CA root certificate, data structure, members include: Type, Value
                        </xs:documentation>
                      </xs:annotation>
					  <xs:complexType>
					  <xs:all>
					    <xs:element name="Type" minOccurs="0" nillable="true">
                          <xs:annotation>
                            <xs:documentation>
                              The fingerprint type
                              Enumeration:
                              1-MD5
                              2-SHA1
                            </xs:documentation>
                          </xs:annotation> 
                         <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:enumeration value="1"></xs:enumeration>
                            <xs:enumeration value="2"></xs:enumeration>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType> 
                        </xs:element>
						<xs:element name="Value" minOccurs="0" nillable="true">
                          <xs:annotation>
                            <xs:documentation>
                              The fingerprint value, 32 or 40 hex characters, type MD5 is 32 hex string length, type SHA1 is 40 hex string length
                            </xs:documentation>
                          </xs:annotation> 
                          <xs:complexType>
                            <xs:simpleContent>
                             <xs:restriction base="base:String">
								<xs:pattern value="^[a-fA-F0-9]{32}$|^[a-fA-F0-9]{40}$"></xs:pattern>
                             </xs:restriction>
                            </xs:simpleContent>
                          </xs:complexType>
                        </xs:element>
					  </xs:all>
					 </xs:complexType>
                    </xs:element>

                    <xs:element name="LDAPServer" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                         An LDAP server for a PKI domain, Data structure, Members include: Host, PortNumber, VRF
                        </xs:documentation>
                      </xs:annotation>
					  <xs:complexType>
					  <xs:all>
					    <xs:element name="Host" minOccurs="0" nillable="true">
                          <xs:annotation>
                            <xs:documentation>
                              The hostname of the LDAP server, 1 to 255 characters, the string can be IPv4 address, IPv6 address, or domain name, case sensitive
                            </xs:documentation>
                          </xs:annotation> 
                         <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:String">
                            <xs:minLength value="1"></xs:minLength>
                            <xs:maxLength value="255"></xs:maxLength>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType> 
                        </xs:element>
						<xs:element name="PortNumber" minOccurs="0" nillable="true">
                          <xs:annotation>
                            <xs:documentation>
                              The port number of the LDAP server, unsigned integer(1-65535), default value is389
                            </xs:documentation>
                          </xs:annotation> 
                          <xs:complexType>
                            <xs:simpleContent>
                             <xs:restriction base="base:UnsignedInteger32">
                              <xs:minInclusive value="1"></xs:minInclusive>
                              <xs:maxInclusive value="65535"></xs:maxInclusive>
                             </xs:restriction>
                            </xs:simpleContent>
                          </xs:complexType>
                        </xs:element>
                        <xs:element name="VRF" minOccurs="0" nillable="true">
                          <xs:annotation>
                            <xs:documentation>
                              The VPN instance which the address is belongs to, 1 to 31 characters, case sensitive
                            </xs:documentation>
                          </xs:annotation>
                          <xs:complexType>
                            <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:element>
					  </xs:all>
					 </xs:complexType>
                    </xs:element>

                    <xs:element name="CRLURL" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          the URL of the CRL repository, data structure, Members include: URL, VRF
                        </xs:documentation>
                      </xs:annotation>
					  <xs:complexType>
					  <xs:all>
					    <xs:element name="URL" minOccurs="0" nillable="true">
                          <xs:annotation>
                            <xs:documentation>
                              The value of URL, 1 to 511 characters, case sensitive,The URL format is ldap://server_location or
                              http://server_location,Server_location can be an IP address or a domain name.
                            </xs:documentation>
                          </xs:annotation> 
                         <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:String">
                            <xs:minLength value="1"></xs:minLength>
                            <xs:maxLength value="511"></xs:maxLength>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType> 
                        </xs:element>
                        <xs:element name="VRF" minOccurs="0" nillable="true">
                          <xs:annotation>
                            <xs:documentation>
                              The VPN instance which the address is belongs to, 1 to 31 characters, case sensitive
                            </xs:documentation>
                          </xs:annotation>
                          <xs:complexType>
                            <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:element>
					  </xs:all>
					 </xs:complexType>
                    </xs:element>
                    
                   <xs:element name="CRLCheck" type="base:Boolean" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          If check whether the certificate has been revoked by CRL
                          Boolean:
                          true, Enable
                          false, Disable
                          Default value is false
                        </xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    
					<xs:element name="Usage" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
						  Certificate usage for requesting certificate, data structure, members include IKE, SSLServer, SSLClient, can include one or more certificate usage at the same time
                        </xs:documentation>
                      </xs:annotation>
					  <xs:complexType>
					  <xs:all>
					    <xs:element name="IKE" type="base:Boolean" minOccurs="0" nillable="true">
                          <xs:annotation>
                            <xs:documentation>
                              Use certificate as the IKE
                              Boolean:
                              true, Enable
                              false, Disable
                            </xs:documentation>
                          </xs:annotation>
                        </xs:element>
						<xs:element name="SSLServer" type="base:Boolean" minOccurs="0" nillable="true">
                          <xs:annotation>
                            <xs:documentation>
                              Use certificate as the SSL server certificates
                              Boolean:
                              true, Enable
                              false, Disable
                            </xs:documentation>
                          </xs:annotation>
                        </xs:element>
						<xs:element name="SSLClient" type="base:Boolean" minOccurs="0" nillable="true">
                          <xs:annotation>
                            <xs:documentation>
                              Use certificate as the SSL client
                              Boolean:
                              true, Enable
                              false, Disable
                            </xs:documentation>
                          </xs:annotation>
                        </xs:element>
					  </xs:all>
					  </xs:complexType>
                    </xs:element>

                    <xs:element name="CertRequestPoll" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          The polling interval and the maximum number of attempts to query certificate request statu, data structure, members include: Count, Interval
                        </xs:documentation>
                      </xs:annotation>
					  <xs:complexType>
					  <xs:all>
					   <xs:element name="Count" minOccurs="0" nillable="true">
                          <xs:annotation>
                            <xs:documentation>
                              The value of the maximum number, unsigned integer, 1 to 100, default value is 50
                            </xs:documentation>
                          </xs:annotation> 
	                         <xs:complexType>
		                      <xs:simpleContent>
		    				      <xs:restriction base="base:UnsignedInteger32">
		    				        <xs:minInclusive value ="1"></xs:minInclusive>
		    				        <xs:maxInclusive value ="100"></xs:maxInclusive> 
						          </xs:restriction>
		                        </xs:simpleContent>   
	                         </xs:complexType> 
                        </xs:element>
                        
                        <xs:element name="Interval" minOccurs="0" nillable="true">
                          <xs:annotation>
                            <xs:documentation>
                              The value of the polling interval, unsigned integer, 5 to 168, in minutes, default value is 20
                            </xs:documentation>
                          </xs:annotation>
                          <xs:complexType>
                            <xs:simpleContent>
                             <xs:restriction base="base:UnsignedInteger32">
                              <xs:minInclusive value ="5"></xs:minInclusive>
    				          <xs:maxInclusive value ="168"></xs:maxInclusive>
                             </xs:restriction>
                            </xs:simpleContent>
                          </xs:complexType>
                        </xs:element> 
					  </xs:all>
					 </xs:complexType>
                    </xs:element>

                  <xs:element name="SourceIP" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          The source IP address for PKI protocol packets, data structure, Members include: AddressType, Address, IfIndex
                        </xs:documentation>
                      </xs:annotation>
					  <xs:complexType>
					  <xs:all>

					  <xs:element name="AddressType" minOccurs="0" nillable="true">
                         <xs:annotation>
                            <xs:documentation>
                              The type of IP Address
                              Enumeration:
                              1-IPv4
                              2-IPv6
                            </xs:documentation>
                          </xs:annotation> 
                         <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:enumeration value="1"></xs:enumeration>
                            <xs:enumeration value="2"></xs:enumeration>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType> 
                     </xs:element>
                        
				    <xs:element name="Address" type="base:IpAddress" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          The value of IP Address, IPv4 or IPv6
                        </xs:documentation>
                      </xs:annotation>                          
                    </xs:element>
					<xs:element name="IfIndex" type="base:NameAndIndexUnion" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                         The index of interface, get the primary IP address of the interface, unsigned integer
                        </xs:documentation>
                      </xs:annotation>                          
                    </xs:element>
				  </xs:all>
				 </xs:complexType>
                </xs:element>

                  </xs:all>
                  <xs:attributeGroup ref="base:RowAttributeGroup"></xs:attributeGroup>
                </xs:complexType>
              </xs:element>
            </xs:choice>
            <xs:attributeGroup ref="base:TableAttributeGroup"></xs:attributeGroup>
          </xs:complexType>
        </xs:element>


        <!--DomainPubkeys Table-->
        <xs:element name="DomainPubkeys" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Reference the asymmetric keys for PKI domain.</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice maxOccurs="unbounded">
              <xs:element name="Pubkey" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                  <xs:documentation>Row name</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:all>
                    <xs:element name="Domain" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          PKI domain name, 1 to 31 characters
                        </xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <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:element>
                    <xs:element name="Type" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          Type of algorithm
                          Enumeration:
                          1-RSA
                          2-DSA
                          3-ECDSA
						</xs:documentation>
                      </xs:annotation>
					  <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:enumeration value="1"></xs:enumeration>
                            <xs:enumeration value="2"></xs:enumeration>
                            <xs:enumeration value="3"></xs:enumeration>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Purpose" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          Key purpose
                          Enumeration:
                          1-General
                          2-Signature
                          3-Encryption
						</xs:documentation>
                      </xs:annotation>
					  <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:enumeration value="1"></xs:enumeration>
                            <xs:enumeration value="2"></xs:enumeration>
                            <xs:enumeration value="3"></xs:enumeration>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Name" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          Key name, 1 to 64 characters
                        </xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="PKI_PkeyName">
                            <xs:minLength value="1"></xs:minLength>
                            <xs:maxLength value="64"></xs:maxLength>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Length" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
						  Length of public key, see table PKI/AuthorityAlgs for supported length
						</xs:documentation>
                      </xs:annotation>
					  <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="192"></xs:minInclusive>
                            <xs:maxInclusive value="2048"></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>

        <!--CertAccessPolicies Table-->
        <xs:element name="CertAccessPolicies" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Configure the certificate access control policies</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice maxOccurs="unbounded">
              <xs:element name="Policy" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                  <xs:documentation>Row name</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:all>
                    <xs:element name="Name" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          The name of certificate access control policy
                        </xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <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: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>

		<!--Entities Table-->
        <xs:element name="Entities" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Configure the PKI entities</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice maxOccurs="unbounded">
              <xs:element name="Entity" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                  <xs:documentation>Row name</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:all>
					<xs:element name="EntityName" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          PKI entity name, 1 to 31 characters, case insensitive
                        </xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <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:element>
					<xs:element name="CommonName" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          The common name, 1 to 63 characters, case sensitive, comma can not be contained
                        </xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="PKI_EntityDN">
                            <xs:minLength value="1"></xs:minLength>
                            <xs:maxLength value="63"></xs:maxLength>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Country" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          The country code, 2 to 2 characters
                        </xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:String">
                            <xs:length value="2"/>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="State" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          The state name, 1 to 63 characters, text, case sensitive
                        </xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="PKI_EntityDN">
                            <xs:minLength value="1"></xs:minLength>
                            <xs:maxLength value="63"></xs:maxLength>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Locality" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          The locality name, 1 to 63 characters, case sensitive, comma can not be contained
                        </xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="PKI_EntityDN">
                            <xs:minLength value="1"></xs:minLength>
                            <xs:maxLength value="63"></xs:maxLength>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Organization" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          The organization name, 1 to 63 characters, case sensitive, comma can not be contained
                        </xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="PKI_EntityDN">
                            <xs:minLength value="1"></xs:minLength>
                            <xs:maxLength value="63"></xs:maxLength>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="OrganizationUnit" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                         The unit name, 1 to 63 characters, case sensitive, comma can not be contained
                        </xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="PKI_EntityDN">
                            <xs:minLength value="1"></xs:minLength>
                            <xs:maxLength value="63"></xs:maxLength>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                     <xs:element name="FQDN" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                         The FQDN name, 1 to 255 characters, case sensitive.
                        </xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:String">
                            <xs:minLength value="1"></xs:minLength>
                            <xs:maxLength value="255"></xs:maxLength>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="IP" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          The IP address, data structure, members include: Ipv4Address, SrcIEfIndex
                        </xs:documentation>
                      </xs:annotation>
					  <xs:complexType>
					  <xs:all>
					    <xs:element name="Ipv4Address" type="base:Ipv4Address" minOccurs="0" nillable="true">
                          <xs:annotation>
                            <xs:documentation>
                              Ipv4 address
                            </xs:documentation>
                          </xs:annotation>                          
                        </xs:element>
						<xs:element name="IfIndex" type="base:NameAndIndexUnion" minOccurs="0" nillable="true">
                          <xs:annotation>
                            <xs:documentation>
                              The index of interface
                            </xs:documentation>
                          </xs:annotation>                          
                        </xs:element>
					  </xs:all>
					 </xs:complexType>
                    </xs:element>				
                  </xs:all>
                  <xs:attributeGroup ref="base:RowAttributeGroup"></xs:attributeGroup>
                </xs:complexType>
              </xs:element>
            </xs:choice>
            <xs:attributeGroup ref="base:TableAttributeGroup"></xs:attributeGroup>
          </xs:complexType>
        </xs:element>

        <!--CertAttributeGroups Table-->
        <xs:element name="CertAttributeGroups" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Configure the certificate attribute groups</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice maxOccurs="unbounded">
              <xs:element name="Group" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                  <xs:documentation>Row name</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:all>           
                    <xs:element name="Name" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          The name of certificate attribute group, 1 to 31 characters
                        </xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <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: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>
        
        <!--CertAttributes Table-->
        <xs:element name="CertAttributes" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Configure the attributes of the certificate attribute groups</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice maxOccurs="unbounded">
              <xs:element name="Attribute" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                  <xs:documentation>Row name</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:all>
					<xs:element name="Group" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                           1 to 31 characters, case insensitive
                        </xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <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:element>
					<xs:element name="AttributeID" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          Unsigned integer, 1 to 16
                        </xs:documentation>
                      </xs:annotation>
    				   <xs:complexType>
                        <xs:simpleContent>
    				    <xs:restriction base="base:UnsignedInteger32">
    				      <xs:minInclusive value ="1"></xs:minInclusive>
    				      <xs:maxInclusive value ="16"></xs:maxInclusive>
				        </xs:restriction>
    				 </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Object" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
						  Enumeration:
						  1-alt-subject-name
						  2-issuer-name
						  3-subject-name
                        </xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:enumeration value="1"></xs:enumeration>
                            <xs:enumeration value="2"></xs:enumeration>
                            <xs:enumeration value="3"></xs:enumeration>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element> 
                    <xs:element name="Item" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
						  Enumeration:
						  1-DN
						  2-FQDN
						  3-IpAddress
                        </xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:enumeration value="1"></xs:enumeration>
                            <xs:enumeration value="2"></xs:enumeration>
                            <xs:enumeration value="3"></xs:enumeration>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element> 
                    <xs:element name="Operator" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
						  Enumeration:
						  1-contain
						  2-equal
						  3-not contain
						  4-not equal
                        </xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:enumeration value="1"></xs:enumeration>
                            <xs:enumeration value="2"></xs:enumeration>
                            <xs:enumeration value="3"></xs:enumeration>
                            <xs:enumeration value="4"></xs:enumeration>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>  
					<xs:element name="Value" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          1 to 255 characters, case insensitive
                        </xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:String">
                            <xs:minLength value="1"></xs:minLength>
                            <xs:maxLength value="255"></xs:maxLength>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>                    
                  </xs: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>

     <!--CertAccessRules Table-->
        <xs:element name="CertAccessRules" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Configure the rules of the certificate access control policy</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="Policy" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          The name of certificate access control policy, 1 to 31 characters
                        </xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <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:element>
                    <xs:element name="RuleID" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
						  Index of the rule in the access control policy, Unsigned integer, 1 to 16
						</xs:documentation>
                      </xs:annotation>
					  <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="1"></xs:minInclusive>
                            <xs:maxInclusive value="16"></xs:maxInclusive>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Action" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
						  How to operate the certificate that match the rule
						  Enumeration:
						  1-Permit
						  2-Deny
						</xs:documentation>
                      </xs:annotation>
					  <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:enumeration value="1"></xs:enumeration>
                            <xs:enumeration value="2"></xs:enumeration>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="AttributeGroup" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                         The name of certificate attribute group, 1 to 31 characters
                        </xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <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: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>

        <!--StoragePath Table-->
        <xs:element name="StoragePath" minOccurs="0">
          <xs:annotation>
            <xs:documentation> Configure the PKI storage path</xs:documentation>
          </xs:annotation>
			<xs:complexType>
			  <xs:all>                                     
				<xs:element name="StorageCertPath" minOccurs="0" type="base:String" nillable="true">                    
				  <xs:annotation>
					<xs:documentation>
					  The PKI certificate storage path, string, case sensitive,the path can't begin with "/" or "../"
					</xs:documentation>                        
				  </xs:annotation>                                      
				</xs:element>				   
			   <xs:element name="StorageCRLPath" minOccurs="0" type="base:String" nillable="true">                    
				  <xs:annotation>
					<xs:documentation>
					  The PKI CRL storage path, string, case sensitive, the path can't begin with "/" or "../"
					</xs:documentation>                        
				  </xs:annotation>                                        
				</xs:element>                                                       
			  </xs:all>   
		     <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>
