2016-04-07 18 views
-2

JAXB ile bir Java projesinde çalışıyorum.JAXB Marshall & Unmarshall Java karmaşık Sınıf

Verilerimi JAXB ile işlemek istiyorum ancak bu sınıflarla ilgili bir sorunum var.

Sayfalama ve sıralamadan vazgeçmek için alanlara ne tür etiketler ekleyeyim?

Wrapper.class

@XmlElement(name="database") 
public class Wrapper { 

    private List <Person> persons; 
    private List <Quote> quotes; 

    @XmlElement(name="persons") 
    public List<Person> getPersons(){ 
     return=this.persons; 
    } 

    @XmlElement(name="quotes") 
    public List<Quote> getQuotes(){ 
     return=this.quotes; 
    }  
} 

Person.class

@XmlRootElement(name="person") 
public class Person { 

    private final StringProperty name; 
    private final StringProperty telephone; 
    private final StringProperty mail; 
    private final ObjectProperty<LocalDate> date; 
    //I have problem with this complex field: 
    private final ObjectProperty<List <Job>> jobs; 

    //Constructor getters and setters 
    ... 
} 

Job.class

@XmlRootElement(name="job") 
public class Job { 

    private final StringProperty roleName; 
    private final StringProperty id; 
    //I have problem with this complex field too: 
    private final ObjectProperty<List <Subrole>> subroles; 


    //Constructor getters and setters 
    ... 
} 

Subrole.class

@XmlRootElement(name="subroles") 
public class SubRole { 
    private final StringProperty subRoleName; 
    private final ObjectProperty<List <String>> actions; 

    //really don't know how to treat this 
    private final ObjectProperty<List<List <Activity>>> activities; 

    //Constructor getters and setters 
    ... 
} 

Activity.class

@XmlRootElement(name="activities") 
public class Activity{ 
    private final StringProperty activityName; 
    private final FloatProperty salary; 
    private final FloatProperty hours; 


    //Constructor getters and setters 
    ... 
} 
+3

İlk olarak, yaşadığınız sorun nedir? İkincisi, neden tüm sınıfları root öğesi olarak tanımladınız? Sanırım sadece kişi kök element olmalı. – Raptor

+0

Hızlı yanıt için teşekkürler, hiyerarşik karmaşık nesneyi nasıl yönetebileceğimi bilmiyorum. –

cevap

0

bu konu hakkında bilgi eksikliğini varsa ve Eclipse kullanıyorsanız, sana (Şunları yapabilirsiniz sınıf hiyerarşisi göre kendi XSD (XML Şema Tanımı) dosyası oluşturarak tavsiye edebilir Altova XML Spy'ı deneyin). Bundan sonra, xsd'yi projenize taşıyın ve Eclipse'de otomatik olarak JAXB sınıfları oluşturun (xsd'ye sağ tıklayın ve oluşturma seçeneğini göreceksiniz).

JAXB sınıflarınızı oluşturacaktır, böylece bunları denetleyebilir ve bu tür nesneleri nasıl yöneteceğinizi öğrenebilirsiniz.

+0

Teşekkürler, Şu anda Marshalling ve Unmarshalling için manuel Adaptörler ve sarıcıları uyguluyorum, sonra tekrar deneyeceğim –