2014-01-14 46 views
2

我正在使用腳輪從java對象創建XML文件。 我想在創建XML文件時忽略我的類中的字段。如何忽略腳輪編組中的字段

文檔http://castor.codehaus.org/reference/1.3.0/html/XML%20data%20binding.html說:

1.2.2.1。編組行爲
對於Castor,Java類必須映射到XML元素。當蓖麻乘警一個對象,它會:
- 使用映射信息,如果有的話,找到該元素的名稱創建

- 默認情況下,使用類的名稱創建一個名稱
它然後將使用從映射文件中的字段的信息來確定對象的給定屬性如何必須被翻譯成一個且僅執行以下操作之一:
- 屬性
- 一個元素
- 文本內容
- 沒有什麼,因爲我們可以選擇忽略某個特定領域

但是,如何,我可以把註釋@IgnoreFields或類似的東西? 我知道,可以創建映射文件來指定要轉換的字段。

回答

1

Castor會忽略默認映射文件中未指定的字段

實施例:(給定一個對象和作爲下面的映射)含有2個字段

對象而映射文件只指定領域僅 1映射。

public class TestObj { 
String param1; 
String param2; 

public String getParam1() { 
    return param1; 
} 
public void setParam1(String param1) { 
    this.param1 = param1; 
} 
public String getParam2() { 
    return param2; 
} 
public void setParam2(String param2) { 
    this.param2 = param2; 
}} 

映射文件(測試mapping.xml)

<mapping> 
<class name="TestObj"> 
    <map-to /> 
    <field name="param1" type="java.lang.String"> 
     <bind-xml name="param1" node="element" /> 
    </field> 
</class> 
</mapping> 

測試代碼打印XML

Marshaller marshaller = new Marshaller(); 
    Mapping mapping = new Mapping(); 
    mapping.loadMapping("test-mapping.xml"); 
    marshaller.setMapping(mapping); 
    TestObj obj = new TestObj(); 
    StringWriter writer = new StringWriter(); 
    obj.setParam1("1"); 
    obj.setParam2("2"); 

    marshaller.setWriter(writer); 
    marshaller.marshal(obj); 

    System.out.println("output:"+writer.toString()); 

最終結果

<test-obj> 
<param1>1</param1> 
</test-obj> 
+0

感謝,但我沒有想要使用映射文件,因爲我有很多子類。最後,如果您設置關鍵字瞬態字段可能會被XML文件中的編碼器忽略。 –