<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">

  <!-- ############### Description of XML Schema ################# -->
  <xsd:annotation>
    <xsd:documentation xml:lang="en">
      Album Shaper 1.0 XML schema
      (Used with Album Shaper version 1.0a and 1.0a2)
      Copyright 2003 Will Stokes
     http://albumshaper.sourceforge.net
     wstokes@gingi.uchicago.edu
    </xsd:documentation>
  </xsd:annotation>

  <!-- ########### Top Level Album element and it's Description ####### -->
  <xsd:element name="album" type="albumType"/>
 
  <xsd:complexType name="albumType">
    <xsd:sequence>
      <xsd:element name="name"         type="xsd:string"/>
      <xsd:element name="description" type="xsd:string"/>
      <xsd:element name="author"       type="xsd:string"/>
      <xsd:element name="modified"    type="albumModifiedDateType"/>
      <xsd:element name="subalbum"  type="subalbumType" minOccurs="0" maxOccurs="unbounded"/>
    <xsd:sequence>
  </xsd:complexType> 
   
  <!-- ##################### Album modified date ################# -->
  <xsd:complexType name="albumModifiedDateType">
    <xsd:sequence>
      <xsd:element name="year" type="xsd:positiveInteger"/>
      <xsd:element name="month" type="xsd:positiveInteger"/>
      <xsd:element name="day" type="xsd:positiveInteger"/>
    </xsd:sequence>
  </xsd:complexType>
   
  <!-- ##################### Subalbums ######################### -->
  <xsd:complexType name="subalbumType">
    <xsd:sequence>
      <xsd:element name="name" type="xsd:string"/>
      <xsd:element name="description" type="xsd:string"/>
      <xsd:element name="photo" type="photoType" minOccurs="0" maxOccurs="unbounded"/>  
    </xsd:sequence>
  </xsd:complexType>

  <!-- ######################## Photos ######################### -->
  <xsd:complexType name="photoType">
     <xsd:sequence>
       <xsd:element name="description" type="xsd:string"/>
       <xsd:element name="imageMD5" type="xsd:string"/>
       <xsd:element name="slideMD5" type="xsd:string"/>
       <xsd:element name="thumbMD5" type="xsd:string"/>
     </xsd:sequence>
  </xsd:complexType>

</xsd:schema>
 