<!-- for brevity. Its in namepace with prefix xsdb -->
<complexType name="person">
<xs:element name="HomeAddress" type='xsda:AddressType'/>
</complexType>
}
When i generate code this happens
{
class person
{
@XmlElement(name = "homeAddress", required = true)
protected xsdb.AddressType homeAddress;
}
}
but we want
class person
{
@XmlElement(name = "HomeAddress", required = true)
protected xsda.AddressType HomeAddress;
}
Just reference the class generated in common xsd and if possible even the object factory should reference xsd a object factory so it create AddressType class again.
like
public xsda.AddressType createAddressType() {
return new AddressType();
}
instead of
public xsdb.AddressType createAddressType() {
return new AddressType();
}
We just need reference and we arent essentially inheriting(extending the base.).I tried with inheritance plugin and could'nt achieve it. [please correct the mistakes if any]
<jaxb:bindings schemaLocation="file:/F:/xsdb.xsd" node="/xsd:schema">
<jaxb:schemaBindings>
<jaxb:package name="inheritedpackage" /> <!- is it correct-->
</jaxb:schemaBindings>
<inheritancebjectFactory packageName="commonpackage" />
<jaxb:bindings node="//xsd:element[@name='homeAddress']">
</class>
<!-- --- why is there empty class??saw it in examples -->
<inheritance:implement>a.AddressType</inheritance:implement>
</jaxb:bindings>
</jaxb:bindings>
i also worked on inheritance with child class adding nothing to base something like
in child xsd:
<complextype name='homeaddress'>
<complexcontent>
<xsd:extension base="xsda:Addresstype" />
<!-- inheriting and not adding to base class -->
</complexcontent>
</complextype>
That too didnt work.Got compilation errors
Please let me know how it can be done.Thanks for the patience and effort.Much appreciated.
--Santhosh
subject: How to avoid code duplication and reference code generated in another schema while code generation