# Properties lesen via XML



## takidoso (3. April 2006)

Hallo und Halli,
meine Frage richtiet sich vor allem an die Entwickler, die sich intensiver mit XML beschäftigt haben. Es gibt viele XML-Technologien vor allem auch in Java. welche dieser würdet Ihr einsetzen für eine Datei die ähnlich wie Property-Dateien für die Parametrisierung einer Anwendung genutzt werden soll, und aus welchen Gründen habt Ihr Euch für diese entschieden. Welche Technologien sind aus Eurer Sicht weniger geeignet für diese relativ simple Anwendungssituation, weil vielleicht zu überfrachtet oder zu kompliziert oder zu propriatär.

Takidoso


----------



## Thomas Darimont (3. April 2006)

Hallo!

Du koenntest dir natuerlich selbst einen XML basierten Konfigurationsmechanismus bauen. Die einfachste Moeglichkeit waere beispielsweise die storeToXML Methode von Properties zu verwenden:


```
/**
 * 
 */
package de.tutorials;

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.Properties;

public class XMLBasedProperties {
    public static void main(String[] args) throws Exception{
        Properties properties = new Properties();
        properties.put("a.b.c","50");
        properties.put("foo.bar","de.tutorials.XMLBasedProperties.class");
        properties.storeToXML(new FileOutputStream("properties.xml"),"Some comment");
        
        properties.clear();
        properties.loadFromXML(new FileInputStream("properties.xml"));
        System.out.println(properties);
    }
}
```

Produziert:

```
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>Some comment</comment>
<entry key="a.b.c">50</entry>
<entry key="foo.bar">de.tutorials.XMLBasedProperties.class</entry>
</properties>
```

Nachteil bei dieser Geschichte ist der, dass man die vorgegebene Struktur des XML Dokuments gebunden ist...

Ansonsten bieten sich noch zahlreiche weitere Moeglichkeiten:
- Eigener XML Konfigurationsmechanismus basierend auf einem DOM, SAX oder StAX Parser.
- JAXB (Java API for XML Binding)
- Den schicken Konfigurationsmechnismus des Springframeworks
-etc..

Gruss Tom


----------



## wakoz (14. November 2009)

Habe gerade Diesen alten Thread gefunden. Ich habe gelesen das man diese hier aufgeführten Properties verketten kann! Aber mir ist nicht klar wie man dann diese Speichert.? Einfache Properties ist klar, aber mit der verkettung? Würden diese die Verkettung nicht lösen wenn man sie speichert?

Ich Würde diese Verkettung gerne mitspeichern und hoffe das es dann so aussehen könnte.
  <?xml version="1.0" encoding="UTF-8" standalone="no" ?> 
  <!DOCTYPE properties (View Source for full doctype...)> 
- <properties version="1.0">
<comment>saved data</comment> 
<subproperties version="1.0">  
  <entry key="Addresse">straße</entry> 
  <entry key="Name">name</entry> 
  <entry key="Ort">Stadt</entry> 
  <entry key="Nachname">Nachname</entry> 
</subproperties>
<subproperties version="1.0">  
  <entry key="Addresse">straße</entry> 
  <entry key="Name">name</entry> 
  <entry key="Ort">Stadt</entry> 
  <entry key="Nachname">Nachname</entry> 
</subproperties>
  </properties>


----------

