# xml -> relationale Datenbank



## chris12 (5. Feb 2006)

Hallo,

ich möchte xml-Daten in eine relationale Datenbank schreiben, also auch die Struktur des xml-Dokuments auf die Datenbank abbilden. ich bin noch recht neu im XML Bereich und habe nicht so den wirklichen Überblick was sich dort alles für Möglichkeiten anbieten. Eine die mir einfällt, ist einen DOM-Tree zu erstellen und die Objekte dann z.B. Hibernate in die Datenbank zu übertragen. Aber es muss doch noch andere Ansätze geben?

würde mich über einige Anregungen freuen,
Chris


----------



## Dukel (6. Feb 2006)

Wie wärs mit einer XML Datenbank?


----------



## Bleiglanz (6. Feb 2006)

es gibt keine gute "allgemeingültige Lösung"

schau dir mal verschiedene XML-Java-Mapper an (JaxMe, XMLBeans, Castor), einige davon können aus einem "einfachen" Schema SQL-Code erzeugen (keine Ahnung wie gut)

wenn alles sehr einfach ist

```
<person name="Sepp" alter="33"/>

wird zu

CREATE TABLE person (name char(30), alter int)
```

im Prinzip muss man - mit Hilfe seiner grauen Zellen - ein Tabellenschema entwerfen, das "passt"


----------



## chris12 (6. Feb 2006)

@Bleiglanz: danke, sowas kommt meine Vorstellugen schon recht nahe. Aber wie bekomme ich nun die Daten in die neu angelegten Tabellen? wird das auch vom Mapper übernommen? oder muß ich das selbst machen?

@Dukel: hast du Erfahrungen mit solchen Datenbanken? ich hab mich mal ein wenig umgeschaut und bin auf eXist gestoßen. Hört sich schon interessant an, werd ich bei Gelegenheit mal ausprobieren bin aber wohl derzeit an eine relationale Datenbank gebunden


----------



## Bleiglanz (7. Feb 2006)

chris12 hat gesagt.:
			
		

> @Bleiglanz: danke, sowas kommt meine Vorstellugen schon recht nahe. Aber wie bekomme ich nun die Daten in die neu angelegten Tabellen? wird das auch vom Mapper übernommen? oder muß ich das selbst machen?



hängt vom Tool ab, würde aber vermuten dass die im Allgemeinen "zu schlecht" sind; normalerweise hat man beim Entwurf einer SQL-Datenbank ganz andere Design-Ziele als bei einem XML-Schema, glaube eigentlich nicht, dass sich das so gut automatisieren lässt

wird man am lieber von Hand erledigen, z.B. zum Einlesen einen SAX - Defaulthandler, der alles aufsammelt und bei jedem endElement mit JDBC eine Zeile einträgt...

für einfache Strukturen könnte sich auch das WebRowSet eignen (seit Java5 im Lieferumfang)


----------



## chris12 (7. Feb 2006)

Bleiglanz hat gesagt.:
			
		

> hängt vom Tool ab, würde aber vermuten dass die im Allgemeinen "zu schlecht" sind; normalerweise hat man beim Entwurf einer SQL-Datenbank ganz andere Design-Ziele als bei einem XML-Schema, glaube eigentlich nicht, dass sich das so gut automatisieren lässt



hm, ich befürchte auch, dass das schwierig wird. aber diese Automatisierung wäre ja genau das was ich bräuchte oder halt selber machen muss  :? 
aber danke erst mal für die Tipps, nun weiß ich in etwa wo ich ansetzen muss.


----------



## Bleiglanz (8. Feb 2006)

http://ws.apache.org/jaxme/

du kannst ja mal probehalber ein XML Schema durch den Compiler jagen und schauen, ob das SQL was taugt


----------

