java - 用于生成/使用 REST 服务的最佳 Java XML 解析器

标签 java xml xml-parsing vtd-xml

目前使用 Java 的内置 XML DOM 库进行创建/解析。丑陋,即使有很多辅助类和方法,性能和内存使用也很糟糕。

在生成和使用 REST 服务方面处理 XML 的最佳 Java 工具或框架是什么?

我使用的服务使用 JAXB。我能够使用他们的类(class),从而方便、轻松地使用他们的服务。它很漂亮,但在大多数情况下 JAXB 仍然很痛苦。所以我查看了 StAX 和 VTD-XML。 StAX 大约 4 年没有更新。 VTD-XML 是 Java 中 XML 处理的最新技术吗?

最佳答案

您应该能够编写 JAXB 注释类,Jersey 开箱即用地支持这些类并自动为您解析它们。它可能不是最高效的解决方案,但却是一个非常好的干净应用程序。

除非您可以证明您有性能问题(并且可以将其追溯到 JAXB),否则我不会担心编码/解码开销。

编辑:
JAXB 注释类可以非常简单。像 XML 一样建模;

<customer>
  <name>Fred</name>
  <email>fred@email.com</email>
  <id>12345</id>
</customer>

就这么简单;

@XmlRootElement
public class Customer
{
  private String name;
  private String email;
  private long id;

  public Customer()
  {
  }

  //getters and setters
}

然后你可以这样写服务;

@GET
@Produces(MediaType.APPLICATION_XML)
@Path("/getCustomer")
public Customer getCustomer()
{
  Customer c = new Customer();
  c.setName("Fred");
  c.setEmail("fred@email.com");
  c.setId(12345);
  return c;
}

..和这样的客户;

Client client = Client.create();
WebResource resource = client.resource("myHost/getCustomer");
Customer fred = resource.get(Customer.class):

非常漂亮简单。

关于java - 用于生成/使用 REST 服务的最佳 Java XML 解析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3905912/

相关文章:

xml - 我需要有关在 T-SQL 中解析 XML 的帮助

java - 在 zip 中的 xml 文件上使用 SAX 解析器

java - ListView 滚动时覆盖 EditText

android - 谷歌地图的android xml布局问题

java - 如何在测试中模拟慢SQL数据库?

java - 在此程序中,当我添加更多标签时,已准备好的标签不会显示。

xml - 如何提取XML节点并创建新的XML文档

java - 为什么此代码会抛出 MalformedURLException?

java - Wicket:如何在 session 内同步请求

java - 使用 repaint() 时绘制图形而不删除它们