Record Schema Negotiation Extension (version 1.0)
- The extension's namespace id is: info:srw/extension/2/schemaNegotiation-1.0.
'
- When used with SRU, the prefix 'info-2-rsn-' should be put before
the parameter name.
- The extension defines one parameter for the request: schemaNegotation.
- This parameter contains a single string. The string is a space separated
list of record schema URIs or short names. It is recommended that the
list be supplied in priority order.
Please note: the following record schema URI: "info:srw/schema/1/server-choice"
may be included in the list. If so, this is an indication that the client
wants the server to select an alternative schema if none in the list is
supported. If this URI is included, it is recommended that it be included
last. (Note: this URI is not intended for use as the value of the recordSchema
parameter in a searchRetrieveRequest.) When used with SRU, the prefix
'info-1-' should be put before the parameter name; thus the parameter
would be rendered as: x-info-1-server-choice.
If this extension is supported, then the server should select one of
these record schemas (preferably the first in the list that the server
supports) rather than the recordSchema request parameter. The selected
record schema's URI should be in the recordSchema field of the record
as usual. The server may select different schemas for records within the
same response.
If the server cannot support any schemas in the list:
- If the client wishes the server to select an alternative schema, it
is recommended (in addition to including the server choice URI described
above in the list) to omit the recordSchema parameter (thus if the server
does not support the extension, non-support will be transparent).
- If the client does not want the server to select an alternative schema,
it is recommended (in addition to not including the server choice URI
in the list) to include the recordSchema parameter (similarly, if the
server does not support the extension, non-support will be transparent).
In SRU, this parameter should be rendered as:
x-info-2-rsn-schemaNegotation
Examples
Given the request:
http://srw.cheshire3.org/l5r?operation=searchRetrieve&version=1.1
&query=dc.title%20any%20%3Dcat dog%3D&recordSchema=dc
&x-info-2-rsn-schemaNegotation=dc%20ccg%20marcxml
Or the equivalent request in SRW:
<searchRetrieveRequest>
<version>1.1</version>
<query>dc.title any "cat dog"</query>
<recordSchema>dc</recordSchema>
<extraRequestData>
<rsn:schemaNegotiation
xmlns:rsn="info:srw/extension/2/schemaNegotiation-v1.0">
dc ccg marcxml
</rsn:schemaNegotation>
</extraRequestData>
</searchRetrieveRequest>
Then the server may select any of DC, CCG or MarcXML as the record schema
for any record returned in the response.
|