Есть ли свойство для настройки JAXB для этого ?
Исправлено ли это в MOXy?
В настоящее время я просматриваю объект, который необходимо маршалировать, и извлекаю все классы, которые необходимо связать с Class[] classToBeBound.
Затем я создаю новый JAXBContext.newInstance(classesToBeBound)
Неиспользуемые пространства имен теперь не включаются в XML.
Я знаю, что проверка XML действительна даже для неиспользуемых пространств имен, но, по моему мнению, с этим должна справиться инфраструктура.
Следующая ссылка https://blogs.oracle. com/enterprisetechtips/entry/customizing_jaxb упоминает различные исправления (см. где-то в середине текста), но при попытке найти решение по этим ссылкам либо ссылка не работает, либо никто ее не решил.
Любые комментарии приветствуются.
(EDIT)
Обычный текст:
ПРЕДОСТАВЛЕНО
Код: Выделить всё
a new instance of JAXBContext and add 2 classes with each a separate namespace.
Код: Выделить всё
marshalling a class that has these 2 classes as a property but only 1 of them is not null
Код: Выделить всё
I expect only the namespace of the property that is not null to be visible in the XML.
Код: Выделить всё
that both namespaces are in the xml.
Чтобы поместить это в java-код:
ДАН
Код: Выделить всё
public class Foo{
private Bar bar; //namespace something2
private User user; //namespace user
}
Код: Выделить всё
JAXBContext c = JAXBContext.newInstance(Foo.class, Bar.class, User.class);
...
Foo foo = new Foo();
foo.setBar(null);
foo.setUser(new User("Bob"));
marshaller.umarshal(foo);
Код: Выделить всё
Bob
Код: Выделить всё
Bob
Подробнее здесь: https://stackoverflow.com/questions/229 ... arshalling