2012-10-11 56 views
2

我想生成一個數據模型的xml表示,我不想修改我的模型addind類似JAXB和anotattions來描述它。 我想要一個透明且靈活的設計。在不更改模型的情況下對數據模型進行編碼/解碼的最佳方法?

任何想法?

謝謝!

編輯 - Ading例

public class Figure { 
private String name; 
private String color; 
public Figure(String name, String color) { 
    super(); 
    this.name = name; 
    this.color = color; 
} 
public String getName() { 
    return name; 
} 
public void setName(String name) { 
    this.name = name; 
} 
public String getColor() { 
    return color; 
} 
public void setColor(String color) { 
    this.color = color; 
} 

和it's XML:

<Figure> 
<name>square</name> 
<color>red</color> 
</Figure> 

這是一個簡單的例子,我的真正的問題是: 我怎麼支持對象或變化的組成到模型而不更改「解析器/編碼器/解碼器」?

回答

1

使用Xstream。 你會create a custom Converter class,並使用canConvert()方法將你的類(你的模型)映射到它。如果您正在創建自定義的Converter類,則不需要在模型類中進行註釋。

+1

謝謝兄弟! 這就是我正在尋找的 – Kummo

1

使用XMLEncoder

XMLEncoder e = new XMLEncoder(new BufferedOutputStream(new FileOutputStream("Test.xml"))); 
e.writeObject(new Figure("car", "blue")); 
e.close(); 

或者在xstream看一看:

XStream xstream = new XStream(new DomDriver()); 
xstream.alias("Figure", Figure.class); 
String xml = xstream.toXML(new Figure("car", "blue")); 
+0

爲什麼鏈接到1.4 API? – betomontejo

+0

這是我發現的第一個。爲什麼不? – vfcosta

+0

謝謝,我將這段代碼添加到我的示例代碼中,並且不起作用。 如果沒有其他答案我會試着讓這個工作 再次感謝! – Kummo

相關問題