package com.fasterxml.jackson.dataformat.xml.ser; import java.io.StringWriter; import java.util.ArrayList; import javax.xml.namespace.QName; import com.fasterxml.jackson.dataformat.xml.XmlMapper; import com.fasterxml.jackson.dataformat.xml.XmlTestBase; import com.fasterxml.jackson.dataformat.xml.ser.ToXmlGenerator; public class TestSerializationManual extends XmlTestBase { public static class Value { public int num; public Value(int n) { num = n; } } /* /********************************************************** /* Unit tests /********************************************************** */ public void testIssue54() throws Exception { XmlMapper xmlMapper = new XmlMapper(); xmlMapper.enable(ToXmlGenerator.Feature.WRITE_XML_DECLARATION); StringWriter sw = new StringWriter(); ToXmlGenerator generator = (ToXmlGenerator) xmlMapper.getFactory().createGenerator(sw); generator.initGenerator(); generator.setNextName(new QName("items")); generator.writeStartObject(); ArrayList<Value> values = new ArrayList<Value>(); values.add(new Value(13)); values.add(new Value(456)); for (Value value : values) { generator.writeFieldName("foo"); generator.setNextName(new QName("item")); generator.writeObject(value); } generator.writeEndObject(); generator.close(); String xml = sw.toString(); // Remove XML declaration assertTrue(xml.startsWith("<?xml version")); int ix = xml.indexOf("?>"); xml = xml.substring(ix+2).trim(); assertEquals("<items><item><num>13</num></item><item><num>456</num></item></items>", xml); } }