I have been playing with another little project very similar to SRU
(but not exactly SRU). I purposely set out to do whatever was easy
for me at the time just to learn what the issues might be.

The program I am playing with is available at:

If you type in a query of '?' you will get all records in the database.
If you remove the 'ss=summary' query parameter, you will see the XML
I am returning. The ss=summary parameter is doing a server side XSLT
transformation of the returned XML into HTML. People can guess what
the various URL parameters mean I am sure (rs, es, maxrecs, recnum).

This was also my first serious XSLT project, so I have been learning
bits about XSLT at the same time. Certainly not an expert though!

As a result of my playing, I suggest the following are worth considering
in SRU *if* people want to use XSLT to transform the output into HTML etc.

* Putting things like the result set index in both the header (returning
  records 1 to 10) and on each <record> element, while redundant, makes
  the stylesheet much easier to write.

* Echoing every part of the request is very useful as it allows the
  stylesheet to form new URLs (the Next and Prev buttons on the
  summary list for example).

* Echoing all the query parameters both as text and URL encoded (%hh sequences)
  is useful, because XSLT does not have an easy way to do this. So I
  output <ccl> and <cclParam> elements for example.

* Returning XML fields of record as XML directly in the response makes
  life much easier.

Nothing deep here, and I can be easily shouted down. But there is nothing
like trying to write an XSLT stylesheet on the output to realise what
is important to XSLT writers!