- From: Lee Feigenbaum <feigenbl@us.ibm.com>
- Date: Tue, 21 Mar 2006 11:38:39 -0500
- To: RDF Data Access Working Group <public-rdf-dawg@w3.org>
Howdy,
Summary:
There are a few namespace errors in the querySoap binding that cause the
WSDL to fail to validate. This diff fixes all the errors and the resulting
WSDL validates successfully with woden.
88,89c88,89
< <fault ref="MalformedQuery" wsoap:code="soap:Sender" />
< <fault ref="QueryRequestRefused" wsoap:code="soap:Sender" />
---
> <fault ref="tns:MalformedQuery" wsoap:code="wsoap:Sender" />
> <fault ref="tns:QueryRequestRefused" wsoap:code="wsoap:Sender" />
91c91
< <operation ref="query"
wsoap:mep="http://www.w3.org/2003/05/soap/mep/request-response" />
---
> <operation ref="tns:query"
wsoap:mep="http://www.w3.org/2003/05/soap/mep/request-response" />
Details:
I downloaded the validation code from
http://dev.w3.org/cvsweb/2006/wsdlConverter/ along with the woden jars
that are archived there. My first attempt at running the validator against
http://www.w3.org/2001/sw/DataAccess/proto-wd/sparql-protocol-query.wsdl
gave this error:
"""
[Error] sparql-protocol-query.wsdl:12:71: cvc-elt.1: Cannot find the
declaration of element 'description'.
Something went really wrong!
WSDLException: faultCode=OTHER_ERROR: WSDLException thrown because Woden
does not yet resolve namespace-only schema imports. This is a 'NOT YET
SUPPORTED' error which will be fixed for Milestone 4.:
"""
So I dutifully went off to
http://cvs.apache.org/dist/ws/woden/milestones/1.0.0M4-incubating/ and
grabbed the M4 build of woden. Running against our WSDL now gives:
"""
panicale:~/My Documents/work/semantic-web/DAWG/wsdl-converter
160>./validate
http://www.w3.org/2001/sw/DataAccess/proto-wd/sparql-protocol-query.wsdl
[Error] 0:0,WSDL507,Could not create a QName from the string
"soap:Sender".,org.apache.woden.WSDLException:WSDLException (at
/description/binding[3]/fault[1]): faultCode=UNBOUND_PREFIX: Unable to
determine namespace of 'soap:Sender'.
[Error] 0:0,WSDL507,Could not create a QName from the string
"soap:Sender".,org.apache.woden.WSDLException:WSDLException (at
/description/binding[3]/fault[2]): faultCode=UNBOUND_PREFIX: Unable to
determine namespace of 'soap:Sender'.
[Error] 0:0,Binding-0055,The binding 'querySoap' does not define bindings
for the interface operation
'{http://www.w3.org/2005/08/sparql-protocol-query/#}query'. When a binding
specifies an interface it must specify bindings for all of the interfaces
operations.
[Error] 0:0,BindingFault-0058,The interface fault specified for this
binding fault has already been specified on another binding fault. Each
binding fault within a binding must specify a unique interface fault.
Sorry, this document is not valid.
"""
"Well," I thought, "at least it apologized."
The first comment is spot-on accurate. We don't define the NS prefix soap:
anywhere; without fully understanding the semantics here, I assume that
this should be the wsoap: namespace, so I changed that, which eliminated
the first two errors.
The next error was resolved by changing the operation element inside the
querySoap binding to be properly scoped inside the tns: namespace, leaving
me with one remaining error. That last error is similarly resolved by
properly placing the referenced faults in the querySoap binding in the
tns: namespace, at which point I was greeted with:
"""
panicale:~/My Documents/work/semantic-web/DAWG/wsdl-converter
165>./validate file:./tmp/sparql-protocol-query.wsdl
This document is valid. Congratulations.
"""
I will send information on the WSDL 1.1 to WSDL 2.0 XSLT later in the
week.
Lee
Received on Tuesday, 21 March 2006 16:39:04 UTC