# xml-Datei mit Attributen einlesen



## heraklit (4. Jul 2009)

Hallo,

ich möchte Werte, die in einer XML-Datei gespeichert sind in ein Java-Programm einlesen. Die XML-Datei besitzt folgende (vereinfachte) Form:

[XML]
<?xml version="1.0" encoding="UTF-8"?>
<DocumentRoot>
<MetaData version="2.0">
    <WorkspaceMetaData id="583c10bfdbd326ba">
      <DocumentProperties creationDate="2009-06-27" id="0" readOnly="false"/>
    </WorkspaceMetaData>
</MetaData>
</DocumentRoot>
[/XML]

Bisher habe ich mich nur ein wenig mit XML-Beans beschäftigt. Daher habe ich wenig Ahnung bzgl. XML und Java. Ich möchte die XML-Struktur in ein Java-Programm einlesen und auf die zugehörigen Werte (z.B. creationDate, id, ...) zugreifen können. In XML-Beans weiß ich nicht, wie das einlesen dieser Werte aus den XML-Tags heraus möglich ist. Hier war der einzulesende Inhalt von XML-Bezeichnern umgeben (z.B. <Tag>value</Tag>). Jedoch ist hier der Wert im Tag direkt abgelegt. 
Ist XML-Beans das richtige Tool für diese Aufgabe?
Wie sieht das XSD-Schema hierfür aus?
Wie kann ich im Java-Programm auf die eingelesenen Werte zugreifen?

Danke!


----------



## JohannisderKaeufer (5. Jul 2009)

Wie das Schema aussieht, solltest du eigentlich am besten wissen.

Um XML zu verarbeiten gibt es grundsätzlich 2 Wege.
1. per Sax
2. per Dom

beides sollte hinreichend beschrieben sein.

Wenn der Tag im Element abgelegt ist, dann nennt sich der Wert Attribut.

Wie man mit obengenannten Techniken auf Attribute zugreift ist auch hinreichend beschrieben.

Desweiteren ist es auch möglich mit JaxB zu arbeiten.

Hierfür empfiehlt es sich das geeignete Schema zu nehmen und sich daraus Klassen zu generieren die der Struktur des Schemas entsprechen.

JaxB übernimmt dann das erstellen der jeweiligen Instanzen, bzw. das Abspeichern von Instanzen in ein XML.(marshalling und unmarschalling)

Alternativ zu JaxB könnte man auch EMF, Castor oder Hibernate verwenden.


----------



## heraklit (5. Jul 2009)

Hallo, 

natürlich ist alles "irgendwo" beschrieben. Wie du merkst, habe ich noch nie XML in Verbindung mit Java verwendet. Daher nützt es nichts, wenn du mir alle möglichen Techniken um die Ohren wirfst.
Zurück zur Frage:
Ist es empfehlenswert XML-Beans zu verwenden, falls man vorwiegend Attributwerte aus dem XML-File extrahieren möchte (z.B. version="2.0", id="0", etc.). 
Wie muss die XSD-Datei in diesem Fall aussehen? Wie kann man auf die Attribut-Werte aus Java heraus zugreifen? 

Gruß


----------



## oldshoe (7. Jul 2009)

ich würde jdom benutzen, weil ich keine ahnung von XML-Beans habe...
Die Attribut-Werte kann man dann als Java-Variablen nutzen.
Eine gute deutsche Anleitung mit Beispielen findest du hier


----------

