1

我正在尝试使用 Java 的 JAXB 库解组以下 XML。

<message name="GetAllRoutesSoapIn">
  <part name="parameters" element="GetAllRoutes"/>
</message>

...

<operation name="GetAllRoutes">
  <input message="GetAllRoutesSoapIn"/>
</operation>

分层解组这个文件很容易:一个消息有很多部分,一个操作有一个输入。但是我在建立输入和消息之间的关系时遇到了麻烦。

我希望未编组的Input类有一个 type 字段Message而不是 type String

输入类

@XmlType
public class Input extends AbstractElement {

// @XmlAttribute
// private String message; 

// Not sure how to implement this. XMLAdapter?
private Message message;

protected Input () {}

...

我最初的想法是创建一个自定义 Message XMLAdapter 并使用 @XmlJavaTypeAdapter(MessageAdapter.class) 注释 Message 类和 Input 的 Message 属性。我会在 Adapter 类上保留所有实例化消息的静态集合。当适配器试图从输入的消息属性中解组消息时,将从适当的 xml 元素“消息”实例化的消息被收集和搜索。快要工作了,但我无法让适配器为输入类触发。

有任何想法吗?

4

1 回答 1

1

这种类型的关系与@XmlID(在唯一标识对象的字段/属性上)和XmlIDREF(在对该对象的引用上)进行映射。请注意,被引用的对象还必须通过您所谓的层次关系被另一个对象引用。

于 2013-09-07T18:58:05.030 回答