Вы можете собрать один экземпляр, верно?
MyClass myClass1 = new MyClass();
myClass1.setField("value");
JAXB.marshal(myClass1, writer);
Но я предполагаю, что вы пытаетесь составить список?Что-то вроде
List<MyClass> list = new ArrayList<MyClass>();
list.add(myClass1);
JAXBContext.newInstance(ArrayList.class).createMarshaller().marshal(list, writer);
Если вы хотите упорядочить список в одном XML-документе, вам нужен класс-оболочка:
@XmlRootElement(name="root")
@XmlAccessorType( XmlAccessType.FIELD )
public class MyWrapper {
@XmlElement(name="child")
private List<MyClass> list = new ArrayList<MyClass>();
public List<MyClass> getList() {
return list;
}
...
Тогда он должен работать, например:
MyClass myClass1 = new MyClass();
myClass1.setField("value");
MyWrapper wrapper = new MyWrapper();
wrapper.getList().add(myClass1);
JAXB.marshal(wrapper, writer);
Результаты в
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<root>
<child>
<field>value</field>
</child>
</root>