Issue Details (XML | Word | Printable)

Key: WODEN-172
Type: Bug Bug
Status: Resolved Resolved
Resolution: Fixed
Priority: Major Major
Assignee: John Kaputin
Reporter: John Kaputin
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
Woden

FlickrHTTP-1G test fails due to NS prefix and interface extension errors

Created: 31/Jul/07 11:51 AM   Updated: 01/Aug/07 02:23 PM
Component/s: None
Affects Version/s: None
Fix Version/s: M8

Time Tracking:
Not Specified

Resolution Date: 01/Aug/07 02:23 PM


 Description  « Hide
The FlickrHTTP-1G testcase fails with messages like:

Woden[Error],0:0,WSDL505,Could not create a QName from the string "activity.userComments" in element "{http://www.w3.org/ns/wsdl}input".

for each occurrence of a xs:QName attribute value that does not contain a namespace prefix. Adding a default namespace declaration to the WSDL that is equivalent to the target NS will eliminate these errors, but this is not solving the fundamental problem. This problem is that when Woden attempts to create a QName object from such a prefix-less xs:QName value, it should simply pass a null value as the namespaceURI argument to the QName ctor. Instead it assumes there has been some error resolving a namespace prefix to a namespace URI and throws a WSDLException.

The solution is to check if a prefix was present in the xs:QName value before attempting prefix resolution and if not, then just pass null to the ctor as above.

 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
John Kaputin added a comment - 01/Aug/07 11:54 AM
Once the namespace prefix error was resolved it highlighted a new problem. The Flickr WSDL uses several (i.e. more than 2) levels of interface extension. When Woden retrieves all operations for an interface (i.e. directly declared and derived operations) is only searches the interfaces extended directly by the current interface, but not any interfaces that those interfaces extend.

The fix is to change the behaviour of Woden to search the entire interface extension tree so that the operations (and faults) available to an interface will include:
1. the operations declared directly by the interface
2. the operations declared by any interfaces that this interface extends, directly or indirectly

John Kaputin added a comment - 01/Aug/07 02:18 PM
The solution to the namespace prefix fix is slightly different to the original solution described above.

If a prefix is specified in an xs:QName value and it cannot be resolved to a namespace URI then an error exists and a WSDLException will be thrown. If no prefix is specified, Woden will attempt to resolve a default namespace and if no default NS is specified then the xs:QName value will represent the localPart arg to the QName ctor and the namespaceURI arg will be specified as the empty string "".

This fix will be applied to the doGetQName(String) method in DOMXMLElement and OMXMLElement.

John Kaputin added a comment - 01/Aug/07 02:23 PM
r561808
DOMXMLElement and OMXMLElement - fixed namespace prefix problem
InterfaceImpl - fixed derived operations and faults for multiple levels of extended interfaces
W3Ctests.catalog - added the Flickr test url