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

<!--

    Copyright (c) 2008 Volker Krause <vkrause@kde.org>

    This library is free software; you can redistribute it and/or modify it
    under the terms of the GNU Library General Public License as published by
    the Free Software Foundation; either version 2 of the License, or (at your
    option) any later version.

    This library is distributed in the hope that it will be useful, but WITHOUT
    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Library General Public
    License for more details.

    You should have received a copy of the GNU Library General Public License
    along with this library; see the file COPYING.LIB.  If not, write to the
    Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
    02110-1301, USA.

-->

  <xsd:element name="knut">
   <xsd:complexType>
     <xsd:sequence>
       <xsd:element name="collection" type="collectionType" minOccurs="0" maxOccurs="unbounded"/>
       <xsd:element name="item"       type="itemType"       minOccurs="0" maxOccurs="unbounded"/>
     </xsd:sequence>
   </xsd:complexType>
  </xsd:element>

  <xsd:complexType name="collectionType">
    <xsd:choice minOccurs="0" maxOccurs="unbounded">
      <xsd:element name="attribute"  type="attributeType" minOccurs="0" maxOccurs="unbounded"/>
      <xsd:element name="collection" type="collectionType" minOccurs="0" maxOccurs="unbounded"/>
      <xsd:element name="item"       type="itemType"       minOccurs="0" maxOccurs="unbounded"/>
    </xsd:choice>
    <xsd:attribute name="rid"        type="xsd:string"   use="required"/>
    <xsd:attribute name="name"       type="xsd:string"   use="required"/>
    <xsd:attribute name="content"    type="xsd:string"   use="required"/>
  </xsd:complexType>

  <xsd:complexType name="itemType">
    <xsd:sequence>
      <xsd:element name="payload"    type="payloadType"   minOccurs="0" maxOccurs="1"/>
      <xsd:element name="attribute"  type="attributeType" minOccurs="0" maxOccurs="unbounded"/>
      <xsd:element name="flag"       type="flagType"      minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attribute name="rid"        type="xsd:string" use="required"/>
    <xsd:attribute name="mimetype"   type="xsd:string" use="required"/>
  </xsd:complexType>

  <xsd:complexType name="payloadType">
    <xsd:simpleContent>
      <xsd:extension base="xsd:string"/>
    </xsd:simpleContent>
  </xsd:complexType>

  <xsd:complexType name="attributeType">
    <xsd:simpleContent>
      <xsd:extension base="xsd:string">
        <xsd:attribute name="type" type="xsd:string" use="required"/>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>

  <xsd:complexType name="flagType">
    <xsd:simpleContent>
      <xsd:extension base="xsd:string"/>
    </xsd:simpleContent>
  </xsd:complexType>

</xsd:schema>
