X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=src%2Fseshigh.c;h=ec058c6d69ff17577f3c216dbe08033452588f66;hb=c437556fbbc225557c621c28d5c3a70e03c345de;hp=d320f022016e0540ae1d6f9aca51a00c9f5a6e51;hpb=f1c754c5a459f86a455795a494ce98f0cdc0599b;p=yaz-moved-to-github.git diff --git a/src/seshigh.c b/src/seshigh.c index d320f02..ec058c6 100644 --- a/src/seshigh.c +++ b/src/seshigh.c @@ -2,7 +2,7 @@ * Copyright (c) 1995-2004, Index Data * See the file LICENSE for details. * - * $Id: seshigh.c,v 1.27 2004-09-10 11:28:58 adam Exp $ + * $Id: seshigh.c,v 1.30 2004-09-30 18:40:13 adam Exp $ */ /* @@ -510,9 +510,22 @@ static int srw_bend_fetch(association *assoc, int pos, rr.comp->u.complex->generic = (Z_Specification *) odr_malloc(assoc->decode, sizeof(Z_Specification)); + + /* schema uri = recordSchema (or NULL if recordSchema is not given) */ rr.comp->u.complex->generic->which = Z_Schema_uri; rr.comp->u.complex->generic->schema.uri = srw_req->recordSchema; + + /* ESN = recordSchema if recordSchema is present */ rr.comp->u.complex->generic->elementSpec = 0; + if (srw_req->recordSchema) + { + rr.comp->u.complex->generic->elementSpec = + (Z_ElementSpec *) odr_malloc(assoc->encode, sizeof(Z_ElementSpec)); + rr.comp->u.complex->generic->elementSpec->which = + Z_ElementSpec_elementSetName; + rr.comp->u.complex->generic->elementSpec->u.elementSetName = + srw_req->recordSchema; + } rr.stream = assoc->encode; rr.print = assoc->print; @@ -761,7 +774,7 @@ static void srw_bend_explain(association *assoc, request *req, if (srw_req->recordPacking && !strcmp(srw_req->recordPacking, "xml")) packing = Z_SRW_recordPacking_XML; - srw_res->record.recordSchema = 0; + srw_res->record.recordSchema = rr.schema; srw_res->record.recordPacking = packing; srw_res->record.recordData_buf = rr.explain_buf; srw_res->record.recordData_len = strlen(rr.explain_buf); @@ -1325,7 +1338,7 @@ static Z_APDU *process_initRequest(association *assoc, request *reqb) assoc->init->implementation_name, odr_prepend(assoc->encode, "GFS", resp->implementationName)); - version = odr_strdup(assoc->encode, "$Revision: 1.27 $"); + version = odr_strdup(assoc->encode, "$Revision: 1.30 $"); if (strlen(version) > 10) /* check for unexpanded CVS strings */ version[strlen(version)-2] = '\0'; resp->implementationVersion = odr_prepend(assoc->encode,