Olá pessoal,
Fiz uma classe de teste e ao gerar o arquivo xml, o arquivo é iniciado com a tag , teria uma outra forma de gravar o arquivo xml sem essa tag, somente com a representação do objeto.
@XStreamAlias(value="produto")
public class Produto {
@XStreamAlias(value="CodigoExternoFornecedor")
private String codigoFornecedor;
@XStreamAlias(value="CodigoExternoProduto")
private String codigoProduto;
@XStreamAlias(value="Nome")
private String nome;
@XStreamAlias(value="Peso")
private Double peso;
@XStreamAlias(value="UnidadePesoId")
private Integer unidadePeso;
@XStreamAlias(value="UnidadeVenda")
private Integer unidadeVenda;
@XStreamAlias(value="movimento")
public class Movimento {
@XStreamAlias(value="dataGeracao")
private Date data;
@XStreamImplicit(itemFieldName="produto")
private List<Produto> produtos;
public class Teste {
public static void main(final String[] args) throws IOException {
Date data = new Date();
Movimento movimento = new Movimento();
movimento.setData(data);
Produto produto1 = new Produto();
produto1.setCodigoFornecedor("forn-a1");
produto1.setCodigoProduto("prod-a1");
produto1.setNome("Amarildo Borges");
produto1.setPeso(1.236);
produto1.setUnidadePeso(1);
produto1.setUnidadeVenda(1);
Produto produto2 = new Produto();
produto2.setCodigoFornecedor("forn-a2");
produto2.setCodigoProduto("prod-a2");
produto2.setNome("João Pires");
produto2.setPeso(0.325);
produto2.setUnidadePeso(2);
produto2.setUnidadeVenda(2);
Produto produto3 = new Produto();
produto3.setCodigoFornecedor("forn-a3");
produto3.setCodigoProduto("prod-a3");
produto3.setNome("Mariovania");
produto3.setPeso(5.621);
produto3.setUnidadePeso(3);
produto3.setUnidadeVenda(3);
List<Produto> produtos = new ArrayList<Produto>();
produtos.add(produto1);
produtos.add(produto2);
produtos.add(produto3);
movimento.setProdutos(produtos);
XStream xstream = new XStream(new DomDriver());
xstream.processAnnotations(Movimento.class);
xstream.processAnnotations(Produto.class);
Writer writer = new FileWriter("teste.xml");
ObjectOutputStream out = xstream.createObjectOutputStream(writer);
out.writeObject(movimento);
out.close();
}
}
<object-stream>
<movimento>
<dataGeracao>2011-08-11 12:43:18.562 UTC</dataGeracao>
<produto>
<CodigoExternoFornecedor>forn-a1</CodigoExternoFornecedor>
<CodigoExternoProduto>prod-a1</CodigoExternoProduto>
<Nome>Amarildo Borges</Nome>
<Peso>1.236</Peso>
<UnidadePesoId>1</UnidadePesoId>
<UnidadeVenda>1</UnidadeVenda>
</produto>
<produto>
<CodigoExternoFornecedor>forn-a2</CodigoExternoFornecedor>
<CodigoExternoProduto>prod-a2</CodigoExternoProduto>
<Nome>Joao Pires</Nome>
<Peso>0.325</Peso>
<UnidadePesoId>2</UnidadePesoId>
<UnidadeVenda>2</UnidadeVenda>
</produto>
<produto>
<CodigoExternoFornecedor>forn-a3</CodigoExternoFornecedor>
<CodigoExternoProduto>prod-a3</CodigoExternoProduto>
<Nome>Mariovania</Nome>
<Peso>5.621</Peso>
<UnidadePesoId>3</UnidadePesoId>
<UnidadeVenda>3</UnidadeVenda>
</produto>
</movimento>
</object-stream>