<?xml version="1.0" encoding="windows-1251"?>

<!-- Пример наследования сложных типов (взаимозаменяемость базового и дочернего классов) -->

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">

<xsd:complexType name="TemperatureType">
  <xsd:simpleContent>
    <xsd:extension base="xsd:int">
       <xsd:attribute name="scale" type="xsd:string" use="required"/>
    </xsd:extension>
  </xsd:simpleContent>
</xsd:complexType>

<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 minOccurs = "1"
                maxOccurs = "unbounded">
         
	<xsd:choice>
         <xsd:element name = "location" 
                      type = "LocationType"/>
         <xsd:element name = "locationw" 
                      type = "LocationWithWindType"/>
         </xsd:choice>
    </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:complexType name="LocationWithWindType">
  <xsd:complexContent>
    <xsd:extension base="LocationType">
      <xsd:sequence>
        <xsd:element name="wind" 
                     type="xsd:int"
                     />
      </xsd:sequence>
    </xsd:extension>
  </xsd:complexContent>
</xsd:complexType>


<xsd:element name="forecast" type="ForecastType"/>

</xsd:schema>