<?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:documentation>RSS generation done by 'Radio UserLand' on Fri, 13 Apr 2001 19:23:02 GMT</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="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="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="cloud">
                <xs:complexType>
                  <xs:simpleContent>
                    <xs:extension base="xs:string" xmlns:xs="http://www.w3.org/2001/XMLSchema">
                      <xs:attribute type="xs:string" name="domain"/>
                      <xs:attribute type="xs:byte" name="port"/>
                      <xs:attribute type="xs:string" name="path"/>
                      <xs:attribute type="xs:string" name="registerProcedure"/>
                      <xs:attribute type="xs:string" name="protocol"/>
                    </xs:extension>
                  </xs:simpleContent>
                </xs:complexType>
              </xs:element>
              <xs:element name="item" maxOccurs="unbounded" minOccurs="0">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element type="xs:string" name="description" xmlns:xs="http://www.w3.org/2001/XMLSchema"/>
                    <xs:element name="enclosure" minOccurs="0">
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:extension base="xs:string" xmlns:xs="http://www.w3.org/2001/XMLSchema">
                            <xs:attribute type="xs:anyURI" name="url" use="optional"/>
                            <xs:attribute type="xs:int" name="length" use="optional"/>
                            <xs:attribute type="xs:string" name="type" use="optional"/>
                          </xs:extension>
                        </xs:simpleContent>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="source" minOccurs="0">
                      <xs:complexType>
                        <xs:simpleContent>
                          <xs:extension base="xs:string" xmlns:xs="http://www.w3.org/2001/XMLSchema">
                            <xs:attribute type="xs:anyURI" name="url" use="optional"/>
                          </xs:extension>
                        </xs:simpleContent>
                      </xs:complexType>
                    </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>