<?xml version="1.0" encoding="UTF-8"?>
<!--
  Schema for the 0.1 snapshot of Pie/Echo/Whatever
  IMPORTANT: This authoritative version of this schema is in Relax NG
   compact syntax; i.e. its name ends in ".rnc".  It would be very unwise
   to edit any other version.
  
  V0.1: T. Bray, July 2003
   July 12: fix sequence in feed/entry 
            clean up "mode" attribute dispatching
            s/Person/Writer/
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.intertwingly.net/wiki/pie/" xmlns:pie="http://www.intertwingly.net/wiki/pie/">
  <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/>
  <xs:element name="feed">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="pie:title"/>
        <xs:element minOccurs="0" ref="pie:subtitle"/>
        <xs:element ref="pie:link"/>
        <xs:element minOccurs="0" ref="pie:modified"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="pie:entry"/>
      </xs:sequence>
      <xs:attributeGroup ref="pie:XMLbasics"/>
      <xs:attributeGroup ref="pie:Version"/>
    </xs:complexType>
  </xs:element>
  <xs:attributeGroup name="Version">
    <xs:attribute name="version" use="required">
      <xs:simpleType>
        <xs:restriction base="xs:token">
          <xs:enumeration value="0.1"/>
        </xs:restriction>
      </xs:simpleType>
    </xs:attribute>
  </xs:attributeGroup>
  <xs:element name="title" type="xs:string"/>
  <xs:element name="subtitle" type="xs:string"/>
  <xs:element name="link" type="xs:anyURI"/>
  <xs:element name="id" type="xs:anyURI"/>
  <xs:element name="modified" type="xs:dateTime"/>
  <xs:element name="entry">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="pie:title"/>
        <xs:element minOccurs="0" ref="pie:subtitle"/>
        <xs:element ref="pie:link"/>
        <xs:element ref="pie:id"/>
        <xs:element minOccurs="0" ref="pie:summary"/>
        <xs:element ref="pie:author"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="pie:contributor"/>
        <xs:element minOccurs="0" ref="pie:created"/>
        <xs:element ref="pie:modified"/>
        <xs:element ref="pie:issued"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="pie:content"/>
      </xs:sequence>
      <xs:attributeGroup ref="pie:XMLbasics"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="issued" type="xs:dateTime"/>
  <xs:element name="created" type="xs:dateTime"/>
  <xs:element name="summary" type="xs:string"/>
  <xs:element name="author" type="pie:Writer"/>
  <xs:element name="contributor" type="pie:Writer"/>
  <xs:complexType name="Writer">
    <xs:sequence>
      <xs:element ref="pie:name"/>
      <xs:element minOccurs="0" ref="pie:homepage"/>
      <xs:element minOccurs="0" ref="pie:weblog"/>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="name" type="xs:string"/>
  <xs:element name="homepage" type="xs:anyURI"/>
  <xs:element name="weblog" type="xs:anyURI"/>
  <xs:element name="content">
    <xs:complexType mixed="true">
      <xs:group minOccurs="0" ref="pie:XHTML"/>
      <xs:attributeGroup ref="pie:XMLbasics"/>
      <xs:attribute name="type" use="required"/>
      <xs:attribute name="mode">
        <xs:simpleType>
          <xs:restriction base="xs:token">
            <xs:enumeration value="xml"/>
            <xs:enumeration value="escaped"/>
            <xs:enumeration value="base64"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="src" type="xs:anyURI"/>
    </xs:complexType>
  </xs:element>
  <xs:group name="XHTML">
    <xs:sequence>
      <xs:any namespace="http://www.w3.org/1999/xhtml" processContents="skip"/>
    </xs:sequence>
  </xs:group>
  <xs:attributeGroup name="XMLbasics">
    <xs:attribute ref="xml:lang"/>
    <xs:attribute ref="xml:base"/>
  </xs:attributeGroup>
</xs:schema>