But it was getting the namespace from the soap:body in the input clause. There was also a namespace explicitly defined in soap:body of the output clause. Why should we prefer input over output? And since there's a choice, it doesn't sound like EITHER is appropriate.

Why would c) be better than what I implemented? I guess I need some education here.

Russell Butek
[EMAIL PROTECTED]

Please respond to [EMAIL PROTECTED]

To: "'[EMAIL PROTECTED]'" <[EMAIL PROTECTED]>
cc:
Subject: RE: cvs commit: xml-axis/java/src/org/apache/axis/wsdl/toJava Jav aStubWriter.java




Namespace for the operation should come from EITHER

a) <soap:body namespace=""> if it's present (and we're RPC encoded)

OR

c) target namespace of the document (the default if we're RPC encoded and there's no body namespace)

OR

d) the <element> declaration for doc/lit services

In other words, the WSDL in the bug report is wrong if he wants the "Ram" namespace, because it specifies in the <soap:body> tag to use the "validate" namespace for the input.

I think that code you removed should get put back... perhaps improved, but we need it.

--Glen

> -----Original Message-----
> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
> Sent: Friday, June 07, 2002 4:59 PM
> To: [EMAIL PROTECTED]
> Subject: cvs commit: xml-axis/java/src/org/apache/axis/wsdl/toJava
> JavaStubWriter.java
>
>
> butek       2002/06/07 13:59:12
>
>   Modified:    java/src/org/apache/axis/wsdl/toJava
> JavaStubWriter.java
>   Log:
>   Fixed bugzilla 9643
>   (
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=9643).
>
>   I'm still not sure getting the namespace for an operation
> from the portType
>   is the right thing to do, but it's better than what was
> there.  Where SHOULD
>   an operation's namespace come from?
>
>   Revision  Changes    Path
>   1.68      +3 -31
> xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaStubWriter.java
>
>   Index: JavaStubWriter.java
>   ===================================================================
>   RCS file:
> /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/JavaSt
> ubWriter.java,v
>   retrieving revision 1.67
>   retrieving revision 1.68
>   diff -u -r1.67 -r1.68
>   --- JavaStubWriter.java 7 Jun 2002 13:14:34 -0000 1.67
>   +++ JavaStubWriter.java 7 Jun 2002 20:59:12 -0000 1.68
>   @@ -259,38 +259,10 @@
>                        break;
>                    }
>                }
>   -            // Get the namespace for the operation from
> the <soap:body>
>   +            // Get the namespace for the operation from
> the portType
>                // RJB: is this the right thing to do?
>   -            String namespace = "";
>   -            Iterator bindingMsgIterator = null;
>   -            BindingInput input = operation.getBindingInput();
>   -            BindingOutput output;
>   -            if (input != null) {
>   -                bindingMsgIterator =
>   -
> input.getExtensibilityElements().iterator();
>   -            }
>   -            else {
>   -                output = operation.getBindingOutput();
>   -                if (output != null) {
>   -                    bindingMsgIterator =
>   -
> output.getExtensibilityElements().iterator();
>   -                }
>   -            }
>   -            if (bindingMsgIterator != null) {
>   -                for (; bindingMsgIterator.hasNext();) {
>   -                    Object obj = bindingMsgIterator.next();
>   -                    if (obj instanceof SOAPBody) {
>   -                        namespace = ((SOAPBody)
> obj).getNamespaceURI();
>   -                        if (namespace == null) {
>   -                            namespace =
> symbolTable.getDefinition().
>   -                                    getTargetNamespace();
>   -                        }
>   -                        if (namespace == null)
>   -                            namespace = "";
>   -                        break;
>   -                    }
>   -                }
>   -            }
>   +            String namespace =
> portType.getQName().getNamespaceURI();
>   +
>                Operation ptOperation = operation.getOperation();
>                OperationType type = ptOperation.getStyle();
>
>
>
>
>

Reply via email to