I know that almost the same question was asked before ( here ). Despite the fact that there is one interesting answer, there is still a free end (in the case of untying), which is also applicable in our case.
Here is our situation: we parse SOAP messages whose body is structured like this:
<complexType name="Body">
<complexContent>
<restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
<sequence>
<element ref="{http://[message=spec url]"/>
</sequence>
</restriction>
</complexContent>
</complexType>
So far, we have suggested that order will be stored in lists (arrays) that are the result of the unmarshalling process. Itemsthen written to the table and processed further in the PL / SQL procedures. This is usually not sensitive to the order of the elements within the sequence. It may happen that there are two elements in a SOAP message that refers to the same object . This is mistake. He got into the PL / SQL code that does this, recording the situation and rejecting the second element.
Now our problem is that it is very rare and (so far) completely irreproducible, and not the second element (as can be seen from the SOAP message) that is rejected, but the first. If you look at the PL / SQL code, this can only happen if the data that represents the elements is read in the wrong order (compared with how they appear in the message).
, , .
, , JAXB. ( ) (chahuistle) , unmarshalling.
!