ho i seguenti tipi di xml:Fare JAXB XJC generare una classe involucro per un tipo semplice
<xsd:element name="FaxNumbers" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="FaxNumber" type="FaxNumber" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
Il tipo FaxNumber assomiglia a questo:
<xsd:simpleType name="FaxNumber">
<xsd:restriction base="xsd:string">
<xsd:minLength value="1" />
</xsd:restriction>
</xsd:simpleType>
il codice XML risultante dovrebbe essere qualcosa di simile :
<FaxNumbers>
<FaxNumber>3878374</FaxNumber>
<FaxNumber>387833434</FaxNumber>
<FaxNumber>3878334</FaxNumber>
</FaxNumbers>
Quando si esegue JAXB XJC per generare le classi Java da XSD che genera la seguente classe:
@XmlType(name = "FaxNumbers")
public class FaxNumbers {
/**
* No comment.
*/
@XmlElement(name = "FaxNumber", required = true)
protected List<String> faxNumber = new ArrayList<String>();
}
però vorrei legano FaxNumber alla classe composta in questo modo:
@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;
}
C'è un modo per definire quali vincolanti in JAXB binding XML?
Nota: Purtroppo non ho il controllo su e non posso cambiare il XSD
Purtroppo non mi controllo e non può cambiare il XSD (aggiornerà il post originale). –
quindi temo di essere bloccato con la modifica manuale del file java generato prima di utilizzarlo. Se è possibile per il tuo caso –
La modifica manuale dei file java generati funziona correttamente. Tuttavia, quando l'XSD viene modificato e pre-generi i file, devo eseguire l'aggiornamento manualmente ogni volta. –