Requesting Record metadata via SRU
June 8, 2007
An SRU client may retrieve record metadata in lieu of or in addition to record data. Record metadata includes information about the creation and maintenance of the record, its size, history, etc.
There is an XML schema, the Record Metadata Schema. or "rmd", whose identifier is info:srw/schema/1/rmd-1.0 and whose recommended short name is 'rmd' .
Note: the Record Metadata Schema is in development and will be available soon.
The XML namespace for this schema is
And there is a draft Namespace Information Page.
Requesting Record metadata in lieu of Record Data
A user might retrieve result set records, i.e. record data according to one of the conventional schemas, dublin core or MODS for example, and subsequently wish to retrieve record metadata for one or more of those record. This can be done by issuing a subsequent request, specifying the record metadata schema as the value of the recordSchema parameter, for example, 'rmd'.
Other schemas besides rmd may be used to retrieve record metadata. In some cases, a particular schema might be used to retrieve record data and alternatively to retrieve record metadata. (This is not the case with rmd, as it may be used only to retrieve record metadata.)
For example, suppose a user retrieves a dublin core record, and subsequently wants to retrieve rights information about that dublin core record. (This is distinguished from rights information about the work described by the dublin core record; that information might be in the dublin core record itself.) Suppose the user wants that information to br provided in a dublin core record.
Then in the first retrieval (where the record data is retrieved) the value of the recordSchema parameter would be 'dc' (info:srw/schema/1/dc-v1.1). In the subsequent retrieval the value would be 'dcrmd' (info:srw/schema/1/dcrmd-v1.1). These two identifiers identify the same schema (dublin core) but for different usages.
A client may retrieve result set records, i.e. record data, and in addition, record metadata for those result set records, in the same response. In this case the record metadata is carried within the extraRecordData parameter and it must be explicitly requested by the client in the request, by including an extraRequestData parameter.
An SRU extension is defined for this purpose. It allows the client to specify the schema in which to supply the record metadata. The schema may be 'rmd' or it may be another schema.
Record Metadata Extension: recordMetadata
The client indicates that it wants the server to include record metadata using a particular schema, by including the parameter/value pair:
&x-info-1-recordMetadata=<schema short name>
The client indicates that it wants the server to include record metadata using the rmd schema, by including the parameter/value pair:
.... or using the dublin core schema:
Example Request/responseGiven the request:
http://srw.example.org/sru?operation=searchRetrieve&version=1.1 &query=dc.title=cat&recordSchema=dc &x-info-1-recordMetadata=rmd
Then the server may consider this a request to include record level metadata along with one or more records in the response, using the rmd schema.
extraRecordData example (highlighted in orange):
<record> < recordSchema>info:srw/schema/1/dc-v1.1</recordSchema>
July 30, 2007