Steve-
Don't thank me yet... I just tried to recreate your problem and
everything works fine for me... Here's the xml I'm using:
<?xml version="1.0" encoding="UTF-8"?>
<array-list>
<greeting-planet xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:type="java:castor.pitchford.GreetingPlanet">
<planet>Hello</planet>
<greeting>World</greeting>
</greeting-planet>
<greeting-planet>
<planet>Bonjour</planet>
<greeting>le monde</greeting>
</greeting-planet>
</array-list>
Only difference (I think) is I changed the class xsi:type points to.
I unmarshalled it using the following code:
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document xmlDoc = db.parse( new File(
"src/castor/pitchford/arraylist.xml" ) );
ArrayList list = (ArrayList)Unmarshaller.unmarshal(
ArrayList.class, xmlDoc );
System.out.println( "Result: " + list.get( 0 ) );
And for completeness, here's the class I used for GreetingPlanet:
public class GreetingPlanet {
private String greeting;
private String planet;
public GreetingPlanet() {}
public String getGreeting() { return greeting; }
public void setGreeting( String greeting ) { this.greeting = greeting; }
public String getPlanet() { return planet; }
public void setPlanet( String planet ) { this.planet = planet; }
public String toString() { return( planet + " " + greeting ); }
}
For my own sanity, can you try creating your result node without using
Axis (i.e. paste it into a file and parse it similar to what I'm
doing) and see if you still have problems? I ran this on the 1.0M2
jar I have, but it might also be worth it to download 1.0M4 and see if
that changes anything...
Stephen
On 4/5/06, Steve Pitchford <[EMAIL PROTECTED]> wrote:
> Hello Stephen,
>
> Thank you for the swift reply - the stacktrace produced by the exception
> follows:
>
> Error: The namespace associated with the prefix 'xsi' could not be resolved.
> The namespace associated with the prefix 'xsi' could not be resolved.
> at
> org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:589)
> at
> org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:735)
> at
> org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:848)
> at simplestuff.TestJDOM.unformMessage(TestJDOM.java:138)
> at simplestuff.TestJDOM.sendMessage(TestJDOM.java:67)
> at simplestuff.TestJDOM.main(TestJDOM.java:226)
> Caused by: org.xml.sax.SAXException: The namespace associated with the
> prefix 'xsi' could not be resolved.
> at
> org.exolab.castor.xml.UnmarshalHandler.processAttributeList(UnmarshalHandler.java:3186)
> at
> org.exolab.castor.xml.UnmarshalHandler.startElement(UnmarshalHandler.java:1429)
> at
> org.exolab.castor.xml.util.DOMEventProducer.process(DOMEventProducer.java:245)
> at
> org.exolab.castor.xml.util.DOMEventProducer.process(DOMEventProducer.java:182)
> at
> org.exolab.castor.xml.util.DOMEventProducer.processChildren(DOMEventProducer.java:333)
> at
> org.exolab.castor.xml.util.DOMEventProducer.process(DOMEventProducer.java:247)
> at
> org.exolab.castor.xml.util.DOMEventProducer.process(DOMEventProducer.java:182)
> at
> org.exolab.castor.xml.util.DOMEventProducer.start(DOMEventProducer.java:110)
> at
> org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:584)
> ... 5 more
> Caused by: org.xml.sax.SAXException: The namespace associated with the
> prefix 'xsi' could not be resolved.
> at
> org.exolab.castor.xml.UnmarshalHandler.processAttributeList(UnmarshalHandler.java:3186)
> at
> org.exolab.castor.xml.UnmarshalHandler.startElement(UnmarshalHandler.java:1429)
> at
> org.exolab.castor.xml.util.DOMEventProducer.process(DOMEventProducer.java:245)
> at
> org.exolab.castor.xml.util.DOMEventProducer.process(DOMEventProducer.java:182)
> at
> org.exolab.castor.xml.util.DOMEventProducer.processChildren(DOMEventProducer.java:333)
> at
> org.exolab.castor.xml.util.DOMEventProducer.process(DOMEventProducer.java:247)
> at
> org.exolab.castor.xml.util.DOMEventProducer.process(DOMEventProducer.java:182)
> at
> org.exolab.castor.xml.util.DOMEventProducer.start(DOMEventProducer.java:110)
> at
> org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:584)
> at
> org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:735)
> at
> org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:848)
> at simplestuff.TestJDOM.unformMessage(TestJDOM.java:138)
> at simplestuff.TestJDOM.sendMessage(TestJDOM.java:67)
> at simplestuff.TestJDOM.main(TestJDOM.java:226)
> Caused by: org.xml.sax.SAXException: The namespace associated with the
> prefix 'xsi' could not be resolved.
> at
> org.exolab.castor.xml.UnmarshalHandler.processAttributeList(UnmarshalHandler.java:3186)
> at
> org.exolab.castor.xml.UnmarshalHandler.startElement(UnmarshalHandler.java:1429)
> at
> org.exolab.castor.xml.util.DOMEventProducer.process(DOMEventProducer.java:245)
> at
> org.exolab.castor.xml.util.DOMEventProducer.process(DOMEventProducer.java:182)
> at
> org.exolab.castor.xml.util.DOMEventProducer.processChildren(DOMEventProducer.java:333)
> at
> org.exolab.castor.xml.util.DOMEventProducer.process(DOMEventProducer.java:247)
> at
> org.exolab.castor.xml.util.DOMEventProducer.process(DOMEventProducer.java:182)
> at
> org.exolab.castor.xml.util.DOMEventProducer.start(DOMEventProducer.java:110)
> at
> org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:584)
> at
> org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:735)
> at
> org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:848)
> at simplestuff.TestJDOM.unformMessage(TestJDOM.java:138)
> at simplestuff.TestJDOM.sendMessage(TestJDOM.java:67)
> at simplestuff.TestJDOM.main(TestJDOM.java:226)
> BUILD SUCCESSFUL (total time: 7 seconds)
>
>
> Stephen Bash wrote:
>
> >Steve-
> >
> >Can you post the stack trace from this error? It would help in
> >localizing the problem.
> >
> >Thanks,
> >Stephen
> >
> >
> >On 4/4/06, Steve Pitchford <[EMAIL PROTECTED]> wrote:
> >
> >
> >>Hi,
> >>
> >>I am getting the following error when trying to unmarshall an array-list
> >>from an org.w3c.dom.Node
> >>into castor:
> >>
> >>Error: The namespace associated with the prefix 'xsi' could not be resolved.
> >>
> >>I pass the following xml into an axis soap client:
> >>
> >><SOAP-ENV:Envelope xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
> >>xmlns:SOAP-ENV='http://schemas.xmlsoap.org/soap/envelope/'
> >>xmlns:java='java' xmlns:xsd='http://www.w3.org/2001/XMLSchema'
> >>SOAP-ENV:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'>
> >><SOAP-ENV:Body>
> >> <array-list>
> >> <greeting-planet
> >>xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
> >>xsi:type='java:genbeans.GreetingPlanet'>
> >> <planet>Hello</planet>
> >> <greeting>World</greeting>
> >> </greeting-planet>
> >> <greeting-planet>
> >> <planet>Bonjour</planet>
> >> <greeting>le monde</greeting>
> >> </greeting-planet>
> >> </array-list>
> >></SOAP-ENV:Body>
> >></SOAP-ENV:Envelope>
> >>
> >>This is then returned from Axis using the following code ( axis returns
> >>a soap envelope):
> >>
> >> SOAPBody sb = envelope.getBody();
> >> org.w3c.dom.Node result = sb.getFirstChild();
> >>
> >> if ( result != null)
> >> {
> >> Unmarshaller unmar = new Unmarshaller();
> >> Object o = null;
> >> try
> >> {
> >> unmar.setValidation(true);
> >> o = unmar.unmarshal(c,result);
> >> }
> >> catch ( Exception e )
> >> {
> >> System.out.println("Error: "+e.toString());
> >> }
> >>
> >> return o;
> >> }
> >>
> >> return null;
> >>
> >>I used some code I found on the web to output the xml stored in result -
> >>I got the following:
> >>
> >><?xml version="1.0" encoding="UTF-8"?>
> >><array-list>
> >> <greeting-planet
> >>xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> >>xsi:type="java:genbeans.GreetingPlanet">
> >> <planet>Hello</planet>
> >> <greeting>World</greeting>
> >> </greeting-planet>
> >> <greeting-planet>
> >> <planet>Bonjour</planet>
> >> <greeting>le monde</greeting>
> >> </greeting-planet>
> >></array-list>
> >>
> >>As you can see - the xsi namespace seems to be specified.
> >>
> >>I am using Castor 1.0M2
> >>
> >>Any help would be much appreciatted.
> >>
> >>Cheers,
> >>
> >>Steve
> >>
> >>
> >>-------------------------------------------------
> >>If you wish to unsubscribe from this list, please
> >>send an empty message to the following address:
> >>
> >>[EMAIL PROTECTED]
> >>-------------------------------------------------
> >>
> >>
> >>
> >>
>
>
> -------------------------------------------------
> If you wish to unsubscribe from this list, please
> send an empty message to the following address:
>
> [EMAIL PROTECTED]
> -------------------------------------------------
>
>