Mike,
 
What is "mc"? What Java class/API?
 
I think you can do two things to debug this further:
1. Use XmlOptions.setErrorListener(Collection) to retrieve the error messages, 
then see what the specific error is (use the XmlOptions object as parameter to 
the resp.validate() call)
2. Capture the XML passed from the SOAP body to XMLBeans (before it gets to 
XMLBeans). Save it to a file and see if it looks ok (based on its Schema) and 
where the discrepancy is. I am thinking there are maybe some namespace bindings 
that don't make it across from the SOAP stack to XMLBeans, it's a possibility.
 
Radu


________________________________

        From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Michael 
Ihde
        Sent: Sunday, August 03, 2008 10:48 AM
        To: [email protected]
        Subject: XMLBeans, Axiom, and Synapse/WSO2-ESB
        
        
        I'm trying to see if I can use XMLBeans to deal with an Axiom SOAPBody. 
 The following DeveloperWorks guide showed how to bring Axiom and XMLBeans 
together:
        
        http://www.ibm.com/developerworks/library/x-axiom/
        
        So I tried to extend Sample 380 in WSO2-ESB and basically had this as 
the first lines in my mediate() function:
        
        XMLStreamReader reader = 
mc.getEnvelope().getBody().getFirstElement().getFirstElement().getXMLStreamReaderWithoutCaching();
        GetQuoteResponse resp = GetQuoteResponse.Factory.parse(reader);
        System.out.println("Validate " + resp.validate());
        System.out.println(resp.toString());
        
        This is what prints out
        
        Validate false
        <ns:return type="samples.services.GetQuoteResponse" 
xmlns:ns="http://services.samples/xsd";>
          <ns:change>-2.8637862443067323</ns:change>
          <ns:earnings>-8.734540628084734</ns:earnings>
          <ns:high>-87.61828398040504</ns:high>
          <ns:last>89.13763928944611</ns:last>
          <ns:lastTradeTimestamp>Sun Aug 03 13:33:52 EDT 
2008</ns:lastTradeTimestamp>
          <ns:low>-88.94988407359973</ns:low>
          <ns:marketCap>4141070.6717920825</ns:marketCap>
          <ns:name>IBM Company</ns:name>
          <ns:open>-88.72550360449267</ns:open>
          <ns:peRatio>25.296622152954335</ns:peRatio>
          <ns:percentageChange>-2.9624706336045223</ns:percentageChange>
          <ns:prevClose>96.6688483531829</ns:prevClose>
          <ns:symbol>IBM</ns:symbol>
          <ns:volume>5034</ns:volume>
        </ns:return>
        
        I believe the problem is because the return element is defined as 
having a type of samples.services.GetQuoteResponse.  How do I get XMLBeans to 
accept the return element so that I can perform a function such as 
resp.getLast()?
        
        Am I completely off base?  Is there a better way to do this?
        
        Thanks,
        Michael
        

Reply via email to