CSW XML Encoding: ResultSetId

I'm writing a CSW v2.0.2 (OGC 07-006r1) implementation, and have a question about the SOAP/XML interface for paging query results.

I expect that the database contents will be changing rapidly, and so would like to allow clients to refer to a previous query when requesting the next page of records (so that the ordering of the records does not get changed between page requests by new database entries). On the response side of the interface, the GetRecordsResponse/SearchResults/@resultSetId attribute appears to be designed to allow a particular set of records to be referenced later, but there doesn't appear to be a way to use the resultSetId on the request side of the interface.

It seems like a "workaround" might be to use GetRecordById with the resultSetId to get subsequent pages of results, rather than GetRecords, but GetRecordById notably lacks the "startPosition" or "maxRecords" attributes that GetRecords has for controlling paging.

Hopefully there's something that I'm overlooking, rather than this being a hole in the standard. Could anyone point out where in the specification I should be looking, or suggest an good alternate approach?

Thanks for any assistance!

- Dan

I guess the parameter results

I guess the parameter results from older, statefull protocol bindings and may not be considered in future versions. There exists a requestId attribute in request and response to link a resultset to a query...

The getRecordById is misinterpreted by Dan: it should address only one (or more) metadata entries referenced by their identifiers.

---Uwe Voges