<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 2004 The Apache Software Foundation

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

         http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License. -->

<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="rss">
    <xs:annotation>
      <xs:documentation>Copyright 2004 The Apache Software Foundation

        Licensed under the Apache License, Version 2.0 (the "License");
        you may not use this file except in compliance with the License.
        You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

        Unless required by applicable law or agreed to in writing, software
        distributed under the License is distributed on an "AS IS" BASIS,
        WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
        See the License for the specific language governing permissions and
        limitations under the License.</xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name="channel">
          <xs:complexType>
            <xs:sequence>
              <xs:element type="xs:string" name="title" xmlns:xs="http://www.w3.org/2001/XMLSchema"/>
              <xs:element type="xs:anyURI" name="link" xmlns:xs="http://www.w3.org/2001/XMLSchema"/>
              <xs:element type="xs:string" name="description" xmlns:xs="http://www.w3.org/2001/XMLSchema"/>
              <xs:element type="xs:string" name="language" xmlns:xs="http://www.w3.org/2001/XMLSchema"/>
              <xs:element type="xs:string" name="pubDate" xmlns:xs="http://www.w3.org/2001/XMLSchema"/>
              <xs:element type="xs:string" name="lastBuildDate" xmlns:xs="http://www.w3.org/2001/XMLSchema"/>
              <xs:element type="xs:anyURI" name="docs" xmlns:xs="http://www.w3.org/2001/XMLSchema"/>
              <xs:element type="xs:string" name="generator" xmlns:xs="http://www.w3.org/2001/XMLSchema"/>
              <xs:element type="xs:string" name="managingEditor" xmlns:xs="http://www.w3.org/2001/XMLSchema"/>
              <xs:element type="xs:string" name="webMaster" xmlns:xs="http://www.w3.org/2001/XMLSchema"/>
              <xs:element name="item" maxOccurs="unbounded" minOccurs="0">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="title" minOccurs="0">
                      <xs:simpleType>
                        <xs:restriction base="xs:string" xmlns:xs="http://www.w3.org/2001/XMLSchema">
                          <xs:enumeration value="Star City"/>
                          <xs:enumeration value="The Engine That Does More"/>
                          <xs:enumeration value="Astronauts' Dirty Laundry"/>
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="link" minOccurs="0">
                      <xs:simpleType>
                        <xs:restriction base="xs:anyURI" xmlns:xs="http://www.w3.org/2001/XMLSchema">
                          <xs:enumeration value="http://liftoff.msfc.nasa.gov/news/2003/news-starcity.asp"/>
                          <xs:enumeration value="http://liftoff.msfc.nasa.gov/news/2003/news-VASIMR.asp"/>
                          <xs:enumeration value="http://liftoff.msfc.nasa.gov/news/2003/news-laundry.asp"/>
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="description">
                      <xs:simpleType>
                        <xs:restriction base="xs:string" xmlns:xs="http://www.w3.org/2001/XMLSchema">
                          <xs:enumeration value="How do Americans get ready to work with Russians aboard the International Space Station? They take a crash course in culture, language and protocol at Russia's &lt;a href=&quot;http://howe.iki.rssi.ru/GCTC/gctc_e.htm&quot;>Star City&lt;/a>."/>
                          <xs:enumeration value="Sky watchers in Europe, Asia, and parts of Alaska and Canada will experience a &lt;a href=&quot;http://science.nasa.gov/headlines/y2003/30may_solareclipse.htm&quot;>partial eclipse of the Sun&lt;/a> on Saturday, May 31st."/>
                          <xs:enumeration value="Before man travels to Mars, NASA hopes to design new engines that will let us fly through the Solar System more quickly.  The proposed VASIMR engine would do that."/>
                          <xs:enumeration value="Compared to earlier spacecraft, the International Space Station has many luxuries, but laundry facilities are not one of them.  Instead, astronauts have other options."/>
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="pubDate">
                      <xs:simpleType>
                        <xs:restriction base="xs:string" xmlns:xs="http://www.w3.org/2001/XMLSchema">
                          <xs:enumeration value="Tue, 03 Jun 2003 09:39:21 GMT"/>
                          <xs:enumeration value="Fri, 30 May 2003 11:06:42 GMT"/>
                          <xs:enumeration value="Tue, 27 May 2003 08:37:32 GMT"/>
                          <xs:enumeration value="Tue, 20 May 2003 08:56:02 GMT"/>
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                    <xs:element name="guid">
                      <xs:simpleType>
                        <xs:restriction base="xs:anyURI" xmlns:xs="http://www.w3.org/2001/XMLSchema">
                          <xs:enumeration value="http://liftoff.msfc.nasa.gov/2003/06/03.html#item573"/>
                          <xs:enumeration value="http://liftoff.msfc.nasa.gov/2003/05/30.html#item572"/>
                          <xs:enumeration value="http://liftoff.msfc.nasa.gov/2003/05/27.html#item571"/>
                          <xs:enumeration value="http://liftoff.msfc.nasa.gov/2003/05/20.html#item570"/>
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
      <xs:attribute type="xs:float" name="version" xmlns:xs="http://www.w3.org/2001/XMLSchema"/>
    </xs:complexType>
  </xs:element>
</xs:schema>