在使用JAXB进行封送时抑制XML节点

时间:2011-09-16 15:43:37

标签: java xml xslt jaxb authorization

我正在使用JAXB将数据从java对象序列化为XML。如果未经授权的用户请求xml,我不想创建一些节点。

可以使用JAXB完成吗?

我能想到的几个非JAXB解决方案是:

  1. 使用Regex或XSLT生成XML后删除节点。
  2. 将与隐藏节点对应的对象的值设置为null。
  3. 建议的方法是什么?

1 个答案:

答案 0 :(得分: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);

使用MOXy JAXB

如果您使用的是JAXB的MOXy实现,则可以使用其XML元数据将第二个映射应用于对象模型。

详细示例