You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Bill Keese (JIRA)" <ax...@ws.apache.org> on 2005/01/27 04:03:18 UTC

[jira] Commented: (AXIS-1784) Axis client should not generate xsi:type attributes in document/literal or wrapped/literal mode

     [ http://issues.apache.org/jira/browse/AXIS-1784?page=comments#action_58132 ]
     
Bill Keese commented on AXIS-1784:
----------------------------------

I just noticed that Call.setOperation(String opName) does this logic:

        Use use = bEntry.getInputBodyType(bop.getOperation());
        setOperationUse(use);
        if (use == Use.LITERAL) {
            // Turn off encoding
            setEncodingStyle(null);
            // turn off XSI types
            setProperty(org.apache.axis.client.Call.SEND_TYPE_ATTR, Boolean.FALSE);
        }

Maybe the logic should be inside of setOperationUse() rather than inside setOperation().  Then it would work even when there wasn't a WSDL file.

Also, note that (as stated above) ArraySerializer doesn't strictly obey the SEND_TYPE_ATTR flag.

> Axis client should not generate xsi:type attributes in document/literal or wrapped/literal mode
> -----------------------------------------------------------------------------------------------
>
>          Key: AXIS-1784
>          URL: http://issues.apache.org/jira/browse/AXIS-1784
>      Project: Axis
>         Type: Bug
>     Versions: 1.2RC2
>     Reporter: Bill Keese
>     Priority: Minor

>
> Axis generates xsi:type=... attribute definitions even in literal mode.  It shouldn't.  The fix should be in SerializationContext:
>             sendXSIType = ( msgContext.getOperationUse() == Use.ENCODED );
> (or something like that).
> Also, ArraySerializer() has the following code which shouldn't be executed except for RPC/Encoded mode:
>             if (typeI != -1) {
>                 attrs.setAttribute(typeI,
>                                    schema.getXsiURI(),
>                                    "type",
>                                    qname,
>                                    "CDATA",
>                                    context.qName2String(soapArray));
>             } else {
>                 attrs.addAttribute(schema.getXsiURI(),
>                                    "type",
>                                    qname,
>                                    "CDATA",
>                                    context.qName2String(soapArray));
>             }
> Workaround:
> In client code, do
>      call.setProperty(Call.SEND_TYPE_ATTR, Boolean.FALSE);

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
   http://www.atlassian.com/software/jira