如何使用 JAXB 绑定多个非唯一元素
How can I use JAXB to bind mulitple non-unique elements
我在使用 JAXB 解析 XML 时遇到了这个问题。这是有问题的 XML 的简化布局:
<message>
<header>
<network>NET</network>
<sendTime>0722</sendTime>
</header>
<generalInformation>
<senderReference>1234</senderReference>
<linkage>
<externalReference>extRef</externalReference>
</linkage>
<linkage>
<internalReference>intRef</internalReference>
</linkage>
<linkage>
<systemReference>sysRef</externalReference>
</linkage>
</generalInformation>
</message>
我遇到的问题是这些引用是在不唯一的链接标签下发送的,也没有像“链接”这样的根,这让我可以轻松地将它包装在列表中在 Java 中,因为 generalInformation 标签中还有其他标签。到目前为止,这是我的设置方式:
@XmlRootElement(name="message")
@NoArgsConstructor
@AllArgsConstructor
@Data
public class Message {
private Header header;
private GeneralInformation generalInformation;
}
@XmlRootElement(name="header")
@NoArgsConstructor
@AllArgsConstructor
@Data
public class Header {
private String network;
private String sendTime;
}
@XmlRootElement(name="generalInformation")
@NoArgsConstructor
@AllArgsConstructor
@Data
public class GeneralInformation {
private String senderReference;
//How to create for linkages??
}
所以我的问题是,如何配置 GeneralInformation class 来处理这些多重链接?目前我最关心的是从 XML 解组到 Java。
定义为List
即可,例如:
private List<Linkage> linkage;
并定义 Linkage
class 有单个 String
属性:
@XmlRootElement(name="linkage")
...
public class Linkage {
private String systemReference;
}
@XmlRootElement(name="generalInformation")
@NoArgsConstructor
@AllArgsConstructor
@Data
public class GeneralInformation {
private String senderReference;
private List<Linkage>;
}
@XmlRootElement(name="linkage")
@NoArgsConstructor
@AllArgsConstructor
@Data
public class Linkage {
private String externalReference;
private String internalReference;
private String systemReference;
}
我在使用 JAXB 解析 XML 时遇到了这个问题。这是有问题的 XML 的简化布局:
<message>
<header>
<network>NET</network>
<sendTime>0722</sendTime>
</header>
<generalInformation>
<senderReference>1234</senderReference>
<linkage>
<externalReference>extRef</externalReference>
</linkage>
<linkage>
<internalReference>intRef</internalReference>
</linkage>
<linkage>
<systemReference>sysRef</externalReference>
</linkage>
</generalInformation>
</message>
我遇到的问题是这些引用是在不唯一的链接标签下发送的,也没有像“链接”这样的根,这让我可以轻松地将它包装在列表中在 Java 中,因为 generalInformation 标签中还有其他标签。到目前为止,这是我的设置方式:
@XmlRootElement(name="message")
@NoArgsConstructor
@AllArgsConstructor
@Data
public class Message {
private Header header;
private GeneralInformation generalInformation;
}
@XmlRootElement(name="header")
@NoArgsConstructor
@AllArgsConstructor
@Data
public class Header {
private String network;
private String sendTime;
}
@XmlRootElement(name="generalInformation")
@NoArgsConstructor
@AllArgsConstructor
@Data
public class GeneralInformation {
private String senderReference;
//How to create for linkages??
}
所以我的问题是,如何配置 GeneralInformation class 来处理这些多重链接?目前我最关心的是从 XML 解组到 Java。
定义为List
即可,例如:
private List<Linkage> linkage;
并定义 Linkage
class 有单个 String
属性:
@XmlRootElement(name="linkage")
...
public class Linkage {
private String systemReference;
}
@XmlRootElement(name="generalInformation")
@NoArgsConstructor
@AllArgsConstructor
@Data
public class GeneralInformation {
private String senderReference;
private List<Linkage>;
}
@XmlRootElement(name="linkage")
@NoArgsConstructor
@AllArgsConstructor
@Data
public class Linkage {
private String externalReference;
private String internalReference;
private String systemReference;
}