empty String as soapAction is invalid in XFire generated WSDL, it cannot be
optional if the binding protocol is http
--------------------------------------------------------------------------------------------------------------------
Key: XFIRE-802
URL: http://jira.codehaus.org/browse/XFIRE-802
Project: XFire
Issue Type: Bug
Components: Generator
Affects Versions: 1.2.2
Environment: Win2K
Reporter: Lee G.
Assigned To: Dan Diephouse
Attachments: stats.wsdl
To reproduce: Open a generated WSDL document in Altova XML Spy Enterprise
Edition 7 sp1 (not professional) and you get a validation error message due to
empty soapAction on http transport, as follows:-
wsdl is not valid. extensibility element '<wsdlsoap:operation>' (operation
'getCounters', binding 'statsServiceHttpBinding') has empty or missing
'soapAction' attribute! (required if binding transport is
'http://schemas.xmlsoap.org/soap/http')
Error location: wsdl:definitions / wsdl:binding / wsdl:operation /
wsdlsoap:operation
I raised the problem with Altova Support who confirmed this error is correct
behavior, as follows :-
----------------------------------------------
Case # : 9476
Submitted on: 2006-12-12 23:34:50
Product: XMLSpy_Enterprise_Edition
Version: 2007sp1
OS: win_xp
-------------------------------------------------------------------
Summary: WSDL Validation error
-------------------------------------------------------------------
Entered on 2006-12-13 at 09:47:30 by Christian Luntzer:
Dear Lee,
The validator of WSDL files in the Enterprise Edition of XML Spy does not
purely validate the wsdl based upon the
underlying schemas i.e. in addition to validating the wsdl according to the
WSDL and any included or imported schemas, the
validator also has a level of intelligence built into it which the Professional
Edition does not have. Your file would be considered valid
in the Professional Edition as this only validates the wsdl based upon the
schema(s), however XML Spy Enterprise realizes that
although the soapAction attribute is optional according to the schema, it
cannot be optional if the binding protocol is http and
therefore flags this as an error.
According to the WSDL 1.1 xsd
http://www.altova.com/specs_wsdl.html#_soap:operation
The soapAction attribute specifies the value of the SOAPAction header for this
operation. This URI value should be used directly as
the value for the SOAPAction header; no attempt should be made to make a
relative URI value absolute when making the request.
For the HTTP protocol binding of SOAP, this is value required (it has no
default value). For other SOAP protocol bindings, it MUST
NOT be specified, and the soap:operation element MAY be omitted.
To sum it up.. yes your file is valid according to the schema however it is not
valid in a "WSDL sense" as the SOAPAction attribute is
required if the binding is http. The reason for this extra validation is
because xml schema alone does not have any provisions for
specifying such a relationship i.e. if binding is equal to http then soapAction
should not be optional or empty.
I hope this clarifies the behavior. If my explanation is unclear please let me
know.
Thank you.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe from this list please visit:
http://xircles.codehaus.org/manage_email