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 "Viera Bibr (JIRA)" <ax...@ws.apache.org> on 2004/12/20 19:51:13 UTC

[jira] Created: (AXIS-1736) multiref deserialization problem

multiref deserialization problem
--------------------------------

         Key: AXIS-1736
         URL: http://nagoya.apache.org/jira/browse/AXIS-1736
     Project: Axis
        Type: Bug
  Components: Serialization/Deserialization  
    Versions: 1.0-rc2    
 Environment: Windows 2000
    Reporter: Viera Bibr


When axis parses a multiref, it simply replaces this multiref with its definition loosing multiref element name.

For example:

I am trying to deserialize the following portion of SOAP:

<myElement href="#id3"/>

<multiRef id="id3"
          soapenc:root="0"
          soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
          xsi:type="xsd:short"
          xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">33</multiRef>

When I try to parse "<myElement href="#id3"/>" from the SOAP above, I get "multiRef" for localName parameter in the onStartElement(...) method of my deserializer. However, I would expect to get "myElement" for localName parameter.

As I can see, org.apache.axis.encoding.DeserializerImpl just replaces multi-references with their definitions, i.e., it replaces "myElement" with "multiRef". This is why I am getting "multiRef" instead of "myElement".

DeserializerImpl (in Axis 1.2RC2) replaces multi-references with their definitions in startElement(...) method. As soon as it realized that it found a multiref (if(href != null) on line 347), it resolves multiref to ref (line 351) and then publishes ref to the specified handler (line 369). This ref object seems to be the corresponding multiref definition. So, it publishes multiref definition to the specified handler ignoring the actual multiref element name ("myElement" in the example above). So, when I encounter myElement element, I see multiref definition in the parser. Please, correct me if I am wrong.

Thank you.




-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://nagoya.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


[jira] Commented: (AXIS-1736) multiref deserialization problem

Posted by "Viera Bibr (JIRA)" <ax...@ws.apache.org>.
     [ http://nagoya.apache.org/jira/browse/AXIS-1736?page=comments#action_56938 ]
     
Viera Bibr commented on AXIS-1736:
----------------------------------

Correction: 
I typed in a wrong axis version. Should be 1.2.RC2
Thanks. 

> multiref deserialization problem
> --------------------------------
>
>          Key: AXIS-1736
>          URL: http://nagoya.apache.org/jira/browse/AXIS-1736
>      Project: Axis
>         Type: Bug
>   Components: Serialization/Deserialization
>     Versions: 1.0-rc2
>  Environment: Windows 2000
>     Reporter: Viera Bibr

>
> When axis parses a multiref, it simply replaces this multiref with its definition loosing multiref element name.
> For example:
> I am trying to deserialize the following portion of SOAP:
> <myElement href="#id3"/>
> <multiRef id="id3"
>           soapenc:root="0"
>           soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
>           xsi:type="xsd:short"
>           xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">33</multiRef>
> When I try to parse "<myElement href="#id3"/>" from the SOAP above, I get "multiRef" for localName parameter in the onStartElement(...) method of my deserializer. However, I would expect to get "myElement" for localName parameter.
> As I can see, org.apache.axis.encoding.DeserializerImpl just replaces multi-references with their definitions, i.e., it replaces "myElement" with "multiRef". This is why I am getting "multiRef" instead of "myElement".
> DeserializerImpl (in Axis 1.2RC2) replaces multi-references with their definitions in startElement(...) method. As soon as it realized that it found a multiref (if(href != null) on line 347), it resolves multiref to ref (line 351) and then publishes ref to the specified handler (line 369). This ref object seems to be the corresponding multiref definition. So, it publishes multiref definition to the specified handler ignoring the actual multiref element name ("myElement" in the example above). So, when I encounter myElement element, I see multiref definition in the parser. Please, correct me if I am wrong.
> Thank you.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://nagoya.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