2
我在尝试使用来自第三方Web服务的数据。不幸的是,Web服务正在返回数据,我认为这是一种不寻常的XML格式。这里是我从服务接收的数据的一个示例:当XML根节点包含PCData时的JAXB注释
<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://mynamespace">(-76.4844131, 39.1031567, 0.0000000)
(-76.4871168, 39.1031567, 0.0000000)
(-76.4875889, 39.1042890, 0.0000000)
(-76.4905500, 39.1052881, 0.0000000)
</string>
代替具有含有航点元件(LAT,LON,海拔)的列表的根节点,根节点的内容是一个大的字符串值。虽然我可以解析字符串,但我希望使用JAXB(因为我正在使用JERSEY来处理服务调用)将此返回的XML转换为Java POCO。
理想情况下,将根节点的大型字符串主体转换为具有路点列表的POCO类是很好的,但我想这需要JAXB以外的自定义XML反序列化。
不过我倒是乐意与这样的事情,如果我可以使用JAXB:
@XmlRootElement(name="string", namespace="http://mynamespace")
public class Route {
private String _wayPoints;
@ ????
public String getWayPoints() { returns _waypoints; }
public void setWayPoints(String wayPoints) { _wayPoints = wayPoints; }
}
不幸的是,我还没有看到任何JAXB方式告诉编组,我的属性之一应该是内容根元素或其他元素。
理想的情况下这将是很好,如果我能诠释我的财产的东西,如:
@XmlElementContent(ElementName="string")
这将元帅/解组我的航点属性的内容到我的根元素的内容(或innerText属性)。
有没有人有类似的问题?有没有办法与JAXB做到这一点?或者我应该考虑解析字符串和/或编写自定义XML解串器。
谢谢!
卫生署!谢谢。完全错过了所有JAXB注释。像冠军一样工作! =) – CoderN8 2011-03-02 21:54:29