2012-09-25 18 views
0

我目前正在開發一個使用XStream從XML創建對象的系統。一個例子對象是如何使用XStream製作預先配置的模板

@XStreamAlias("TestClass") 
public class TestClass{ 

@XStreamAlias("format") 
private String format; 

public String getFormat(){ 
    return format; 
} 

public void setFormat(String format){ 
    this.format = format; 
} 
} 

這個類有一個字段,格式字段,並從其中將它建造看起來像XML:

<TestClass> 
    <format>foo</format> 
</TestClass> 

現在我想實例化不同的實例具有特定的格式。例如,我希望一個格式爲foo的TestClass對象和一個格式欄。但是,而不是生產

<TestClass> 
    <format>foo</format> 
</TestClass> 

<TestClass> 
    <format>bar</format> 
</TestClass> 

我想使用某種類型的別名系統,使上面的XML不會是必要的,但不是我可以用

<TestClassFoo /> 
<TestClassBar /> 

這裏當然名稱並不需要以包括指定的格式。

我看到必須有一個自定義轉換器,但我不想硬編碼每個別名,而是從XML加載它們(是的,它變得複雜)。這樣做的結果是爲不同的XML對象創建快捷模板,這些模板可以動態配置。

回答

0

如果你的目標是更緊湊的XML,爲什麼不使用@XStreamAsAttribute所以你會得到像<TestClass format="foo"/>的輸出?否則,是的,你將不得不寫一個自定義轉換器來完成你想要的。