tengo los siguientes tipos XML:Haga JAXB XJC generar una clase envoltorio para un tipo simple
<xsd:element name="FaxNumbers" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="FaxNumber" type="FaxNumber" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
El tipo FaxNumber se ve así:
<xsd:simpleType name="FaxNumber">
<xsd:restriction base="xsd:string">
<xsd:minLength value="1" />
</xsd:restriction>
</xsd:simpleType>
el XML resultante debe ser algo como esto :
<FaxNumbers>
<FaxNumber>3878374</FaxNumber>
<FaxNumber>387833434</FaxNumber>
<FaxNumber>3878334</FaxNumber>
</FaxNumbers>
Al ejecutar JAXB XJC para generar clases de java desde XSD genera la siguiente clase:
@XmlType(name = "FaxNumbers")
public class FaxNumbers {
/**
* No comment.
*/
@XmlElement(name = "FaxNumber", required = true)
protected List<String> faxNumber = new ArrayList<String>();
}
sin embargo me gustaría unen FaxNumber a clase compuesta así:
@XmlType(name = "FaxNumbers")
public class FaxNumbers {
/**
* No comment.
*/
@XmlElement(name = "FaxNumber", required = true)
protected List<FaxNumber> faxNumber = new ArrayList<String>();
}
Where FaxNumber class looks like this:
public class FaxNumber{
@XmlValue
private String value;
}
¿Hay una manera de definir tales vinculante en JAXB fijaciones xml?
Nota: Por desgracia no tengo control sobre y no puedo cambiar el XSD
Por desgracia, no controlan y no se puede cambiar el XSD (se actualizará el post original). –
entonces me temo que está atascado con la modificación manual del archivo java generado antes de usarlo. Si es posible para su caso –
Edición manual de los archivos Java generados funciona bien. Sin embargo, cuando se cambia el XSD y pregenero los archivos, tengo que hacer la actualización de forma manual todo el tiempo. –