<?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="title">
    <xs:simpleType>
      <xs:restriction base="xs:string" xmlns:xs="http://www.w3.org/2001/XMLSchema">
        <xs:enumeration value="WriteTheWeb"/>
        <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="url" type="xs:anyURI" xmlns:xs="http://www.w3.org/2001/XMLSchema"/>
  <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"/>
        <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="width" type="xs:byte" xmlns:xs="http://www.w3.org/2001/XMLSchema"/>
  <xs:element name="height" type="xs:byte" xmlns:xs="http://www.w3.org/2001/XMLSchema"/>
  <xs:element name="description">
    <xs:simpleType>
      <xs:restriction base="xs:string" xmlns:xs="http://www.w3.org/2001/XMLSchema">
        <xs:enumeration value="News for web users that write back"/>
        <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:element name="language" type="xs:string" xmlns:xs="http://www.w3.org/2001/XMLSchema"/>
  <xs:element name="copyright" type="xs:string" xmlns:xs="http://www.w3.org/2001/XMLSchema"/>
  <xs:element name="managingEditor" type="xs:string" xmlns:xs="http://www.w3.org/2001/XMLSchema"/>
  <xs:element name="webMaster" type="xs:string" xmlns:xs="http://www.w3.org/2001/XMLSchema"/>
  <xs:element name="image">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="title"/>
        <xs:element ref="url"/>
        <xs:element ref="link"/>
        <xs:element ref="width"/>
        <xs:element ref="height"/>
        <xs:element ref="description"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="item">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="title"/>
        <xs:element ref="link"/>
        <xs:element ref="description"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="channel">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="title"/>
        <xs:element ref="link"/>
        <xs:element ref="description"/>
        <xs:element ref="language"/>
        <xs:element ref="copyright"/>
        <xs:element ref="managingEditor"/>
        <xs:element ref="webMaster"/>
        <xs:element ref="image"/>
        <xs:element ref="item" maxOccurs="unbounded" minOccurs="0"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <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 ref="channel"/>
      </xs:sequence>
      <xs:attribute type="xs:float" name="version" xmlns:xs="http://www.w3.org/2001/XMLSchema"/>
    </xs:complexType>
  </xs:element>
</xs:schema>