<?xml version="1.0" encoding="UTF-8"?>
<!-- XML Schema for Angel RM request messages -->
<!-- Version 0.10 -->
<!-- edited by Simon McLeish (s.mcleish@lse.ac.uk) 28/06/03 -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
	xmlns="http://www.angel.ac.uk/rm_request"
	elementFormDefault="qualified"
	attributeFormDefault="unqualified"
	targetNamespace="http://www.angel.ac.uk/rm_request"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.angel.ac.uk/rm_request http://www.angel.ac.uk/schemas/rm_request.xsd">
  <xs:annotation>
    <xs:documentation>
XML Schema for Angel RM request messages
Version 0.10
Edited by Simon McLeish (s.mcleish@lse.ac.uk) 2003-06-28
    </xs:documentation>
  </xs:annotation>
  <xs:element name="createBibItemRequest">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="requesterIP" />
        <xs:element ref="bib1" maxOccurs="unbounded" />
      </xs:sequence>
      <xs:anyAttribute />
    </xs:complexType>
  </xs:element>
  <xs:element name="getSubjectList">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="ynAttrType">
          <xs:sequence>
            <xs:element ref="requesterIP" />
	    <xs:element name="origin_schema" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
	  </xs:sequence>
	  <xs:anyAttribute />
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="getResourceTypeList">
    <xs:complexType>
      <xs:complexContent>
        <xs:extension base="ynAttrType">
          <xs:choice>
	    <xs:element ref="requesterIP" />
	  </xs:choice>
          <xs:anyAttribute />
        </xs:extension>
      </xs:complexContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="getAvailabilityRequest">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="resourceID" minOccurs="0" maxOccurs="unbounded" />
	<xs:element ref="requesterIP" />
	<xs:element ref="group" minOccurs="0" maxOccurs="unbounded" />
	<xs:element name="right" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
      <xs:anyAttribute />
    </xs:complexType>
  </xs:element>
  <xs:element name="localSearchRequest">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="requesterIP" />
	<xs:element ref="group" minOccurs="0" maxOccurs="unbounded" />
	<xs:any />
      </xs:sequence>
      <xs:attribute name="response_type" type="xs:string" default="full" />
      <xs:attribute name="include_deleted" type="ynType" default="N" />
      <xs:attribute name="search_type" type="xs:string" default="collection" />
      <xs:anyAttribute />
    </xs:complexType>
  </xs:element>
  <xs:element name="createRequest">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="requesterIP" />
	<xs:element ref="group" minOccurs="0" maxOccurs="unbounded" />
	<xs:any />
      </xs:sequence>
      <xs:anyAttribute />
    </xs:complexType>
  </xs:element>
  <xs:element name="editRequest">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="requesterIP" />
	<xs:element ref="group" minOccurs="0" maxOccurs="unbounded" />
	<xs:any />
      </xs:sequence>
      <xs:anyAttribute />
    </xs:complexType>
  </xs:element>
  <xs:element name="searchRequest">
    <xs:complexType>
      <xs:sequence minOccurs="1" maxOccurs="unbounded">
        <xs:choice>
          <xs:element ref="requesterIP" />
	  <xs:element ref="searchType" minOccurs="0" />
	  <xs:element ref="resourceID" minOccurs="0" maxOccurs="unbounded" />
	  <xs:any />
	</xs:choice>
      </xs:sequence>
      <xs:attribute name="response_type" type="xs:string" default="full" />
      <xs:anyAttribute />
    </xs:complexType>
  </xs:element>
  <xs:element name="searchForLikeRequest">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="requesterIP" />
	<xs:element ref="resourceID" minOccurs="0" maxOccurs="unbounded" />
	<xs:element ref="group" minOccurs="0" maxOccurs="unbounded" />
	<xs:any />
      </xs:sequence>
      <xs:attribute name="response_type" type="xs:string" default="full" />
      <xs:anyAttribute />
    </xs:complexType>
  </xs:element>
  <xs:element name="deleteRequest">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="requesterIP" />
	<xs:element ref="resourceID" minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
      <xs:anyAttribute />
    </xs:complexType>
  </xs:element>
  <xs:element name="searchType" type="xs:string" default="bibliographic" />
  <xs:element name="requesterIP">
    <xs:complexType>
      <xs:simpleContent>
        <xs:extension base="xs:string">
	  <xs:attribute name="filter" type="ynType" default="N" />
	</xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="group">
    <xs:complexType>
      <xs:simpleContent>
        <xs:extension base="xs:string">
	  <xs:attribute name="group" type="xs:string" default="N" />
	</xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="resourceID" type="xs:integer" />
  <xs:element name="bib1">
    <xs:complexType>
      <xs:simpleContent>
      	<xs:extension base="xs:string">
      	  <xs:attribute name="field" type="xs:string" use="required" />
      	</xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>
  <!-- set up y/n type for attributes -->
  <xs:simpleType name="ynType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Y" />
      <xs:enumeration value="N" />
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="ynAttrType">
    <xs:attribute name="with_matches" type="ynType" default="N" />
  </xs:complexType>
</xs:schema>

