module namespace dxq = "http://sig.biostr.washington.edu/dxq/"; declare namespace anglo="java:edu.washington.biostr.sig.anglo.WebServiceWrapper"; (: Call a web service :) declare function dxq:wscall( $wsdl as xs:string, $portName as xs:string, $callName as xs:string, $args as item()*) as item()* { for $v in anglo:wscall($wsdl, $portName, $callName, $args) return $v }; (: Convert a string to a document :) declare function dxq:toDocument( $data as xs:string) as document-node() { anglo:toDocument($data) }; (: Send out an xquery :) declare function dxq:xquery( $wsdl as xs:string, $portName as xs:string, $callName as xs:string, $query as xs:string) as document-node() { anglo:xquery($wsdl, $portName, $callName, $query) }; declare function dxq:xquery( $server as xs:string, $query as xs:string) as node() { let $queryString := encode-for-uri($query) let $url := concat($server, "/XQuerylet?query=", $queryString) return doc($url) }; (: Do an xquery on a standardized xquery Web Service :) declare function dxq:sxquery( $wsdl as xs:string, $query as xs:string) as document-node() { dxq:xquery($wsdl, "SilkRouteWebService", "queryDatabase", $query) };