Witam,
w swoim programie używam jaxb, ale niestety nie mam z nim za wiele doświadczenia. Oto fragment pliku XSD
<xsd:complexType name="Clusters">
<xsd:sequence>
<xsd:element name="cluster" type="Cluster" minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:appinfo>
<jxb:property name="clusters" />
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="dimensions" type="xsd:positiveInteger" use="required">
</xsd:attribute>
</xsd:complexType>
<xsd:complexType name="Cluster">
<xsd:sequence>
<xsd:element name="point" type="Point" minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:appinfo>
<jxb:property name="points" />
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="number" type="xsd:nonNegativeInteger" use="required">
</xsd:attribute>
</xsd:complexType>
Fragmenty wygenerowanych klas wyglądają następująco:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Clusters", propOrder = { "clusters" })
public class Clusters
{
@XmlElement(name = "cluster")
protected List<Cluster> clusters;
@XmlAttribute(required = true)
@XmlJavaTypeAdapter(IntegerAdapter.class)
@XmlSchemaType(name = "positiveInteger")
protected Integer dimensions;
...
@XmlAccessorType(XmlAccessType.NONE)
@XmlType(name = "Cluster", propOrder = { "points" })
public class Cluster
{
@XmlElement(name = "point")
protected List<Point> points;
@XmlAttribute(required = true)
@XmlJavaTypeAdapter(IntegerAdapter.class)
@XmlSchemaType(name = "nonNegativeInteger")
protected Integer number;
Jak widać klasa Clusters posiada pole dimensions oraz listę obiektów klasy Cluster. Chciałbym w wygenerowanej już klasie Cluster również dodać pole dimensions i chce żeby było ono inicjalizowane wartością z obiektu klasy Clusters, gdy lista obiektów klasy Cluster jest zapełniana w trakcie unmarchall'owania. Nie wiem w jaki sposób przeciążyć metodę dodawania elementu do tej listy. Mam nadzieję że wyraziłem się jasno...
Z góry dziękuję za odpowiedź!
</i>