# XML to file geht nicht :(



## KenshinX (12. Jan 2006)

HI!
Ich möchte gern meine Klasse (classes) in eine xml datei schreiben.
Hier mein Code, vielleicht findet ihr ja einen Fehler, bei mir schreibt er nur die ersten 4 zeilen in die xml datei.. folgende:

  <?xml version="1.0" encoding="UTF-8" ?> 
- <java version="1.5.0_01" class="java.beans.XMLDecoder">
  <object class="java.util.HashSet" /> 
  </java>


Es geht jetzt nur um den Part, wo steht
case PERSISTENCE_SERIALIZE_XML:

this.transitiveClosure() gibt ein HashSet mit dem inhalt der kompletten klassen zurück, da classes noch unterclassn wie Person, Schüler, Lehrer und Direktor hat

EDIT: ich bekomm auch folgend meldung vom compiler...
java.lang.InstantiationException: klassenset.person
Continuing ...
java.lang.Exception: XMLEncoder: discarding statement HashSet.add(person);
Continuing ...
java.lang.InstantiationException: klassenset.schueler
Continuing ...
java.lang.Exception: XMLEncoder: discarding statement HashSet.add(schueler);
Continuing ...
java.lang.InstantiationException: klassenset.schueler
Continuing ...
java.lang.Exception: XMLEncoder: discarding statement HashSet.add(schueler);
Continuing ...
java.lang.InstantiationException: klassenset.direktor
Continuing ...
java.lang.Exception: XMLEncoder: discarding statement HashSet.add(direktor);
Continuing ...
java.lang.InstantiationException: klassenset.lehrer
Continuing ...
java.lang.Exception: XMLEncoder: discarding statement HashSet.add(lehrer);
Continuing ...
java.lang.InstantiationException: klassenset.lehrer
Continuing ...
java.lang.Exception: XMLEncoder: discarding statement HashSet.add(lehrer);
Continuing ...
java.lang.InstantiationException: klassenset.person
Continuing ...
java.lang.Exception: XMLEncoder: discarding statement HashSet.add(person);
Continuing ...

code:



```
/* writes data to a file */
    public boolean write(String filename) throws IOException{
    boolean success = true;
      switch (pt){
          case PERSISTENCE_SERIALIZE:
            try{
              FileOutputStream file = new FileOutputStream(filename);
              ObjectOutputStream o = new ObjectOutputStream(file);
              o.writeObject(this.transitiveClosure());
              o.close();
            } catch(IOException e) {
              success = false;
              System.err.println(e);
            }

            break;
          case PERSISTENCE_SERIALIZE_XML:
              try{
                FileOutputStream filex = new FileOutputStream(filename);
                XMLEncoder o = new XMLEncoder(filex);
                o.writeObject(this.transitiveClosure());
                o.close();
              } catch (IOException e) {
                  success = false;
                  System.err.println(e);
              }
            break;
        }
    return success;
}
```


----------



## Bleiglanz (12. Jan 2006)

können lehrer schüler und dergleichen auch als XML Serialisiert werden? sind das korrekte Beans? public Default Konstruktor??


----------



## KenshinX (12. Jan 2006)

getter und setter methoden hab ich für alle variablen in den einzelnen klassen (person, schueler, lehrer, direktor)

auch standard default constructor hab ich jetzt gemacht, jetzt schreibt er folgendes raus in die file: allerdings OHNE exception oder weiteres

  <?xml version="1.0" encoding="UTF-8" ?> 
- <java version="1.5.0_01" class="java.beans.XMLDecoder">
- <object class="java.util.HashSet">
- <void method="add">
  <object class="klassenset.person" /> 
  </void>
- <void method="add">
  <object class="klassenset.schueler" /> 
  </void>
- <void method="add">
  <object class="klassenset.schueler" /> 
  </void>
- <void method="add">
  <object class="klassenset.direktor" /> 
  </void>
- <void method="add">
  <object class="klassenset.lehrer" /> 
  </void>
- <void method="add">
  <object class="klassenset.lehrer" /> 
  </void>
- <void method="add">
  <object class="klassenset.person" /> 
  </void>
  </object>
  </java>


----------



## KenshinX (12. Jan 2006)

OK bin draufgekommen, hatte nur was vergessen 
danke ^^


----------



## Guest (23. Nov 2006)

KenshinX hat gesagt.:
			
		

> OK bin draufgekommen, hatte nur was vergessen
> danke ^^



Was das ist wäre für die Mitleser auch immer sehr hilfreich


----------

