2011-09-16 22 views
2

我正在使用JAXB將數據序列化爲來自Java對象的XML。如果未經授權的用戶請求xml,我不想創建一些節點。使用JAXB封送時抑制XML節點

這可以使用JAXB來完成嗎?

一些非JAXB解決方案,我能想到的是:用正則表達式或XSLT生成XML後

  1. 刪除節點。
  2. 將與隱藏節點對應的對象的值設置爲空。

建議的方法是什麼?

回答

3

注:我是EclipseLink JAXB (MOXy)鉛和JAXB 2(JSR-222)專家組的成員。

使用任何JAXB實現

您可以使用XSLT,並充分利用JAXBSource對象作爲輸入轉變。

JAXBSource source = new JAXBSource(jaxbContext, myPOJO); 
Result result = new StreamResult(System.out); 
transformer.transform(source, result); 

使用莫西JAXB

如果您正在使用JAXB的莫西執行,你可以使用它的XML元數據來第二映射應用到您的對象模型。

詳細示例