title: Transfer an instance of a Java class into a xml file
body: <p>I am trying to draw a graph using java, to do this I got all the infos of my graph into an instance of a class in my main program. To draw the graph I need to transfer this infos into a xml file like <a href="http://prefuse.org/doc/manual/introduction/example/socialnet.xml" rel="nofollow">this</a>. 
  My graph is much simpler than the example of the link, my problem is: I have no idea how to transfer my instance of the class to this format. </p>
  
  <p>Below the codes I have (the codes are correct, i just need a way to transfer the atributes of the instance of the class "atividade" to the xml format of the link: </p>
  
  <p>Atividade Class:</p>
  
  <pre><code>/*
   * To change this license header, choose License Headers in Project Properties.
   * To change this template file, choose Tools | Templates
   * and open the template in the editor.
   */
  package trabalho_m3;
  
  import java.util.Arrays;
  
  public class Atividade {
  
      private int idAtividade;
      private String nomeAtividade;
      private float tempoDuracao, tInicioCedo, tTerminoCedo, tTerminoTarde, tInicioTarde, folga;
      private int qtdPredecessores, qtdSucessores;
      private Atividade predecessores[], sucessores[];
      private int cnt_aux1 = 0, cnt_aux2 = 0;
  
      public Atividade(int id, String nome, float duracao, int nPre, int nSuc){
          this.idAtividade = id;
          this.nomeAtividade = nome;
          this.tempoDuracao = duracao;
          this.qtdPredecessores = nPre;
          this.qtdSucessores = nSuc;
          this.predecessores = new Atividade[this.qtdPredecessores];
          this.sucessores = new Atividade[this.qtdSucessores];
      }
  
      /*
      *  Método que calcula o TEMPO DE INÍCIO CEDO(Tes), assim como
      *  o TEMPO DE TÉRMINO CEDO(Tef) das atividades do projeto.
      */
      public void calcular_Tes_Tef(){
  
          // Cálculo do Tempo de Início Cedo da atividade (Tes).
          if(this.qtdPredecessores == 0){
              this.tInicioCedo = 0;
          } else {
              this.tInicioCedo = this.maxTefPredecessores(this.predecessores);
          }
  
          // Cálculo do Tempo de Término Cedo da atividade (Tef).
          this.tTerminoCedo = (this.tInicioCedo + this.tempoDuracao);
      }
  
      /*
      *  Método que calcula o TEMPO DE TÉRMINO TARDE(Tlf), assim como
      *  o TEMPO DE INÍCIO TARDE(Tls) das atividades do projeto.
      */
      public void calcular_Tlf_Tls(){
  
          // Cálculo do Tempo de Término Tarde da atividade (Tlf).
          if(this.qtdSucessores == 0){
              this.tTerminoTarde = this.tTerminoCedo;
          } else {
              this.tTerminoTarde = this.minTlsSucessores(this.sucessores);
          }
  
          // Cálculo do Tempo de Início Tarde da atividade (Tls).
          this.tInicioTarde = (this.tTerminoTarde - this.tempoDuracao);
      }
  
      /*
      * Método calcula a FOLGA(R) das atividades do projeto.
      */
      public void calcular_R(){
  
          // Cálculo da Folga (R).
          this.folga = (this.tTerminoTarde - this.tTerminoCedo);
      }
  
      /*
      *  Método encontra o valor MÁXIMO do Tef entre os predecessores
      *  de uma atividade.
      *  
      *  MAX{Tef(K)}; onde K representa as atividades precedentes. 
      */
      public float maxTefPredecessores(Atividade predecessores[]){
          float maxTef = predecessores[0].tTerminoCedo;
          for(int i = 1; i &lt; predecessores.length; i++){
              if(maxTef &lt; predecessores[i].tTerminoCedo){
                  maxTef = predecessores[i].tTerminoCedo;
              }
          }
          return maxTef;
      }
  
      /*
      *  Método encontra o valor MÍNIMO do Tls entre os sucessores
      *  de uma atividade.
      *  
      *  MIN{Tls(K)}; onde K representa as atividades sucessoras. 
      */
      public float minTlsSucessores(Atividade sucessores[]){
          float minTls = sucessores[0].tInicioTarde;
          for(int i = 1; i &lt; sucessores.length; i++){
              if(sucessores[i].tInicioTarde &lt; minTls){
                  minTls = sucessores[i].tInicioTarde;
              }
          }
          return minTls;
      }
  
      /*
      *  Vincula a uma dada atividade suas precedencias, incluindo
      *  seus precedentes no Array predecessores[]. 
      */
      public void setarAtividadePredecessora(Atividade atividadePre){
          if(cnt_aux1 == this.qtdPredecessores){
              System.out.println("A atividade " + this.nomeAtividade + " nao suporta mais pre-requisitos!");
          } else {
              this.predecessores[this.cnt_aux1] = atividadePre;
              this.cnt_aux1++;
          }
      }
  
      /*
      *  Vincula a uma dada atividade seus sucessores. 
      */
      public void setarAtividadeSucessora(Atividade atividadeSuc){
          if(cnt_aux2 == this.qtdSucessores){
              System.out.println("A atividade " + this.nomeAtividade + " nao suporta mais atividades sucessoras!");
          } else {
              this.sucessores[this.cnt_aux2] = atividadeSuc;
              this.cnt_aux2++;
          }
      }
  
      // Retorna o NOME de uma atividade.
      public String getNome(){
          return this.nomeAtividade;
      }
  
      // Retorna a FOLGA(R) de uma atividade.
      public float getFolga(){
          return this.folga;
      }
  
          public float getPredecessores(){
          return this.qtdPredecessores;
      }
  
          public float getId(){
          return this.idAtividade;
      }
  
           public float getSucessores(){
          return this.qtdSucessores;
      }
  
      /*
      *  Imprime todas as informações de uma atividade:
      *  Id, Nome, Precedencias, Sucessores, t, Tes, Tef, Tlf, Tls, R. 
      */
      public void informacoesAtividade(){
          System.out.println();
          System.out.println("Id: " + this.idAtividade);
          System.out.println("Nome: " + this.nomeAtividade);
  
          if(this.qtdPredecessores == 0){
              System.out.println("Precedencia: --");
          } else {
              System.out.print("Precedencia: ");
              for(int i = 0; i &lt; this.predecessores.length; i++){
                  System.out.print(predecessores[i].nomeAtividade + " ");
              }
              System.out.println();
          }
  
          if(this.qtdSucessores == 0){
              System.out.println("Sucessores: --");
          } else {
              System.out.print("Sucessores: ");
              for(int j = 0; j &lt; this.sucessores.length; j++){
                  System.out.print(sucessores[j].nomeAtividade + " ");
              }
              System.out.println();
          }
  
          System.out.println();
          System.out.println("t: " + this.tempoDuracao);
          System.out.println("Tes: " + this.tInicioCedo);
          System.out.println("Tef: " + this.tTerminoCedo);
          System.out.println("Tlf: " + this.tTerminoTarde);
          System.out.println("Tls: " + this.tInicioTarde);
          System.out.println("R: " + this.folga);
          System.out.println();
      }
  }
  </code></pre>
  
  <p>Main:</p>
  
  <pre><code>package trabalho_m3;
  
  import java.io.IOException;
  import java.util.Scanner;
  
  public class TRABALHO_M3 {
  
     public static void Tes_Tef(Atividade[] Ativ){
          for(int i = 0; i &lt; Ativ.length; i++){
              Ativ[i].calcular_Tes_Tef();
          }
      }
  
  
  
      public static void Tlf_Tls(Atividade[] Ativ){
          for(int i = (Ativ.length - 1); i &gt;= 0; i--){
              Ativ[i].calcular_Tlf_Tls();
          }
      }
  
      public static void R(Atividade[] Ativ){
          for(int i = 0; i &lt; Ativ.length; i++){
              Ativ[i].calcular_R();
          }
      }
  
      public static void atividadeInfo(Atividade[] Ativ){
          for(int i = 0; i &lt; Ativ.length; i++){
              Ativ[i].informacoesAtividade();
          }
      }
  
      public static void caminhoCritico(Atividade[] Ativ){
          System.out.print("Caminho Critico: ");
          for(int i = 0; i &lt; Ativ.length; i++){
              if(Ativ[i].getFolga() == 0.0){
                  System.out.print(Ativ[i].getNome() + " ");
              }
          }
          System.out.println();
      }
  
  
  
      public static void main(String[] args) throws IOException {
         int qtd = 0;
         int aux;
         String rotulo;
         float peso;
         int predecessores, sucessores;
         Scanner s = new Scanner(System.in);
         System.out.println("Informe a quantidade de atividades: ");
         qtd = s.nextInt();
         Atividade atividades[] = new Atividade[qtd];
         for (int i = 0; i &lt;  qtd; i++){
             System.out.println("Informe o rótulo da atividade["+(i+1)+"]: ");
             rotulo = s.next();
             System.out.println("Informe a duracao da atividade["+(i+1)+"]: ");
             peso = s.nextFloat();
             System.out.println("Informe a quantidade de predecessores da atividade["+(i+1)+"]: ");
             predecessores = s.nextInt();
             System.out.println("Informe a quantidade de sucessores da atividade["+(i+1)+"]: ");
             sucessores = s.nextInt();
             atividades[i] = new Atividade(i,rotulo,peso,predecessores,sucessores);
             System.out.println("Pressione Enter para continuar..."); 
             System.in.read();
         }
  
          for (int i = 0; i &lt;  qtd; i++){
              for (int b = 0; b &lt;  qtd; b++){
                  System.out.println("Atividade "+atividades[b].getNome()+" - ID = "+atividades[b].getId());
              }
              System.out.println("Pressione Enter para continuar..."); 
              System.in.read();
              if (atividades[i].getPredecessores() &gt; 0 ) {
                  System.out.println("Atividades Predecessoras de "+atividades[i].getNome());    
                  for (int k=0; k&lt;atividades[i].getPredecessores(); k++){
                             System.out.println("Informe o ID da atividade predecessora de numero "+(k+1)+" ...");
                             aux = s.nextInt();
                             atividades[i].setarAtividadePredecessora(atividades[aux]);
                             System.out.println("Pressione Enter para continuar..."); 
                             System.in.read();
                             Runtime.getRuntime().exec("clear");
                      }   
              } else {
                      System.out.println("A atividade ["+atividades[i].getNome()+"] não possui predecessores");
                      System.out.println("Pressione Enter para continuar..."); 
                      System.in.read();
              }
              for (int b = 0; b &lt;  qtd; b++){
                  System.out.println("Atividade "+atividades[b].getNome()+" - ID = "+atividades[b].getId());
              }
              System.out.println("Pressione Enter para continuar..."); 
              System.in.read();
              if (atividades[i].getSucessores() &gt; 0 ) {
                      System.out.println("Atividades Sucessoras de "+atividades[i].getNome());
                      for (int k=0; k&lt;atividades[i].getSucessores(); k++){
                             System.out.println("Informe o id da atividade sucessora de numero "+(k+1)+" ...");
                             aux = s.nextInt();
                             atividades[i].setarAtividadeSucessora(atividades[aux]);
                             System.out.println("Pressione Enter para continuar..."); 
                             System.in.read();
                      }   
              } else {
                      System.out.println("A atividade ["+atividades[i].getNome()+"] não possui sucessores");
                      System.out.println("Pressione Enter para continuar..."); 
                      System.in.read();
              }
          }
      Tes_Tef(atividades);
      Tlf_Tls(atividades);    
      atividadeInfo(atividades);
      R(atividades);
      caminhoCritico(atividades);
      }  
  }
  </code></pre>
  
  <p>OBS .: I need to transfer to a xml file because the lib i am going to use to draw the graph needs it. I am going to use the prefuse lib.</p>