<?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 namespace="urn:ietf:params:xml:ns:netconf:base:1.0" schemaLocation="netconf.xsd"/>
  <xs:annotation>
    <xs:documentation>The config definition of NTP module</xs:documentation>
  </xs:annotation>
  <xs:element name="NTP">
    <xs:complexType>
      <xs:choice maxOccurs="unbounded">
        <xs:element name="Clients" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Table of NTP Client</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice maxOccurs="unbounded">
              <xs:element name="Client" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                  <xs:documentation>Row Name</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:all>
                    <xs:element name="Service" nillable="true" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>NTP or SNTP</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="VRF" nillable="true" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>VRF instance name</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:String">
                            <xs:annotation>
                              <xs:documentation>String[0 ~ 31]</xs:documentation>
                            </xs:annotation>
                            <xs:maxLength value="31"/>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="AddressType" nillable="true" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Type of address</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="1"/>
                            <xs:maxInclusive value="2"/>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="IpAddress" nillable="true" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Ipv4/Ipv6 address</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:String">
                            <xs:annotation>
                              <xs:documentation>String[1 ~ 253]</xs:documentation>
                            </xs:annotation>
                            <xs:maxLength value="253"/>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="HostMode" nillable="true" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Mode of client</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:enumeration value="1"/>
                            <xs:enumeration value="3"/>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="IfIndex" type="base:NameAndIndexUnion" nillable="true" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Index of source interface</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="KeyID" nillable="true" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Authentication keyid</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="1"/>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Version" nillable="true" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>NTP version</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="1"/>
                            <xs:maxInclusive value="4"/>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Priority" type="base:Boolean" nillable="true" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Priority</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                  </xs:all>
                  <xs:attributeGroup ref="base:RowAttributeGroup"/>
                </xs:complexType>
              </xs:element>
            </xs:choice>
            <xs:attributeGroup ref="base:TableAttributeGroup"/>
          </xs:complexType>
        </xs:element>
        <xs:element name="AuthenticationKey" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Table of NTP Authentication Key</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice maxOccurs="unbounded">
              <xs:element name="Authentication" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                  <xs:documentation>Row Name</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:all>
                    <xs:element name="Service" nillable="true" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>NTP or SNTP</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="KeyID" nillable="true" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Authentication KeyID</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="1"/>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="AuthMode" nillable="true" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>MD5 or HMAC-SHA-1 or HMAC-SHA-256 or HMAC-SHA-384 or HMAC-SHA-512</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="AuthKey" nillable="true" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Authentication Key</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:String">
                            <xs:annotation>
                              <xs:documentation>Plaintext key string</xs:documentation>
                            </xs:annotation>
                            <xs:maxLength value="32"/>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="AclNumber" nillable="true" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>ACL Number</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="IPv6AclNumber" nillable="true" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>IPv6 ACL Number</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="Reliable" type="base:Boolean" nillable="true" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Reliable</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                  </xs:all>
                  <xs:attributeGroup ref="base:RowAttributeGroup"/>
                </xs:complexType>
              </xs:element>
            </xs:choice>
            <xs:attributeGroup ref="base:TableAttributeGroup"/>
          </xs:complexType>
        </xs:element>
        <xs:element name="Service" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Table of NTP Service</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:all>
              <xs:element name="NTPEnable" type="base:Boolean" nillable="true" minOccurs="0">
                <xs:annotation>
                  <xs:documentation>NTPEnable</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="SNTPEnable" type="base:Boolean" nillable="true" minOccurs="0">
                <xs:annotation>
                  <xs:documentation>SNTPEnable</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="NTPAuthEnable" type="base:Boolean" nillable="true" minOccurs="0">
                <xs:annotation>
                  <xs:documentation>NTPAuthEnable</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="SNTPAuthEnable" type="base:Boolean" nillable="true" minOccurs="0">
                <xs:annotation>
                  <xs:documentation>SNTPAuthEnable</xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="NTPSource" type="base:NameAndIndexUnion" nillable="true" minOccurs="0">
                <xs:annotation>
                  <xs:documentation>Index of NTP source interface</xs:documentation>
                </xs:annotation>
              </xs:element>
            </xs:all>
            <xs:attributeGroup ref="base:TableAttributeGroup"/>
          </xs:complexType>
        </xs:element>
        <xs:element name="RefClocks" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Table of NTP refclock</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice maxOccurs="unbounded">
              <xs:element name="RefClock" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                  <xs:documentation>Row Name</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:all>
                    <xs:element name="RefID" nillable="true" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>Reference Clock ID</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:String">
                            <xs:annotation>
                              <xs:documentation>String[1 ~ 15]</xs:documentation>
                            </xs:annotation>
                            <xs:maxLength value="15"/>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Stratum" nillable="true" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>NTP stratum</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="1"/>
                            <xs:maxInclusive value="15"/>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                  </xs:all>
                  <xs:attributeGroup ref="base:RowAttributeGroup"/>
                </xs:complexType>
              </xs:element>
            </xs:choice>
            <xs:attributeGroup ref="base:TableAttributeGroup"/>
          </xs:complexType>
        </xs:element>
      </xs:choice>
      <xs:attributeGroup ref="base:NodeAttributeGroup"/>
    </xs:complexType>
  </xs:element>
</xs:schema>
