Feedback from interim WG meeting: agreement that marshalling should be
rewritten and backwards compatibility is not important. Proposal: extend
DAV:multistatus by a new child element that indicates (1) the range that was
returned, (2) the total number of results and (3) a URI identifying the
result (for resubmission when getting the "next" results). Such as
<multistatus xmlns='DAV:'>
<search-result>
<href>...identifier for result set...</href>
<total><-- number of results --></total>
<start><-- 1-based index of 1st result --></start>
<length><-- size of result set returned --></length>
<partial-result/><-- indicates that this is a partial result -->
</search-result>
...response elements for search results...
</multistatus>
The example below would then translate to:
HTTP/1.1 207 Multistatus
Content-Type: text/xml; charset="utf-8"
Content-Length: xxx
<?xml version="1.0" encoding="utf-8"?>
<D:multistatus xmlns:D="DAV:">
<D:search-result>
<D:partial-result/>
</D:search-result>
<D:response>
<D:href>http://www.example.net/sounds/unbrokenchain.au</D:href>
<D:propstat>
<D:prop/>
<D:status>HTTP/1.1 200 OK</D:status>
</D:propstat>
</D:response>
<D:response>
<D:href>http://tech.mit.test/archive96/photos/Lesh1.jpg</D:href>
<D:propstat>
<D:prop/>
<D:status>HTTP/1.1 200 OK</D:status>
</D:propstat>
</D:response>
</D:multistatus>
Q: do we need all elements, in particular start and length?