Hi all, [Matthew]At the moment the intent is that the same URL is used for both the SRU endpoint and the SRW endpoint. [Mike](Aside: is that intent documented anywhere?) Well, the ZeeRex record contains the following info: <serverInfo protocol="SRU" version="1.1" transport="http"> <host>gondolin.hist.liv.ac.uk</host> <port>210</port> <database>IR-Explain---1</database> </serverInfo> Since serverInfo is non-repeatable (if my understanding of DTD is up-to-date) there is no way to supply more than one host/port/protocol/transport combo.. [Hedzer] What reasons are there for not allowing it, then? I'm all for [Hedzer] allowing it (mostly because of the GET length problem). [Matthew]The server has to be able to determine whether it is getting an SRU request or an SRW request, and at [Matthew]present the server can distinguish that by whether it gets a HTTP GET (hence SRU) or HTTP POST (hence [Matthew]SRW). [Matthew] Allowing a HTTP POST to be either SRW (i.e. SOAP) or an SRU based POST (or potentially a more REST like [Matthew]POST with the SearchRetrieveRequest cast in XML but not within a SOAP envelope) would [Matthew]A) require some fiddly logic at the server end which would often mean hacking the SOAP toolkits to do That's just a technicality.. [Matthew]B) potentially break existing implementations How? [Mike]But there are other ways. The YAZ implementation of SRW allows the same port to be used for both [Mike]SRW and Z39.50 -- we just peek ahead at the first few bytes of the request and switch on what we see there. [Mike]They same could certainly be done, pretty trivially, for determing whether a POST payload is SRW or SRU. I agree. Not being able to program POST content-type checking for certain implementations should not mean that the SRW/SRU protocol should forbid it. And I'm all for *not* dropping SOAP, just because not many people implement it now. Who knows how many well optimized SOAP toolkits will emerge in the future? [Mike]What we're proposing here is a really, really simple fix which doesn't seem to have any downside [Mike](theoretically at least): we let SRU client implementors change [Mike] <form method="GET"> [Mike]to [Mike] <form method="POST"> [Mike]when their URLs get too long. Hmm, that's just a simple client-side fix. But the client should be able to find out whether the server actually supports it.. I propose to extend ZeeRex: - make serverInfo repeatable - add an attribute @method to <serverInfo> like this: <serverInfo protocol="SRU" version="1.1" transport="http" method="post,get"> <host>gondolin.hist.liv.ac.uk</host> <port>80</port> <database>IR-Explain---1</database> </serverInfo> <serverInfo protocol="SRW" version="1.1" transport="http" method="post"> <host>gondolin.hist.liv.ac.uk</host> <port>8080</port> <database>IR-Explain---1</database> </serverInfo> This configures SRU on gondolin.hist.liv.ac.uk:80, POST and GET and SRW on gondolin.hist.liv.ac.uk:8080, POST <serverInfo protocol="SRW/U" version="1.1" transport="http" method="post,get"> <host>gondolin.hist.liv.ac.uk</host> <port>80</port> <database>IR-Explain---1</database> </serverInfo> This configures SRU and SRW on gondolin.hist.liv.ac.uk:80, POST and GET. (Although GET probably bites with SOAP, so maybe this is a bad example.) Question: does protocol="SRW" need extra attributes like RPC or doc/literal ?? I don't know enough about SOAP for that.. Best regards, Hedzer Westra, Systems Developer Adlib | Information Systems Reactorweg 291 3542 AD Utrecht Postbus 1436 3600 BK Maarssen tel: +31-30-241 1885 www: http://www.adlibsoft.com