Java Problem mit fehlendem XBean-Package

RdogpinK

Newbie
Registriert
Jan. 2009
Beiträge
6
Hiho,
Ich habe folgendes Problem. Ich möchte mit meinem Programm Rechnungen als XML abspeichern können. Dafür verwende ich Apaches XMLBeans (Version 2.4). Klappt auch recht gut, allerdings werden die Arrays nicht eingelesen.
Dazu gefunden hab ich http://xmlbeans.apache.org/documentation/tutorial_getstarted.html , wo beschrieben wird, wie mithilfe des packages "org.openuri.easypo" mein Problem gelöst werden könnte.
Leider finde ich diese Paket nirgendwo. Jetzt hänge ich in der Luft und weiß nicht, wo ich noch suchen soll.
Sind meine Beans zu aktuell? Falls ja, musses es doch eine adäquate Methode geben o0.

Oder hat jemand auch einen anderen Rat, wie ich ein Object-Array mit XMLBeans auslesen kann?
Grüße
 
Das angegebene Package "org.openuri.easypo" dient als Beispiel für ein generiertes Objektmodell. Es wurde aus der XML-Schema-Datei "easypo.xsd" generiert, die auch in dem Beispiel zu finden ist.

Du benötigst also eine Schema-Datei, die dein zu speicherndes Objektmodell beschreibt. Daraus kannst du dir dann auch die Java-Klassen generieren lassen.
Umgekehrt gibt es auch einen Schema-Generator, der dir aus den Java-Klassen eine XSD generiert. Musst du mal nach JAXB und schemagen suchen.

Wenn es nur um das Erzeugen von XML-Daten geht, dann guck dir mal den XMLEncoder an:
http://java.sun.com/j2se/1.5.0/docs/api/java/beans/XMLEncoder.html
 
Vielen dank, ich hab einige grundlegende Fehler gemacht (zb. XMLBeans nicht richtig ins Programm geladen und schlimmeres).
Mit dem XML-Encoder hab ichs die ganze Zeit probiert, aber der hat Probleme, im Object ein Object-Array abzubilden.

Naja, ich werd erstmal das Wochenende genießen und nächste Woche XSL probieren xD
 
Ist doch alles gar nicht so schwer... ;)

Hier mal ein kleines Beispiel:

Hier die Bean (das Objektmodell), das als XML ausgegeben werden soll:

Code:
package xml;

public class TestBean {
	
	[B]private String wert;
	private String[] testArray;[/B]

	public final String getWert() {
		return wert;
	}
	public final void setWert(String wert) {
		this.wert = wert;
	}
	public final String[] getTestArray() {
		return testArray;
	}
	public final void setTestArray(String[] testArray) {
		this.testArray = testArray;
	}

	public String toString () {
		String tmp = "normaler Wert: " + wert + "\n";
		
		if (testArray != null) {
			for (int i = 0; i < testArray.length; i++) {
				tmp += "Array-Wert [" + i + "]: " + testArray[i] + "\n";
			}
		}
		
		return tmp;
	}

}

Es gibt hier 2 Felder (Member):
  • Das String-Feld wert
  • und das String-Array testArray

Mit diesem Code kann man das Objekt dann in XML umwandeln:
Code:
package xml;

import java.beans.XMLEncoder;

public class XMLExporter {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		TestBean bean = new TestBean();
		
		bean.setWert("Test");
		
		String[] strArray = new String[2];
		strArray[0] = "Hallo";
		strArray[1] = "Welt!";
		
		bean.setTestArray(strArray);
		
		System.out.println(bean);
		
		[B]XMLEncoder xml = new XMLEncoder (System.out);
		xml.writeObject(bean);
		xml.flush();[/B]
	}

}

Heraus kommt dann:
Code:
<?xml version="1.0" encoding="UTF-8"?> 
<java version="1.4.2_12" class="java.beans.XMLDecoder"> 
 <object class="xml.TestBean"> 
  <void property="testArray"> 
   <array class="java.lang.String" length="2"> 
    <void index="0"> 
     <string>Hallo</string> 
    </void> 
    <void index="1"> 
     <string>Welt!</string> 
    </void> 
   </array> 
  </void> 
  <void property="wert"> 
   <string>Test</string> 
  </void> 
 </object>

Alles klar?! Sonst fragen!! ;)
Viel Erfolg!
 
Na, das ist ja super! Gern geschehen!

BTW: Hast du ein langes Wochenende... :D *Neid*
 

Ähnliche Themen

Zurück
Oben