【问题标题】:xstream alias from different parameter来自不同参数的 xstream 别名
【发布时间】:2017-03-18 01:32:34
【问题描述】:

我尝试解决将列表从我的 xml 映射到我的 Java 对象的高级问题。

我可以给问题起个名字:EVE XML API

该链接显示了一个我不能很好地进行逆向工程的问题:相同的元素标签具有不同的内容,但相同的属性具有不同的值。

将对象序列化为 XML 效果很好,但无法从生成的 XML 转换回对象。

我对我的各个类做了这个映射:

```

XStream xStream = new XStream( );

// Aliases
xStream.alias("eveapi", CallList.class);
xStream.aliasAttribute(CallList.class, "version", "version");

xStream.alias("row", RowCallGroups.class);
xStream.aliasField("rowset", Result.class, "callGroups");
xStream.aliasAttribute(RowCallGroups.class, "groupID", "groupID");
xStream.aliasAttribute(RowCallGroups.class, "name", "name");
xStream.aliasAttribute(RowCallGroups.class, "description", "description");

xStream.addImplicitCollection(RowSetCallGroups.class, "callGroups");
xStream.alias("rowset", RowSetCallGroups.class);
xStream.aliasAttribute(RowSetCallGroups.class, "name", "name");
xStream.aliasAttribute(RowSetCallGroups.class, "key", "key");
xStream.aliasAttribute(RowSetCallGroups.class, "columns", "columns");

xStream.alias("row", RowCalls.class);
xStream.aliasField("rowset", Result.class, "calls");
xStream.aliasAttribute(RowCalls.class, "accessMask", "accessMask");
xStream.aliasAttribute(RowCalls.class, "type", "type");
xStream.aliasAttribute(RowCalls.class, "name", "name");
xStream.aliasAttribute(RowCalls.class, "groupID", "groupID");
xStream.aliasAttribute(RowCalls.class, "description", "description");

xStream.addImplicitCollection(RowSetCalls.class, "calls");
xStream.alias("rowset", RowSetCalls.class);
xStream.aliasAttribute(RowSetCalls.class, "name", "name");
xStream.aliasAttribute(RowSetCalls.class, "key", "key");
xStream.aliasAttribute(RowSetCalls.class, "columns", "columns");

```

知道如何根据name= 属性的内容进行映射吗?

【问题讨论】:

  • 嗨,请发布更多您的代码,以便我们这些尝试阅读它的人可以使用Minimal, Complete, and Verifiable example。特别是您的数据模型类(或至少它们的基本部分,如字段、包名称等)会很有帮助,这样我们就不必尝试从 XML 和 XStream 调用中反转您的代码。跨度>

标签: java xml xstream


【解决方案1】:

我昨晚无法发布解决方案,我现在就这样做。

首先:发布所有这些课程将远远超出发布限制。 D.B.

其次:重点是,我的数据布局错误。

解决方案:我必须使用自定义转换器。 “本机”无法转换该架构。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-13
    • 1970-01-01
    • 2010-11-25
    • 2012-09-21
    • 2022-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多