Just looking at the response schema at
and must admit I haven't looked at it closely for

I think the status part needs work.

First: there is a single status, whose values are
: "0 - success 1 - partial success (some surrogate
diagnostics present in records structure) 2 -
failure"; similar to the Z39.50 present status.
There's no search status or result set status.
Remember that the srw service  (loosely) models
the Z39.50 Search with piggyback response.  That
has a search status, result set status, and
present status.

Second: couldn't we dispose of the surrogate
diagnostic for srw?  How about an element that
accompanies a record, telling which result set
record it is. Then if you get records 1, 3,4,5 you
know that 2 couldn't be returned, for some reason.
Do we need to bother with the reason? And that's
only for a persistent result set anyway;  much of
the time the queries are going to be re-executed
in which case the surrogate diagnostic isn't very

Could we do away with the status(es) altogether,
and just send diagnostics?