2016-06-10 1 views
0

Позволяет иметь следующий класс:JAXB - Должны ли мы связать классы с @XmlSeeAlso, если они являются полями того же класса

@XmlType(name = "TestClass") 
//@XmlSeeAlso({SomeClassOne.class, SomeClassTwo.class}) 
public class TestClass{ 

    @XmlElement 
    private SomeClassOne someClassOne; 

    @XmlElement 
    private SomeClassTwo someClassTwo; 

} 

Я пытаюсь сериализации объекта в XML с помощью контекста и ИАС. Мы имеем следующее заявление

context = JAXBContext.newInstance(TestClass.class); 

Возникает вопрос: Должен ли я описать все обязательные классы TestClass (которые SomeClassOne и SomeClassTwo) в @XmlSeeAlso - @XmlSeeAlso({SomeClassOne.class, SomeClassTwo.class})

+0

Почему вы просто не пишете блок-тест и не проверяете его? – user1516873

ответ

1

JAXB автоматически привязать любой сопоставляются класс содержавшийся класс, используемый для создания экземпляра JAXBContext.

@XmlSeeAlso Используется для привязки подклассов.

Пример из @XmlSeeAlso документации:

@XmlSeeAlso({Dog.class,Cat.class}) 
class Animal {} 
class Dog extends Animal {} 
class Cat extends Animal {} 

Это позволит JAXBContext.newInstance(Animal.class) правильно связать Dog и Cat классы, несмотря на то, что они никогда не используются в Animal классе.

Итак, в вашем примере нет необходимости использовать @XmlSeeAlso для привязки классов SomeClassOne и SomeClassTwo.

Смежные вопросы