【发布时间】:2012-09-07 16:05:53
【问题描述】:
我正在使用 XStream,并且我有一个 XML 示例:
<person>
<firstname>Joe</firstname>
<lastname>Walnes</lastname>
<phone value="1234-456" />
<fax value="9999-999" />
</person>
我想把它映射到类
public class Person {
private String firstname;
private String lastname;
private String phone;
private String fax;
}
所以想法是将嵌套元素的属性映射到当前对象。 我试图找到任何现成的转换器,但没有成功。我相信通过实施新的转换器可以做到这一点,但可能有人已经这样做了。或者有一个我还没有找到的解决方案。
更新:
我试图实现的想法是省略不必要的创建和映射实体。我根本不需要电话和传真实体,我只需要模型中的属性。我尝试解析的 XML 架构对我来说是第三方的,我无法更改它。
【问题讨论】:
-
好发现!我已经解决了这个问题。只是从头开始写的。
-
你能再澄清一下你在寻找什么吗?你说“我不需要电话和传真实体......”,你没有它们 - 它们只是模型中的字符串,而不是单独的实体......你只想要前两个属性映射还是四个?
-
问题是如何将 XML 样本映射到模型。无需任何额外努力,XStream 就假定 XML 元素无论如何都被解释为模型成员(即使它们被显式省略)。拥有丰富的 XML 模式,您可能希望简化模型以逃避有意义数据的冗余“持有者”。隐式集合很好,但还不够。