<xsd:schema xmlns="http://www.islandora.ca" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.islandora.ca" elementFormDefault="qualified" >
  <xsd:annotation>
    <xsd:documentation xml:lang="en">
      Islandora Workflow Schema
    </xsd:documentation>
  </xsd:annotation>
  
  <xsd:element name="workflow" type="workflowType"/>

  <xsd:complexType name="workflowType">
    <xsd:sequence>
      <xsd:element name="process" type="processType" minOccurs="1" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:complexType>
  
  <xsd:complexType name="processType">
    <xsd:sequence>
      <xsd:element name="message" type="xsd:string" minOccurs="0" maxOccurs="1"/>
      <xsd:element name="prereq" type="xsd:normalizedString" minOccurs="0" maxOccurs="unbounded"/>
      <xsd:element name="dependant" type="xsd:normalizedString" minOccurs="0" maxOccurs="unbounded"/>
      <xsd:element name="parameters" type="parametersType" minOccurs="0" maxOccurs="1"/>
    </xsd:sequence>
    <xsd:attribute name="id" type="xsd:normalizedString" use="required"/>
    <xsd:attribute name="name" type="xsd:normalizedString" use="required"/>
    <xsd:attribute name="state" type="xsd:normalizedString" use="required"/>
    <xsd:attribute name="attempts" type="xsd:positiveInteger"/>
    <xsd:attribute name="timestamp" type="xsd:dateTime"/>
  </xsd:complexType>

  
  <xsd:complexType name="parametersType">
    <xsd:sequence>
      <xsd:element name="parameter" type="parameterType" minOccurs="1" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:complexType>
  
  <xsd:complexType name="parameterType">
	<xsd:simpleContent>
		<xsd:extension base="xsd:string">
			<xsd:attribute name="name" type="xsd:normalizedString" use="required"/>
		</xsd:extension>
	</xsd:simpleContent>
  </xsd:complexType>
  
</xsd:schema>