Closed Bug 122969 Opened 24 years ago Closed 24 years ago

SOAP clients are inconsistent with use of 1999 / 2001 Schema URIs.

Categories

(Core :: XML, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: rayw, Assigned: rayw)

Details

Attachments

(1 file)

We have spent a long while representing schema using the 2001 URIs and 1999 URIs since SOAP 1.1 specified a wrong URI. But the way we have done this is still aparently inadequate, because within the same call, the WSDL will be specifying the 2001 URIs, while the actual calls expect and accept the 1999 URIs. I have not been able to reproduce it due to problems executing the wsdlproxytest code on Linux, but I know that mixing these types in this way will cause difficult problems, because they are not part of the same inheritance hierarchy. I have a patch to fix this problem (and future related problems) by aliasing any desired URIs instead of representing them as separate types. I have introduced new methods on nsISOAPEncoding that permit mapping on input and output of arbitrary SchemaURIs. This probably has a significant impact on performance (negative), but so would any solution where I had to try to reconcile the 1999 and 2001 schema objects and place them all into the same object hierarchy. This means that in many cases, I cannot even just "Get" an attribute, but I must look for attributes of several arbitrary namespaceURIs. for me, the most important thing right now is: 1. Getting a better model that will work in the cases Vidur points out 2. Making it transparent, without significantly impacting the way the SOAP methods are called. 3. Making it robust enough that it will solve other problems. The way to reproduce the problem is supposed to be: load the page /mozilla/extensions/xmlextras/proxy/src/tests/wspproxytest.xhtml Unfortunately, this test crashes currently under Linux for apparently-unrelated reasons. The proposed patch given here also makes that component at least activate under linux, which it did not before. But I have not been able to make it work well enough to show this problem. It should fail to serialize because the 1999 type given in the xsi:type attribute is not a subclass of the 2001 type passed in from the WSDL file. As currently written, the patch does not proxy the following schema URIs: Those of the SOAP envelope including envelope, header, body, and the encodingStyle attributes, because these cannot be safely mapped via the nsISOAPEncoding object, since these may span and control multiple encodings. The patch also does not alias the xmlns namespaceURI. But it does alias both the xsi:type prefix and values on both input and output, as well as the special attributes for controlling arrays.
Status: NEW → ASSIGNED
I put back the patch last week. I believe the problem should no longer occur, but I could never reproduce it anyway due to other failures in the wsp tests that were showing the problem. Since the way the code works has changed enough, any remaining problem would be a new one, so I am marking this one fixed.
Status: ASSIGNED → RESOLVED
Closed: 24 years ago
Resolution: --- → FIXED
QA Contact: petersen → rakeshmishra
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: