a version for recommended change to GetResource,GetIdentity
KevinBenson
kmb at mssl.ucl.ac.uk
Tue Jun 20 08:12:13 PDT 2006
Yes it looks very good, I placed it on the RegistryInterface page
http://www.ivoa.net/twiki/bin/view/IVOA/RegistryInterface The wsdl
was not quite right, but corrected it (I think); it should now work with
WSDL2Java. Located in schema/registry/RegistrySearch/v1.0 for the wsdl.
The zip file has some older unused schema's as well and probably not
the most recent 1.0 vr:Resource schema's but will try to get the latest
version tomorrow.
As far as the document goes I like your changes especially the WSDL
Notes inline in the document. There might still be a couple of concerns
with KeywordSearch that I will have a think about and post a separate
e-mail later on that subject or follow up on Paul's e-mail.
cheers,
Kevin
Ray Plante wrote:
> Hi Kevin and Aurelien,
>
> (I know I've been sending you stuff fast and furious, so I'll understand
> if you need some time to digest some of this stuff. Sorry!)
>
> As you know, I've suggested we change the WSDL descriptions of GetResource
> and GetIdentity to use a different output format than
> Search/KeywordSearch to only allow one Resource record to be returned.
> Also, as I've alluded to previously, a number of recent incremental
> changes have introduce a number of inconsistances and a somewhat
> hodgepodge organization of the spec document. So along with my
> recommended change to the WSDL, I wanted to take the opportunity to
> reorganize the spec around the new WSDL.
>
> Here's a summary of what I did to the RegistrySearch interface WSDL:
> o GetResource and GetIdentity share a common output format called
> ResolveResponse that allows exactly one Resource element.
>
> o I got rid of the separate RegistryInterface.xsd file; since this
> schema is used only by RegistrySearch, it seems just as easy to
> include it directly in the <types> section of the WSDL.
>
> o I defined an extra NotFound fault for GetResource to handle the case
> when the input identifier cannot be resolved to a record.
>
> o I added in XQuerySearch to be part of the WSDL, regardless of whether
> the registry supports it.
>
> o I added the OperationUnsupported fault to XQuerySearch that
> non-supporting registries should throw.
>
> o in the <binding> section, I matched the soapAction and namespace URIs
> to the target namespace of the WSDL itself.
>
> Given these changes, I've reorganized section 2 around the theme that we
> have two kinds of operations in the searching interface: "search"
> operations that return VOResources and "resolve" operations that return a
> single Resource; the contents now looks like this...
>
> 2 Searching
> 2.1 Required Search Operations
> 2.1.1 Output Format
> 2.1.2 Constraint-based Search Query
> 2.1.3 Keyword Search Query
> 2.2 Resolve Operations
> 2.2.1 Output Format
> 2.2.2 Identifier Resolution
> 2.2.3 Identity Query
> 2.3 XQuery Search
>
> There isn't anything new in terms of content (other than what I talked
> about above in the WSDL), but you will see a bunch more detail describing
> inputs and outputs. Here are some notes:
>
> o The pagination and identifierOnly schemes (old section 2.1) have
> been integrated into the descriptions of inputs and outputs.
>
> o The description of VORegistry metadata has been moved to the (as yet
> unfinished) section 4.
>
> o I went ahead and changed that "to" attribute to "max".
>
> So if I can't talk you into the WSDL changes ;-) we can revert the spec
> document back and try to deal with the inconsistancies and organization
> there.
>
> cheers,
> Ray
>
>
> ------------------------------------------------------------------------
>
> <?xml version="1.0" encoding="UTF-8"?>
>
> <definitions name="IVOARegistrySearch"
> xmlns="http://schemas.xmlsoap.org/wsdl/"
> xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
> xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
> xmlns:xs="http://www.w3.org/2001/XMLSchema"
> xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
> xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
> xmlns:vr="http://www.ivoa.net/xml/VOResource/v1.0"
> xmlns:adql="http://www.ivoa.net/xml/ADQL/v1.0"
> xmlns:tns="http://www.ivoa.net/wsdl/RegistrySearch/v1.0"
> targetNamespace="http://www.ivoa.net/wsdl/RegistrySearch/v1.0">
> <types>
> <xs:schema xmlns="http://www.w3.org/2001/XMLSchema"
> xmlns:tns="http://www.ivoa.net/wsdl/RegistrySearch/v1.0"
> targetNamespace="http://www.ivoa.net/wsdl/RegistrySearch/v1.0">
>
> <xs:import namespace="http://www.ivoa.net/xml/VOResource/v1.0"
> schemaLocation=
> "../../../../schemas/VOResource/v1.0/VOResource-v1.0.xsd"/>
> <xs:import namespace="http://www.ivoa.net/xml/ADQL/v1.0"
> schemaLocation="ADQL.xsd" />
>
> <xs:element name="VOResources">
> <xs:complexType>
> <xs:sequence>
> <xs:choice>
> <xs:element name="Resource" type="vr:Resource"
> minOccurs="0" maxOccurs="unbounded"/>
> <xs:element name="identifier" type="vr:IdentifierURI"
> minOccurs="0" maxOccurs="unbounded"/>
> </xs:choice>
> </xs:sequence>
> <xs:attribute name="from" type="xs:positiveInteger" />
> <xs:attribute name="numberReturned" type="xs:positiveInteger" />
> <xs:attribute name="more" type="xs:boolean" />
> </xs:complexType>
> </xs:element>
>
> <xs:element name="Where" type="adql:whereType" />
>
> <xs:element name="Search">
> <xs:complexType>
> <xs:sequence>
> <xs:element ref="ri:Where" minOccurs="1" maxOccurs="1" />
> <xs:element name="from" type="xs:positiveInteger"
> minOccurs="0" maxOccurs="1" />
> <xs:element name="to" type="xs:positiveInteger"
> minOccurs="0" maxOccurs="1" />
> <xs:element name="identifiersOnly" type="xs:boolean"
> minOccurs="0" maxOccurs="1" />
> </xs:sequence>
> </xs:complexType>
> </xs:element>
>
> <xs:element name="SearchResponse">
> <xs:complexType>
> <xs:sequence>
> <xs:element ref="ri:VOResources" minOccurs="1" maxOccurs="1" />
> </xs:sequence>
> </xs:complexType>
> </xs:element>
>
> <xs:element name="ResolveResponse">
> <xs:complexType>
> <xs:sequence>
> <xs:element name="Resource" type="vr:Resource"
> minOccurs="1" maxOccurs="1" />
> </xs:sequence>
> </xs:complexType>
> </xs:element>
>
> <xs:element name="KeywordSearch">
> <xs:complexType>
> <xs:sequence>
> <xs:element name="keywords" type="xs:string"
> minOccurs="1" maxOccurs="1" />
> <xs:element name="orValues" type="xs:boolean" default="false"
> minOccurs="1" maxOccurs="1" />
> <xs:element name="from" type="xs:positiveInteger"
> minOccurs="0" maxOccurs="1" />
> <xs:element name="to" type="xs:positiveInteger"
> minOccurs="0" maxOccurs="1" />
> <xs:element name="identifiersOnly" type="xs:boolean"
> minOccurs="0" maxOccurs="1" />
> </xs:sequence>
> </xs:complexType>
> </xs:element>
>
> <xs:element name="GetResource">
> <xs:complexType>
> <xs:sequence>
> <xs:element name="identifier" type="xs:string"
> minOccurs="1" maxOccurs="1" />
> </xs:sequence>
> </xs:complexType>
> </xs:element>
>
> <xs:element name="XQuerySearch">
> <xs:complexType>
> <xs:sequence>
> <xs:element name="xquery" type="xs:string"
> minOccurs="1" maxOccurs="1" />
> </xs:sequence>
> </xs:complexType>
> </xs:element>
>
> <xs:element name="XQuerySearchResponse">
> <xs:complexType>
> <xs:sequence>
> <xs:any minOccurs="0"/>
> </xs:sequence>
> </xs:complexType>
> </xs:element>
>
> <xs:element name="ErrorResponse">
> <xs:complexType>
> <xs:sequence>
> <xs:element name="errorMessage" type="xs:string"
> minOccurs="1" maxOccurs="1" />
> </xs:sequence>
> </xs:complexType>
> </xs:element>
>
> <xs:element name="UnsupportedOperation">
> <xs:complexType>
> <xs:sequence>
> <xs:element name="errorMessage" type="xs:string"
> minOccurs="0" maxOccurs="1" />
> </xs:sequence>
> </xs:complexType>
> </xs:element>
>
> <xs:element name="NotFound">
> <xs:complexType>
> <xs:sequence>
> <xs:element name="errorMessage" type="xs:string"
> minOccurs="0" maxOccurs="1" />
> </xs:sequence>
> </xs:complexType>
> </xs:element>
> </xs:schema>
> </types>
>
> <message name="empty"/>
>
> <message name="ErrorResp">
> <part name="ErrorResp" element="tns:ErrorResponse"/>
> </message>
>
> <message name="OpUnsupportedResp">
> <part name="OpUnsupportedResp" element="tns:UnsupportedOperation"/>
> </message>
>
> <message name="NotFoundResp">
> <part name="NotFoundResp" element="tns:NotFound"/>
> </message>
>
> <message name="SearchReq">
> <part name="Search" element="tns:Search" />
> </message>
>
> <message name="SearchResp">
> <part name="VOResources" element="tns:SearchResponse" />
> </message>
>
> <message name="ResolveResp">
> <part name="Resource" element="tns:ResolveResponse" />
> </message>
>
> <message name="KeywordSearchReq">
> <part name="KeywordSearch" element="tns:KeywordSearch" />
> </message>
>
> <message name="GetResourceReq">
> <part name="GetResource" element="tns:GetResource" />
> </message>
>
> <portType name="RegistrySearchPort">
> <operation name="Search">
> <input message="tns:SearchReq" />
> <output message="tns:SearchResp" />
> <fault name="SearchError" message="tns:ErrorResp"/>
> </operation>
>
> <operation name="KeywordSearch">
> <input message="tns:KeywordSearchReq" />
> <output message="tns:SearchResp" />
> <fault name="KeywordSearchError" message="tns:ErrorResp"/>
> </operation>
>
> <operation name="GetResource">
> <input message="tns:GetResourceReq" />
> <output message="tns:ResolveResp" />
> <fault name="GetResourceError" message="tns:ErrorResp"/>
> </operation>
>
> <operation name="GetIdentity">
> <input message="tns:empty" />
> <output message="tns:ResolveResp" />
> <fault name="GetIdentityError" message="tns:ErrorResp"/>
> <fault name="NotFound" message="tns:NotFoundResp"/>
> </operation>
>
> <operation name="XQuerySearch">
> <input message="tns:XQuerySearchReq" />
> <output message="tns:XQuerySearchResp" />
> <fault name="XQuerySearchError" message="tns:ErrorResp"/>
> <fault name="OpUnsupported" message="tns:OpUnsupportedResp"/>
> </operation>
> </portType>
>
> <binding name="RegistrySearchSOAP" type="tns:RegistrySearchPortType">
> <soap:binding style="document"
> transport="http://schemas.xmlsoap.org/soap/http"/>
>
> <operation name="Search">
> <soap:operation style="document"
> soapAction="http://www.ivoa.net/wsdl/RegistrySearch/v1.0#Search"/>
> <input>
> <soap:body use="literal"
> namespace="http://www.ivoa.net/wsdl/RegistrySearch/v1.0"/>
> </input>
> <output>
> <soap:body use="literal"
> namespace="http://www.ivoa.net/wsdl/RegistrySearch/v1.0" />
> </output>
> <fault name="SearchError">
> <soap:fault name="SearchError" use="literal"
> namespace="http://www.ivoa.net/wsdl/RegistrySearch/v1.0"/>
> </fault>
> </operation>
>
> <operation name="KeywordSearch">
> <soap:operation style="document"
> soapAction=
> "http://www.ivoa.net/wsdl/RegistrySearch/v1.0#KeywordSearch"/>
> <input>
> <soap:body use="literal"
> namespace="http://www.ivoa.net/wsdl/RegistrySearch/v1.0"/>
> </input>
> <output>
> <soap:body use="literal"
> namespace="http://www.ivoa.net/wsdl/RegistrySearch/v1.0"/>
> </output>
> <fault name="KeywordSearchError">
> <soap:fault name="KeywordSearchError" use="literal"
> namespace="http://www.ivoa.net/wsdl/RegistrySearch/v1.0"/>
> </fault>
> </operation>
>
> <operation name="GetResource">
> <soap:operation style="document"
> soapAction=
> "http://www.ivoa.net/wsdl/RegistrySearch/v1.0#GetResource" />
> <input>
> <soap:body use="literal"
> namespace="http://www.ivoa.net/wsdl/RegistrySearch/v1.0"/>
> </input>
> <output>
> <soap:body use="literal"
> namespace="http://www.ivoa.net/wsdl/RegistrySearch/v1.0"/>
> </output>
> <fault name="GetResourceError">
> <soap:fault name="GetResourceError" use="literal"
> namespace="http://www.ivoa.net/wsdl/RegistrySearch/v1.0"/>
> </fault>
> </operation>
>
> <operation name="GetIdentity">
> <soap:operation style="document"
> soapAction=
> "http://www.ivoa.net/wsdl/RegistrySearch/v1.0#GetIdentity" />
> <input>
> <soap:body use="literal"
> namespace="http://www.ivoa.net/wsdl/RegistrySearch/v1.0"/>
> </input>
> <output>
> <soap:body use="literal"
> namespace="http://www.ivoa.net/wsdl/RegistrySearch/v1.0"/>
> </output>
> <fault name="GetResourceError">
> <soap:fault name="GetIdentityError" use="literal"
> namespace="http://www.ivoa.net/wsdl/RegistrySearch/v1.0"/>
> </fault>
> <fault name="NotFound">
> <soap:fault name="NotFound" use="literal"
> namespace="http://www.ivoa.net/wsdl/RegistrySearch/v1.0"/>
> </fault>
> </operation>
>
> <operation name="XQuerySearch">
> <soap:operation style="document"
> soapAction=
> "http://www.ivoa.net/wsdl/RegistrySearch/v1.0#XQuerySearch"/>
> <input>
> <soap:body use="literal"
> namespace="http://www.ivoa.net/wsdl/RegistrySearch/v1.0"/>
> </input>
> <output>
> <soap:body use="literal"
> namespace="http://www.ivoa.net/wsdl/RegistrySearch/v1.0" />
> </output>
> <fault name="XQuerySearchError">
> <soap:fault name="XQuerySearchError" use="literal"
> namespace="http://www.ivoa.net/wsdl/RegistrySearch/v1.0"/>
> </fault>
> <fault name="OpUnsupported">
> <soap:fault name="OpUnsupported" use="literal"
> namespace="http://www.ivoa.net/wsdl/RegistrySearch/v1.0"/>
> </fault>
> </operation>
>
> </binding>
> </definitions>
>
>
More information about the registry
mailing list