mam następujące typy XML:Bądź JAXB XJC wygenerować klasę owijania prostego typu
<xsd:element name="FaxNumbers" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="FaxNumber" type="FaxNumber" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
Typ FaxNumber wygląda następująco:
<xsd:simpleType name="FaxNumber">
<xsd:restriction base="xsd:string">
<xsd:minLength value="1" />
</xsd:restriction>
</xsd:simpleType>
Powstały xml powinno być coś takiego :
<FaxNumbers>
<FaxNumber>3878374</FaxNumber>
<FaxNumber>387833434</FaxNumber>
<FaxNumber>3878334</FaxNumber>
</FaxNumbers>
Podczas uruchamiania JAXB XJC do generowania klas java z XSD generuje następującą klasę:
@XmlType(name = "FaxNumbers")
public class FaxNumbers {
/**
* No comment.
*/
@XmlElement(name = "FaxNumber", required = true)
protected List<String> faxNumber = new ArrayList<String>();
}
Jednak chciałbym powiązania FaxNumber do klasy kompozytowego takiego:
@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;
}
Czy istnieje sposób, aby określić takie wiąże w JAXB wiązaniami xml?
Uwaga: Niestety nie mam kontroli nad i nie można zmienić XSD
Niestety nie kontroluje i nie może zmienić XSD (zaktualizuje oryginalny post). –
obawiam się, że utknąłeś z ręczną modyfikacją wygenerowanego pliku Java, zanim go użyjesz. Jeśli jest to możliwe w twoim przypadku –
Ręczne edytowanie wygenerowanych plików java działa poprawnie. Jednak po zmianie XSD i wstępnym generowaniu plików muszę ręcznie aktualizować za każdym razem. –