Here's the C# using XCQL (tested against Adam's server)
using System;
namespace SrwApp
{
/// <summary>
/// Summary description for Class1.
/// </summary>
class Class1
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main(string[] args)
{
//
// TODO: Add code to start application here
//
SRWSoapBinding binding = new SRWSoapBinding();
binding.Url =
"http://indexdata.dk:8001/z3950.loc.gov:7090/voyager";
searchRetrieveRequestType request = new
searchRetrieveRequestType();
request.Item = new xQuery();
((xQuery)request.Item).Item = new
xQueryTriple();
((xQueryTriple)((xQuery)request.Item).Item).boolean = new booleanType();
((xQueryTriple)((xQuery)request.Item).Item).boolean.value = "or";
((xQueryTriple)((xQuery)request.Item).Item).leftOperand = new
operandType();
((xQueryTriple)((xQuery)request.Item).Item).leftOperand.Item = new
searchClauseType();
((searchClauseType)((xQueryTriple)((xQuery)request.Item).Item).leftOpera
nd.Item).index = "dc.title";
((searchClauseType)((xQueryTriple)((xQuery)request.Item).Item).leftOpera
nd.Item).term = "cat";
((xQueryTriple)((xQuery)request.Item).Item).rightOperand = new
operandType();
((xQueryTriple)((xQuery)request.Item).Item).rightOperand.Item = new
searchClauseType();
((searchClauseType)((xQueryTriple)((xQuery)request.Item).Item).rightOper
and.Item).index = "dc.title";
((searchClauseType)((xQueryTriple)((xQuery)request.Item).Item).rightOper
and.Item).term = "cat";
request.maximumRecords="1";
request.startRecord="1";
searchRetrieveResponseType response =
binding.SRWSearchRetrieveOperation(request);
Console.WriteLine(response.numberOfRecords);
Console.WriteLine(response.records[0].recordData);
}
}
}
|