[OAI-implementers] Error reporting from OAI implementations

herbert van de sompel herbertv@cs.cornell.edu
Mon, 07 May 2001 10:55:33 -0400

hi Jozef,

This exception-handling issue has come up a while ago.  There is a
thread on oai-implementers at

I think it is fair to say that the consensus resulting from that the
discussion can be summarized as follows:

- illegal protocol syntax (usage of illegal verbs and illegal arguments)
results in status-code 400
- something wrong with argument values from the protocol perspective
(e.g.  "dates" that are not expressed by means of the prescribed
Complete date variant of ISO860; identifiers that do not match the XML
Schema type of uriReference, ... ) result in status-code 400
- something wrong with argument values from the repository perspective
(e.g. use of a metadataPrefix value that has a correct syntax, but is
not supported by the repository) results in a valid protocol reply
(which will however not contain real data, since the repository doesn't
support the metadataPrefix).

This whole discussion revealed that the exception-handling for protocol
requests is not unambigiously defined in the OAI protocol. A few weeks
ago, I used this fact as an inspiration for an assignment for my
students of the digital library course that I teach.  Please look at
Assignment 3 at
http://www.cs.cornell.edu/courses/cs502/2001SP/assignments.htm for more
information.  It is my intention to share some results of that
assingnment with this list, because they are very interesting and highly
relevant in light of:
* providing a formal definition of valid OAI protocol requests;
* the eventual evolution of the OAI protocol into a SOAP direction.



> Jozef Kruger wrote:
> Hello everybody,
> As a programmer for Adlib Information Systems (the Netherlands), I am
> implementing the OAI protocol for our database. I have a question
> about the error reporting. When an OAI-call is done, with for instance
> the wrong parameters (e.g. metadataPrefix is missing), how do I
> correctly report the error. Is there a standard way for doing this?
> And if so, what way? :)
> thanks very much.
> Jozef Kruger