<?xml version="1.0" encoding="gb2312"?>
<xs:schema xmlns="http://www.h3c.com/netconf/config: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/config:1.0"
           elementFormDefault="qualified">
  <xs:import schemaLocation="basetype.xsd" namespace="http://www.h3c.com/netconf/base:1.0"></xs:import>
  <xs:annotation>
    <xs:documentation>
      TimeRange module config definition.
    </xs:documentation>
  </xs:annotation>

  <xs:complexType name="TRange_Name">
    <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="TRange_STime">
    <xs:simpleContent>
      <xs:restriction base="base:String">
        <xs:pattern value="^(2[0-3]|[0-1]?[0-9])(:[0-5]?[0-9])$"></xs:pattern>
      </xs:restriction>
   </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="TRange_ETime">
    <xs:simpleContent>
      <xs:restriction base="base:String">
        <xs:pattern value="^((2[0-3]|[0-1]?[0-9])(:[0-5]?[0-9])|(24:0?0))$"></xs:pattern>
      </xs:restriction>
   </xs:simpleContent>
  </xs:complexType>

 <xs:complexType name="TRange_Date">
    <xs:simpleContent>
      <xs:restriction base="base:Date">
         <xs:minInclusive value="1970-01-01"></xs:minInclusive>
         <xs:maxInclusive value="2100-12-31"></xs:maxInclusive>
      </xs:restriction>
    </xs:simpleContent>
  </xs:complexType>

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

        <!-- TimeRanges Table -->
        <xs:element name="TimeRanges" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Time ranges table.</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice maxOccurs="unbounded">
              <xs:element name="Range" minOccurs="0" maxOccurs="unbounded">
                <xs:annotation>
                  <xs:documentation>Time range row.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                  <xs:all>
                    <xs:element name="Name" minOccurs="0" type="TRange_Name" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          Time range name, a case-insensitive string of 1 to 32 characters.
                          It must start with an English letter.
                        </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>

        <!-- AbsRanges Table -->
        <xs:element name="AbsRanges" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Absolute time ranges table.</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice maxOccurs="unbounded">
              <xs:element name="AbsRange" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                  <xs:all>
                    <xs:element name="TimeRangeName" minOccurs="0" type="TRange_Name" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          Time range name, 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="ID" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Absolute time range sub-ID. Range from 0 to 12.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="0"></xs:minInclusive>
                            <xs:maxInclusive value="12"></xs:maxInclusive>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="Start" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>The start time of absolute time range, including StartTime and StartDate.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="StartTime" type="TRange_STime" nillable="true">
                            <xs:annotation>
                              <xs:documentation>The start time.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="StartDate" type="TRange_Date" nillable="true">
                            <xs:annotation>
                              <xs:documentation>The start date.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                        </xs:all>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="End" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>The end time of absolute time range, including EndTime and EndDate.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="EndTime" type="TRange_ETime" nillable="true">
                            <xs:annotation>
                              <xs:documentation>The end time.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="EndDate" type="TRange_Date" nillable="true">
                            <xs:annotation>
                              <xs:documentation>The end date.</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>

        <!-- PerRanges table -->
        <xs:element name="PerRanges" minOccurs="0">
          <xs:annotation>
            <xs:documentation>Periodic time ranges table.</xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice maxOccurs="unbounded">
              <xs:element name="PerRange" minOccurs="0" maxOccurs="unbounded">
                <xs:complexType>
                  <xs:all>
                    <xs:element name="TimeRangeName" minOccurs="0" type="TRange_Name" nillable="true">
                      <xs:annotation>
                        <xs:documentation>
                          Time range name, 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="ID" minOccurs="0" nillable="true">
                      <xs:annotation>
                        <xs:documentation>Periodic time range sub-ID. Range from 0 to 32.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:restriction base="base:UnsignedInteger32">
                            <xs:minInclusive value="0"></xs:minInclusive>
                            <xs:maxInclusive value="32"></xs:maxInclusive>
                          </xs:restriction>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="StartTime" minOccurs="0" type="TRange_STime" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The start time.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="EndTime" minOccurs="0" type="TRange_ETime" nillable="true">
                      <xs:annotation>
                        <xs:documentation>The end time.</xs:documentation>
                      </xs:annotation>
                    </xs:element>
                    <xs:element name="DayOfWeek" minOccurs="0">
                      <xs:annotation>
                        <xs:documentation>The days of a week.</xs:documentation>
                      </xs:annotation>
                      <xs:complexType>
                        <xs:all>
                          <xs:element name="Sun" minOccurs="0" type="base:Boolean" nillable="true">
                            <xs:annotation>
                              <xs:documentation>The flag of Sunday.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="Mon" minOccurs="0" type="base:Boolean" nillable="true">
                            <xs:annotation>
                              <xs:documentation>The flag of Monday.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="Tue" minOccurs="0" type="base:Boolean" nillable="true">
                            <xs:annotation>
                              <xs:documentation>The flag of Tuesday.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="Wed" minOccurs="0" type="base:Boolean" nillable="true">
                            <xs:annotation>
                              <xs:documentation>The flag of Wednesday.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="Thu" minOccurs="0" type="base:Boolean" nillable="true">
                            <xs:annotation>
                              <xs:documentation>The flag of Thursday.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="Fri" minOccurs="0" type="base:Boolean" nillable="true">
                            <xs:annotation>
                              <xs:documentation>The flag of Friday.</xs:documentation>
                            </xs:annotation>
                          </xs:element>
                          <xs:element name="Sat" minOccurs="0" type="base:Boolean" nillable="true">
                            <xs:annotation>
                              <xs:documentation>The flag of Saturday.</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>
      </xs:choice>
      <xs:attributeGroup ref="base:NodeAttributeGroup"></xs:attributeGroup>
    </xs:complexType>
  </xs:element>
</xs:schema>















