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!