Zrobiłem wiele wyszukiwania i nie mogę znaleźć zwięzły przykład, jak odwzorować schemat XML do istniejących obiektów domeny, zamiast tworzyć nowe z wykorzystaniem xjc. Stworzyłem plik powiązań (xjb), ale nadal nie mogę znaleźć sposobu na osiągnięcie tego.Mapowanie xjc JAXB do istniejących obiektów domeny
Jeśli mam istniejącego obiektu domeny, które chcę JAXB używać takich jak:
package com.blah.domain;
class CustomerOffice{
private int id;
private String name;
private String phone;
}
I mam schematu XML jak poniżej:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:www="http://www.blah.com"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.blah.com" elementFormDefault="unqualified">
<xs:element name="Customer">
<xs:complexType>
<xs:sequence>
<xs:element name="id" type="xs:int" nillable="false" minOccurs="1" maxOccurs="1"/>
<xs:element name="name" type="xs:string"/>
<xs:element name="city" type="xs:string"/>
<xs:element name="CustomerOffice" type="www:CustomerOffice" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="CustomerOffice">
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="length" type="xs:int"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
Jeśli pójdę do wygeneruj klasy JAXB z xjc utworzy nową klasę o nazwie Klient (której chcę). Stworzy również nową klasę o nazwie CustomerOffice (której nie chcę, chcę, aby korzystał z mojego istniejącego obiektu domeny).
Więc zamiast schematu wskazując na "typ: www: CustomerOffice" I chciał to wykorzystać istniejącą com.blah.domain.CustomerOffice.
starałem się zrobić to jak prosty przykład, jak to możliwe, każda pomoc jest mile widziana.
Że pracował idealnie! Dziękuję bardzo, mam nadzieję, że pomoże to innym osobom, które z tym walczyły. – colbyjax