<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2000/10/XMLSchema">
  <!-- 
  STOR-Schema Draft 1.11
  W3C Schema Format
  Revised: 25 April 2001 
  Home: http://STORS.org/
  Discuss: http://www.asplists.com/asplists/aspfss.asp
  -->

  <xsd:element name="resources" type="resources" />

  <xsd:complexType name="resources">
    <xsd:sequence>

      <xsd:element name="other_stor_url" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
      <xsd:element name="publisher" type="publisher" minOccurs="0" maxOccurs="unbounded" />

    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="publisher">
    <xsd:sequence>

      <xsd:element name="name" type="xsd:string" minOccurs="0" />

      <!-- website URL - will also be used to resolve relative URL's in resource -->
      <xsd:element name="url" type="xsd:string" minOccurs="0" />

      <!-- logo dimensions must be 100x30 -->
      <xsd:element name="logo_url" type="xsd:string" minOccurs="0" />

      <!-- contact information -->
      <xsd:element name="address" type="xsd:string" minOccurs="0" />
      <xsd:element name="telephone" type="xsd:string" minOccurs="0" />
      <xsd:element name="fax" type="xsd:string" minOccurs="0" />
      <xsd:element name="description" type="xsd:string" minOccurs="0" />

      <!-- author(s) will be used as default for any resource not containing one -->
      <xsd:element name="author" type="author" minOccurs="0" maxOccurs="unbounded" />

      <xsd:element name="resource" type="resource" maxOccurs="unbounded" />

    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="resource">
    <xsd:sequence>

      <!-- absolute or relative URL - relative URL's resolved using publisher URL -->
      <xsd:element name="url" type="xsd:string" />

      <xsd:element name="title" type="xsd:string" />
      <xsd:element name="description" type="xsd:string" />

      <!-- author(s) override publisher authors for this resource only -->
      <xsd:element name="author" type="author" minOccurs="0" maxOccurs="unbounded" />

      <!-- must be one of the topics at STORS.org to be recognised -->
      <xsd:element name="topic" type="xsd:string" />
      <xsd:element name="related_topic" type="xsd:string" minOccurs="0" maxOccurs="2" />

      <!-- must be one of the categories at STORS.org to be recognised -->
      <xsd:element name="category" type="xsd:string" minOccurs="0" />

      <xsd:element name="comment" type="xsd:string" minOccurs="0" />

      <!-- separate multiple keywords in this element with commas -->
      <xsd:element name="keywords" type="xsd:string" minOccurs="0" />

      <!-- dates must be in yyyy-mm-dd format -->
      <xsd:element name="publish_date" type="xsd:date" minOccurs="0" />
      <xsd:element name="update_date" type="xsd:date" minOccurs="0" />

    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="author">
    <xsd:sequence>

      <xsd:element name="email" type="xsd:string" minOccurs="0" />
      <xsd:element name="full_name" type="xsd:string" minOccurs="0" />

    </xsd:sequence>
  </xsd:complexType>

</xsd:schema>

