OMSerializerUtil and StreamingOMSerializer do not respect the prefix referenced 
in an xsi:type
----------------------------------------------------------------------------------------------

                 Key: WSCOMMONS-496
                 URL: https://issues.apache.org/jira/browse/WSCOMMONS-496
             Project: WS-Commons
          Issue Type: Bug
          Components: AXIOM
            Reporter: Rich Scheuerle
            Assignee: Rich Scheuerle


Here is the scenario:

1) An SOAP OM tree is built from the following input text:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
    xmlns:xsd="http://www.w3.org/2001/XMLSchema";
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
    xmlns:usr="http://ws.apache.org/axis2/user";>
    <soapenv:Header />
    <soapenv:Body>
        <axis2:echoMyData xmlns:axis2="http://ws.apache.org/axis2";>
            <data xsi:type="usr:myData">Hello World</data>
        </axis2:echoMyData>
    </soapenv:Body>
</soapenv:Envelope>

2) SOAPEnvelope.getBody().toString() is called which prints out the following 
text:

   <soapenv:Body xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
        <axis2:echoMyData xmlns:axis2="http://ws.apache.org/axis2";>
            <data xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:type="usr:myData">Hello World</data>
        </axis2:echoMyData>
    </soapenv:Body>

Note that most of the namespaces have been properly redeclared in the output 
text.
However, the namespace for prefix "usr" is missing.
Thus resulting xml is unusable.

Solution:

Change OMSerializerUtil and StreamingOMSerializer to respect the xsi:type and 
declare the namespaces of the referenced prefix (when necessary).

I have the code and test, and I am running final tests.


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to