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)
Core
XML
Tracking
()
RESOLVED
FIXED
People
(Reporter: rayw, Assigned: rayw)
Details
Attachments
(1 file)
|
59.83 KB,
patch
|
Details | Diff | Splinter Review |
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.
| Assignee | ||
Comment 1•24 years ago
|
||
| Assignee | ||
Updated•24 years ago
|
Status: NEW → ASSIGNED
| Assignee | ||
Comment 2•24 years ago
|
||
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
Updated•23 years ago
|
QA Contact: petersen → rakeshmishra
You need to log in
before you can comment on or make changes to this bug.
Description
•