<?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:netconf ="urn:ietf:params:xml:ns:netconf:base:1.0"
                  xmlns:base ="http://www.h3c.com/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 >
      SYSLOG module config definition.
    </xs:documentation>
  </xs:annotation>
  <xs:element name="Syslog">
    <xs:complexType>
      <xs:choice maxOccurs="unbounded">
        <xs:element name="Configuration" minOccurs="0">
          <xs:annotation>
            <xs:documentation>
              This table contains information about syslog (the information center).
            </xs:documentation>
          </xs:annotation>
          <xs:complexType >
            <xs:all>
              <xs:element name="State" minOccurs="0" type="base:EnableState" nillable="true" >
                <xs:annotation>
                  <xs:documentation>
                    Status of syslog (the information center):
                    enable
                    disable
                  </xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="DuplicateLogSuppression" minOccurs ="0"  type="base:EnableState" nillable="true" >
                <xs:annotation>
                  <xs:documentation>
                    Status of the duplicate log suppression feature:
                    enable
                    disable
                  </xs:documentation>
                </xs:annotation>
              </xs:element>
            </xs:all>
            <xs:attributeGroup ref="base:TableAttributeGroup"></xs:attributeGroup>
          </xs:complexType>
        </xs:element>
        <xs:element name="LogBuffer" minOccurs ="0">
          <xs:annotation>
            <xs:documentation>
              This table contains log buffer information.
            </xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:all>
              <xs:element name="State" minOccurs="0"   type="base:EnableState" nillable="true" >
                <xs:annotation>
                  <xs:documentation>
                    Status of the log buffer:
                    enable
                    disable
                  </xs:documentation>
                </xs:annotation>
              </xs:element>
              <xs:element name="BufferSize" type="base:UnsignedShort" minOccurs="0" nillable="true">
                <xs:annotation>
                  <xs:documentation>Maximum log buffer size configured by the user. Numerical value must be in range(0..65535).</xs:documentation>
                </xs:annotation>
              </xs:element>
            </xs:all>
            <xs:attributeGroup ref="base:TableAttributeGroup"></xs:attributeGroup>
          </xs:complexType>
        </xs:element>
        <xs:element name="LogHosts" minOccurs="0">
          <xs:annotation>
            <xs:documentation>This table contains the log host information.</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice maxOccurs="unbounded">
              <xs:element name="Host"  maxOccurs="unbounded" minOccurs="0">
                <xs:annotation >
                  <xs:documentation>Row name</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:all>
                    <xs:element name="Address" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Address of the log host</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:String">
                            <xs:minLength value ="1"/>
                            <xs:maxLength value ="253"/>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>

                    <xs:element name="VRF" nillable="true" minOccurs="0">
                      <xs:annotation >
                        <xs:documentation>
                          VRF instance name as table index. String length constraints must be in range(1..31).
                        </xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:VRF">
                            <xs:maxLength value="31"></xs:maxLength>
                            <xs:minLength value="1"></xs:minLength>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Port" nillable="true"  minOccurs="0">
                      <xs:annotation >
                        <xs:documentation>Port number of the log host. Numerical value must be in range(1..65535)</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="Facility" nillable="true"  minOccurs="0">
                      <xs:annotation >
                        <xs:documentation>
                          Logging facility used by the log host, as follows:
                          128(local0); 136(local1); 144(local2); 152(local3); 160(local4); 168(local5); 176(local6); 184(local7);)
                        </xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:enumeration value="128"></xs:enumeration>
                            <xs:enumeration value="136"></xs:enumeration>
                            <xs:enumeration value="144"></xs:enumeration>
                            <xs:enumeration value="152"></xs:enumeration>
                            <xs:enumeration value="160"></xs:enumeration>
                            <xs:enumeration value="168"></xs:enumeration>
                            <xs:enumeration value="176"></xs:enumeration>
                            <xs:enumeration value="184"></xs:enumeration>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                  </xs:all>
                  <xs:attributeGroup ref="base:RowAttributeGroup"></xs:attributeGroup>
                </xs:complexType>
              </xs:element>
            </xs:choice>
            <xs:attributeGroup ref="base:TableAttributeGroup"></xs:attributeGroup>
          </xs:complexType>
        </xs:element>
        <xs:element name="OutputRules" minOccurs="0">
          <xs:annotation>
            <xs:documentation>This table contains information about syslog (the information center) output rules.</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice maxOccurs="unbounded">
              <xs:element name="OutputRule"  maxOccurs="unbounded" minOccurs="0">
                <xs:annotation >
                  <xs:documentation>Row name</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:all>
                    <xs:element name="Destination" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          Specifies syslog output destination.
                          Enumeration:
                          1 Console
                          2 Monitor terminal
                          3 Log host
                          4 Log buffer
                          5 Log file
                        </xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="1"></xs:minInclusive>
                            <xs:maxInclusive value="5"></xs:maxInclusive>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="MouduleName" nillable="true" minOccurs="0">
                      <xs:annotation >
                        <xs:documentation>
                          Specifies a module by its name.String length constrains must be in range(1..8).
                        </xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:String">
                            <xs:minLength value ="1"/>
                            <xs:maxLength value ="8"/>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Rule" nillable="true"  minOccurs="0">
                      <xs:annotation >
                        <xs:documentation>
                          A log output rule specifies the source modules and severity level of logs that can be output to
                          a destination. Logs matching the output rule are output to the destination.
                          Rules as follows:
                          "emergency",
                          "alert",
                          "critical",
                          "error",
                          "warning",
                          "notification",
                          "informational",
                          "debugging"
                          "deny"
                        </xs:documentation>
                      </xs:annotation>
                        <xs:complexType>
                          <xs:simpleContent>
                          <xs:restriction base="base:OctectString">
                            <xs:enumeration value="emergency"></xs:enumeration>
                            <xs:enumeration value="alert"></xs:enumeration>
                            <xs:enumeration value="critical"></xs:enumeration>
                            <xs:enumeration value="error"></xs:enumeration>
                            <xs:enumeration value="warning"></xs:enumeration>
                            <xs:enumeration value="notification"></xs:enumeration>
                            <xs:enumeration value="informational"></xs:enumeration>
                            <xs:enumeration value="debugging"></xs:enumeration>
                            <xs:enumeration value="deny"></xs:enumeration>
                          </xs:restriction>
                          </xs:simpleContent>
                        </xs:complexType>
                    </xs:element>
                  </xs:all>
                  <xs:attributeGroup ref="base:RowAttributeGroup"></xs:attributeGroup>
                </xs:complexType>
              </xs:element>
            </xs:choice>
            <xs:attributeGroup ref="base:TableAttributeGroup"></xs:attributeGroup>
          </xs:complexType>
        </xs:element>
      </xs:choice>
      <xs:attributeGroup ref="base:NodeAttributeGroup"></xs:attributeGroup>
    </xs:complexType>
  </xs:element>
</xs:schema>
