# Atom/RSS-Feed lesen - per XSD zu Java-Code



## Q-Base (24. Mrz 2011)

Hallo *, 

ich würde gerne auf einfache Art auf Atom/RSS-Feed zugreifen können. Also einfach herunterladen und dann parsen lassen und schließlich objektorientiert auf die einzelnen Instanzen zugreifen. 

Ich habe mir nun extra eine XSD gesucht, die nach der RFC verfasst ist und habe mir den Code per XJC. Der Code der da rausfiel war aber nicht besser als das, was ich gemacht hätte, wenn ich mit SAX oder JDOM oder was-auch-immer, durch das XML gegangen wäre. 

Kennt jemand von euch nun eine Bibliothek / Methode, mit der ich aus einer XSD Java-Klassen erzeugen kann, die nun auch wenigstens so aussehen, als hätte man die Klassen selbst erstellt? 

Ciao, Q


----------



## musiKk (24. Mrz 2011)

Q-Base hat gesagt.:


> Ich habe mir nun extra eine XSD gesucht, die nach der RFC verfasst ist und habe mir den Code per XJC. Der Code der da rausfiel war aber nicht besser als das, was ich gemacht hätte, wenn ich mit SAX oder JDOM oder was-auch-immer, durch das XML gegangen wäre.



Kannst Du darauf genauer eingehen? XJC erzeugt Klassen, die JAXB verwenden, das hat mit SAX oder JDOM gar nichts zu tun.


----------



## Wildcard (24. Mrz 2011)

Q-Base hat gesagt.:


> Kennt jemand von euch nun eine Bibliothek / Methode, mit der ich aus einer XSD Java-Klassen erzeugen kann, die nun auch wenigstens so aussehen, als hätte man die Klassen selbst erstellt?


Nicht nur das, mit EMF sind sie (davon bin ich überzeugt) besser als du sie schreiben könntest.
http://www.eclipse.org/modeling/emf/


----------



## Q-Base (28. Mrz 2011)

Hallo ihr beiden, 

vielen Dank für eure Antwort. Nun wird mir auch ein bisschen klarer, was ich suche. 

Nehmen wir mal die XSD hier und ein Beispiel Atom-Feed hier. Wenn man das Datenmodell von diesem Beispiel ableiten würde, dann würde man sicherlich sowas schreiben wie das Listing unten, passende Setter/Getter dazu denken. Ich lasse mal sowas wie abstrakte Klassen, von denen man erbt. 

```
class Feed {
    String title;
    String author;
    String id;
    Collection<Entry> entries;
    ...
 }
 class Entry {
   String title;
   URL link;
   String id;
   Date published;
   Date updated;
 }
```

Wenn ich mir mittels XJC allerdings Code generieren lasse, dann sieht das ganz anders aus. Gerade was die Getter angeht. 

Nutze ich dann den falschen Code-Generator? Gibt es da vielleicht einen "besseren"? 

Ciao, Q-Base


----------



## Wildcard (28. Mrz 2011)

Wenn du den Code mit EMF generieren lässt, dann sehen die Interfaces auch ziemlich genau so aus (Date und URL musst du unter umständen im Ecore als EDatatype anlegen wenn du damit die Java Klassen meinst).
Die Implementierungen haben dann noch ein paar Dinge mehr, weil EMF viel mehr kann als vergleichbare Tools (EMF Reflection, Observer Schnittstelle, Validierung, Containment und Opposite Beziehungen,...).


----------

