<?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" type="rssType">
    <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:element>
  <xs:complexType name="imageType">
    <xs:sequence>
      <xs:element type="xs:string" name="title" xmlns:xs="http://www.w3.org/2001/XMLSchema"/>
      <xs:element type="xs:anyURI" name="url" 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:byte" name="width" xmlns:xs="http://www.w3.org/2001/XMLSchema"/>
      <xs:element type="xs:byte" name="height" xmlns:xs="http://www.w3.org/2001/XMLSchema"/>
      <xs:element type="xs:string" name="description" xmlns:xs="http://www.w3.org/2001/XMLSchema"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="itemType">
    <xs:sequence>
      <xs:element name="title">
        <xs:simpleType>
          <xs:restriction base="xs:string" xmlns:xs="http://www.w3.org/2001/XMLSchema">
            <xs:enumeration value="Giving the world a pluggable Gnutella"/>
            <xs:enumeration value="Syndication discussions hot up"/>
            <xs:enumeration value="Personal web server integrates file sharing and messaging"/>
            <xs:enumeration value="Syndication and Metadata"/>
            <xs:enumeration value="UK bloggers get organised"/>
            <xs:enumeration value="Yournamehere.com more important than anything"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="link">
        <xs:simpleType>
          <xs:restriction base="xs:anyURI" xmlns:xs="http://www.w3.org/2001/XMLSchema">
            <xs:enumeration value="http://writetheweb.com/read.php?item=24"/>
            <xs:enumeration value="http://writetheweb.com/read.php?item=23"/>
            <xs:enumeration value="http://writetheweb.com/read.php?item=22"/>
            <xs:enumeration value="http://writetheweb.com/read.php?item=21"/>
            <xs:enumeration value="http://writetheweb.com/read.php?item=20"/>
            <xs:enumeration value="http://writetheweb.com/read.php?item=19"/>
          </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="WorldOS is a framework on which to build programs that work like Freenet or Gnutella -allowing distributed applications using peer-to-peer routing."/>
            <xs:enumeration value="After a period of dormancy, the Syndication mailing list has become active again, with contributions from leaders in traditional media and Web syndication."/>
            <xs:enumeration value="The Magi Project is an innovative project to create a combined personal web server and messaging system that enables the sharing and synchronization of information across desktop, laptop and palmtop devices."/>
            <xs:enumeration value="RSS is probably the best known metadata format around. RDF is probably one of the least understood. In this essay, published on my O'Reilly Network weblog, I argue that the next generation of RSS should be based on RDF."/>
            <xs:enumeration value="Looks like the weblogs scene is gathering pace beyond the shores of the US. There's now a UK-specific page on weblogs.com, and a mailing list at egroups."/>
            <xs:enumeration value="Whatever you're publishing on the web, your site name is the most valuable asset you have, according to Carl Steadman."/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="channelType">
    <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="copyright" 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 type="imageType" name="image"/>
      <xs:element type="itemType" name="item" maxOccurs="unbounded" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="rssType">
    <xs:sequence>
      <xs:element type="channelType" name="channel"/>
    </xs:sequence>
    <xs:attribute type="xs:float" name="version" xmlns:xs="http://www.w3.org/2001/XMLSchema"/>
  </xs:complexType>
</xs:schema>