i've set up some tests using the source provided but i'm afraid to say that i don't seem to be able to reproduce your problem.
i suspect that your using some .betwixt files and maybe there's a problem somewhere there.
could you either post you .betwixt files or (even better) a unit test that i can run and demonstrates the problem.
- robert
On 27 Jan 2004, at 16:04, [EMAIL PROTECTED] wrote:
I seems to have different result when i map an object-to-xml using an object instance as compared to that of an interface.
The scenario is as such:
I have a Person class which implements an interface PersonIntf and when this object is mapped into xml using the Person instance, i have the following result
<person age="21" name="John Smith">
<address street1="Street1" postalcode="12345"/>
</person>
but when i used the same Person object instance but now using the PersonIntf via the XMLInspector.setClassNormalizer() i have the following result - the <address> element info are all missing
<person age="21" name="John Smith">
<address street1="" postalcode=""/> <!-- street1 & postalcode not being mapped -->
</person>
Did i missed something here? I suspect that the XMLIntrospector did not include the super interface of PersonIntf => AddressIntf, am i right?
I have all my classes listed below, i am using the nightly build downloaded last night.
Any help will be greatly appreciated. Thanks in advance
===Address Interface Class === public interface AddressIntf { public String getStreet1(); public int getPostalcode(); public void setStreet1(String st); public void setPostalcode(int pc);
//convenience method public void setAddress(String st, int pc);
}
===Person Interface Class=== public interface PersonIntf extends AddressIntf{ public String getName(); public int getAge(); public void setName(String name); public void setAge(int age);
//derive attr public AddressIntf getAddress(); }
===Person Class=== public class Person implements PersonIntf { private String name; private int age; private Address address;
public Person() {address = new Address();}
public Person(String name, int age) { this(name, age, null, 0); }
public Person(String name, int age, String street1, int postalcode){
this.name = name;
this.age = age;
this.address = new Address(street1, postalcode);
}
public String getName() { return name;} public void setName(String name) {this.name = name;}
public int getAge() {return age;} public void setAge(int age) {this.age = age;}
public AddressIntf getAddress() {return address;}
public void setAddress(Address address) {this.address=address;}
public void setAddress(String st, int pc) {address.setAddress(st, pc);}
public String getStreet1(){ return address.getStreet1();} public void setStreet1(String st){ address.setStreet1(st);}
public int getPostalcode(){ return address.getPostalcode();} public void setPostalcode(int pc){address.setPostalcode(pc);}
public String toString() {return "PersonBean[name='" + name + "',age='" + age + ", address[" + address +"']";}
private class Address implements AddressIntf { private String street1; private int postalcode;
/** Creates a new instance of Name */ public Address() {}
public Address(String street1, int postalcode){ this.street1=street1; this.postalcode=postalcode; }
public String getStreet1() {return street1;}
public void setStreet1(String street1) {this.street1 = street1;}
public int getPostalcode() {return postalcode;}
public void setPostalcode(int postalcode) {this.postalcode = postalcode;}
public void setAddress(String street1, int postalcode){ this.street1=street1; this.postalcode=postalcode; }
public String toString(){return "street1="+street1+", postalcode="+postalcode;}
} }
__________________________________________________________________ New! Unlimited Netscape Internet Service. Only $9.95 a month -- Sign up today at http://isp.netscape.com/register Act now to get a personalized email address!
Netscape. Just the Net You Need.
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
