Gerar formato xml em string

Ola galera!

Estou desenvolvendo uma modulo para geração de xml e recupereação do mesmo, estou utilizando as seguintes classes para fazer isso:

Fábrica de Xml


@XmlRegistry
public class ObjectFactory {

	public ObjectFactory(){
	}

	public Pessoa createPessoa() {
		return new Pessoa();
	}
	
	
	public Endereco createEndereco() {
		return new Endereco();
	}
	
	public IndicadorComposicao createIndicador(){
		return new IndicadorComposicao();
	}
	
	
	public IndicadorComposicaoItem createComposicaoGrupoIndicador() {
		return new IndicadorComposicaoItem();
	}
	
}[/code]


Classe que irá ser a tag Pai
[code]

@XmlRootElement
public class IndicadorComposicao {

	
	private String descricao;
	private Long idIndicador;
	
	private Collection<IndicadorComposicaoItem> composicao = new ArrayList<IndicadorComposicaoItem>();
	
	
	
	
	public Collection<IndicadorComposicaoItem> getComposicao() {
		return composicao;
	}

	public void setComposicao(Collection<IndicadorComposicaoItem> lista) {
		this.composicao = lista;
	}

	public String getDescricao() {
		return descricao;
	}

	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}

	public Long getIdIndicador() {
		return idIndicador;
	}

	public void setIdIndicador(Long idIndicador) {
		this.idIndicador = idIndicador;
	}
	
	
	
}
[/code]


Classe que conterá as tags filhas
[code]package com.consist.xml;

import javax.xml.bind.annotation.XmlType;

@XmlType
public class IndicadorComposicaoItem {

	
	private Long idIndicador;
	private double peso;
	
	public Long getIdIndicador() {
		return idIndicador;
	}
	public void setIdIndicador(Long idIndicador) {
		this.idIndicador = idIndicador;
	}
	public double getPeso() {
		return peso;
	}
	public void setPeso(double peso) {
		this.peso = peso;
	}
	
}[/code]


E a classe main para ver se ta funcionando certinho
[code]public class Teste {
	
	public static void main(String teste[]) {
		
		
		Collection<IndicadorComposicaoItem> lista = new ArrayList<IndicadorComposicaoItem>();
		
		IndicadorComposicao indicador = new IndicadorComposicao();
		indicador.setDescricao("Receita");
		indicador.setIdIndicador(new Long(1));
		
		IndicadorComposicaoItem comp = new IndicadorComposicaoItem();
		comp.setIdIndicador(new Long(10));
		comp.setPeso(70);
		
		lista.add(comp);
		 
		IndicadorComposicaoItem comp2 = new IndicadorComposicaoItem();
		comp2.setIdIndicador(new Long(20));
		comp2.setPeso(30);
		
		lista.add(comp2);
		
		
		indicador.setComposicao(lista);
		
		JAXBContext context = null;
		Marshaller marshaller = null;
		
		// Gera o arquivo XML
		try {
			context = JAXBContext.newInstance(com.consist.xml.IndicadorComposicao.class);	
			marshaller = context.createMarshaller();
			marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
			marshaller.marshal(indicador, System.out); // mostra no console como o xml será gerado
			
			File f = new File("src/composicao.xml");
			marshaller.marshal(indicador, new FileOutputStream(f)); // gera o arquivo composica.xml
			
			
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		
		// recupera o arquivo XML
		try {
			Unmarshaller unmarshaller = context.createUnmarshaller();
			Object obj = unmarshaller.unmarshal(new File("src/composicao.xml"));

			IndicadorComposicao ind2 = (IndicadorComposicao)obj;
			System.out.println( ind2.getDescricao() );
			
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

}[/code]


Galera, fuciona certinho, ele mostra no console dessa forma:
[code]<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<indicadorComposicao>
    <composicao>
        <idIndicador>10</idIndicador>
        <peso>70.0</peso>
    </composicao>
    <composicao>
        <idIndicador>20</idIndicador>
        <peso>30.0</peso>
    </composicao>
    <descricao>Receita</descricao>
    <idIndicador>1</idIndicador>
</indicadorComposicao>

Na classe Main eu fiz 2 comentários, o 1º // mostra no console como o xml será geradom, e o 2º // gera o arquivo composica.xml.
O que eu quero é uma maneira que do mesmo jeito que ele mostra no console e cria o arquivo .xml, eu quero fazer com que ele jogue o conteúdo em uma String. É possível? Alguém sabe me dizer? Ou até mesmo jogar para uma variavel do tipo XML.

Desde já agradeço!

Use o java.io.StringWriter como output.

java.io.StringWriter strW = new java.io.StringWriter();
marshaller.marshal(indicador, strW);
String xml = strW.toString();