<?xml version="1.0"?>

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<xsd:simpleType name="TemperatureType">
  <xsd:restriction base="xsd:int">
    <xsd:minInclusive value="-50"/>
    <xsd:maxInclusive value="50"/>
  </xsd:restriction>
</xsd:simpleType>

<xsd:simpleType name="ConditionsType">
  <xsd:restriction base="xsd:string">
    <xsd:enumeration value="Sunny"/>
    <xsd:enumeration value="Cloudy"/>
</xsd:restriction>
</xsd:simpleType>

<xsd:complexType name="ForecastType">
    <xsd:sequence>
         <xsd:element name = "location" 
                     type = "LocationType"
                     minOccurs = "1"
                     maxOccurs = "unbounded"/>
    </xsd:sequence>
    <xsd:attribute name="date" 
           type="xsd:date" use="optional"/>
</xsd:complexType>

<xsd:complexType name="LocationType">
     <xsd:sequence>
         <xsd:element name="temperature" type="TemperatureType"/>
         <xsd:element name="conditions" type="ConditionsType"/>
     </xsd:sequence>
     <xsd:attribute name="name" 
           type="xsd:string" use="required"/>
</xsd:complexType>

<xsd:element name="forecast" type="ForecastType"/>

</xsd:schema>