Tag: xstream

如何在XStream中禁用不必要的转义?

默认情况下,XStream不必要地转义> , ” ……等。 有没有办法禁用它(只有逃避< , & )?

在XStream中为不在XML中的字段设置默认值

有没有办法创建转换器或在每次转换后执行的某些操作? 对于上下文,我试图填充不在我的XML中的字段的默认值,以便在我的数据模型更改时保持向后兼容性。 例如,如果我有这个对象: class A { private String b; private String c; private String d; } 我的XML是这样的: b d 我希望我导入XML以便知道字段c的默认值为”c”并将其设置为A 这应该是一个通用操作,我可以将默认值添加到非常复杂的图形的任何字段。 如果在每次转换后都有某种方法触发函数,它可以根据我想设置默认值的对象图检查当前对象。 还要注意,使用readResolve / readObject似乎不是一个选项,因为1. readObject()似乎根本不适合我.2。readResolve将使用默认值覆盖该字段,即使它实际包含在XML中。 如果我的假设在这里是错误的,请告诉我。 编辑::我在用户邮件列表中找到了这个相关的主题: http : //article.gmane.org/gmane.comp.java.xstream.user/4619/match=default+value 似乎唯一建议的解决方案是使用readResolve() ,我已经说过它不是一个有效的解决方案。

Xstream:删除class属性

如何删除Xstream中的class =“Something”属性。 我使用带有注释的Xstream

XStream或Simple

我需要决定使用哪一个。 我的情况非常简单。 我需要将一个简单的POJO / Bean转换为XML,然后再转换回来。 没什么特别的。 我正在寻找的一件事是它应该包括父属性。 如果它可以在超类型上工作,那将是最好的,它可以只是一个标记界面。 如果有人可以将这两者与缺点和专业人士进行比较,那么哪一个缺少哪一个。 我知道XStream也支持JSON,这是一个优点。 但是,如果我们将JSON放在一边, Simple看起来就更简单了。 在开发和社区方面,Simple的未来是什么? 我相信XStream很受欢迎,即使是“XStream”这个词,在SO上打了很multithreading。 谢谢。

XMLEncoder和XStream的相对优势是什么?

假设我想在XML中存储许多小配置对象,我不太关心格式。 内置到JDK中的XMLDecoder类可以工作,从我听到的, XStream以类似的方式工作。 每个图书馆有哪些优势?

XStream和下划线

看起来XStream(com.thoughtworks.xstream – > xstream 1.4.2)以非常奇怪的方式处理元素和属性名称中的下划线。 我需要从客户中获取并解析xml,这些客户的属性中包含下划线。 这是我第一次尝试使用XStream,我有点失望,因为我希望避免所有丑陋的xml解析。 在这里,我提供了一个小测试样本来点亮行为。 最后一个例子显示了我的问题。 public class MyTest { public void testIt() { C1 a = new C1(); a.a_b= “a_b”; XStream xstream = new XStream(); xstream.processAnnotations(C1.class); String xml = xstream.toXML(a); Logger.info(xml); C1 b = (C1) xstream.fromXML(xml); Logger.info(b.a_b); C1 c = (C1) xstream.fromXML(“”); Logger.info(c.a_b); } } @XStreamAlias(“C1”) class C1 { @XStreamAsAttribute String […]

Spring REST 3支持XML和JSON

如果我们使用Spring MVC开发REST,它将支持XML和JSON数据。 我在spring config bean app-servlet.xml编写了ContentNegotiationViewResorver 我的Spring REST控制器是: @Controller @RequestMapping(“/rest/customers”) class CustomerRestController { protected Log log = LogFactory.getLog(CustomerRestController.class); @RequestMapping(method = POST) @ResponseStatus(CREATED) public void createCustomer(@RequestBody Customer customer, HttpServletResponse response) { log.info(“>>>” + customer.getName()); response.setHeader(“Location”, String.format(“/rest/customers/%s”, customer.getNumber())); } @RequestMapping(value = “/{id}”, method = GET) @ResponseBody public Customer showCustomer(@PathVariable String id) { Customer c = new Customer(“0001”, […]

如何禁用XStream中的漂亮打印(空白/换行符)?

这是我为XML创建XStream实例的方法: XStream xstream = new XStream(); 这适用于JSON: private final XStream xstream = new XStream(new JsonHierarchicalStreamDriver() { public HierarchicalStreamWriter createWriter(Writer writer) { return new JsonWriter(writer, JsonWriter.DROP_ROOT_MODE); } }); 它们都是非常打印(缩进)输出。 如何让XStream禁用漂亮的打印?

通过java在xslt转换中获取错误

我正在尝试一个xsl转换,现在由一个java对象生成一个中间XML,并且再次传递XML以生成一个新的XML,而在xsl转换中,我收到错误,让我告诉你在我的下面我试过的一段代码。 下面是我的类,首先我创建对象,然后通过xstream生成中间XML InvoiceReferenceNotificationMessage invoiceReferenceNotificationMessage = new InvoiceReferenceNotificationMessage(); invoiceReferenceNotificationMessage.setInvoiceReference(“SM/8315”); invoiceReferenceNotificationMessage.setABSReference(“IRMA5456R157311”); invoiceReferenceNotificationMessage.setCurrency(“GBP”); invoiceReferenceNotificationMessage.setInvoiceAmount(255646); invoiceReferenceNotificationMessage.setPaidAmount(1246565); invoiceReferenceNotificationMessage.setBalanceAmount(0); invoiceReferenceNotificationMessage.setValueDate(new Date()); invoiceReferenceNotificationMessage.setRemarks(“abc”); InvoiceReferenceNotificationMessage invoiceReferenceNotificationMessage1 = new InvoiceReferenceNotificationMessage(); invoiceReferenceNotificationMessage1.setInvoiceReference(“SM/1655”); invoiceReferenceNotificationMessage1.setABSReference(“I1575656311”); invoiceReferenceNotificationMessage1.setCurrency(“EUR”); invoiceReferenceNotificationMessage1.setInvoiceAmount(25655546); invoiceReferenceNotificationMessage1.setPaidAmount(1255565645); invoiceReferenceNotificationMessage1.setBalanceAmount(0); invoiceReferenceNotificationMessage1.setValueDate(new Date()); invoiceReferenceNotificationMessage1.setRemarks(“abERRc”); Transformer xsltTransformer = null; Mail m = new Mail(); m.setInvoiceReferenceNotificationMessage(invoiceReferenceNotificationMessage); XStream xstream = new XStream(); xstream.alias(“brokermail”,Mail.class); String abc = xstream.toXML(m); //System.out.println(abc); m.setInvoiceReferenceNotificationMessage(invoiceReferenceNotificationMessage1); xstream.alias(“brokermail”,Mail.class); String def […]

xstream压平一个物体

我试图使用转换器/编组来平滑xstream的xml输出而没有运气。 例如, public class A{ public B b; public int F; public String G; } public class B{ public String C; public String D; public int E; } 输出为 但是我需要 这可能吗? 如何摆脱B? (C,D,E是唯一命名的)。 谢谢。 到目前为止我的尝试一直是 … public void marshal(Object value, HierarchicalStreamWriter writer, MarshallingContext context) { B b = (B) value; writer.startNode(“C”); writer.setValue(b.getC()); writer.endNode(); writer.startNode(“D”); writer.setValue(b.getD()); […]