我在使用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>
我遇到的问题是,这些引用是在linkage标记下发送的,而linkage标记不是唯一的,而且也没有类似于根的“linkage”,这样我就可以轻松地用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类来处理这些多重链接?目前,我主要关心的是从XML到Java的解组。
只需将其定义为List
,例如:
private List<Linkage> linkage;
并将Linkage
类定义为具有单个String
属性:
@XmlRootElement(name="linkage")
...
public class Linkage {
private String systemReference;
}
问题内容: 我使用JAXB创建XML消息。我需要创建的XML是(为简单起见): 我的代码如下所示: 问题:该元素未显示(标题为)。将header设置为空字符串时,将显示以下内容: 当我使用type 代替时,结果甚至更糟: 顺便说一句:我正在使用此代码来创建XML字符串。 是否可以获取空标签? 问题答案: 在XML中,并且是同一个东西。如果您真的想要前者,请使用修饰词。可能会为您做到这一点。
我正在使用来自第三方系统的一组DTD。我们的目标是将XML请求(符合这些DTD的请求映射到java中,然后将XML响应发送回系统)。 DTD是一成不变的(我无法控制更改它们)。 因此,为了进行映射,我使用XMLSpy将dtd转换为XML Schemas (xsd ),然后使用XJC编译器创建Jaxb绑定类。我用的是Java 7。 问题是,DTD 实际上没有命名空间。我有20个不同的DTD。10 表
我正在尝试解组一个包含多个同名元素的XML文档。我不确定是否需要创建bean的Arraylist并将其传递给解组器。我希望有人能给我一些建议来解决这个问题。我试图解析的XML是一个SOAP响应,但我去掉了信封,所以我只有它的主体,它看起来是这样的: 这是从一个包含50多个字段的表返回的,但我创建了一个testBean,并且我定义了fkdevice只是为了使其简单,我的bean看起来像这样: 这给了
问题内容: 我试图编组多个对象,例如添加到via中。我开始使用此设置: 和 但是,我得到了以下运行时例外: javax.xml.bind.JAXBException:com.jaxb.example.marshall.Book或其任何超类对此上下文都是未知的] 我的类型定义如下。 书:- 图书清单:- 马歇尔代码:- 我正在尝试放置注释(参考:-JAXB异常:该上下文未知的类)。该注释在我的版本中
问题内容: 如何定义一个字段,例如使用JPA批注进行索引。我们需要一个非唯一的键,因为每天在该字段上有数百万个查询,而没有键的话,它有点慢。 我已经看到了特定于hibernate的注释,但是由于我们仍在确定hibernate和数据核之间的关系,因此我试图避免使用特定于供应商的解决方案。 更新: 从JPA 2.1开始,您可以执行此操作。请参阅:此位置不允许使用注释@Index 问题答案: 使用JPA
问题内容: 当我对运行xjc时,出现很多错误: ....等等。 我已经尝试使用docbook版本4.5和版本5.0,但是结果相同。 任何指针都会被忽略。谢谢。 问题答案: 您可以将以下绑定文件与DocBook版本5 XML Schema一起使用: 绑定文件 包含绑定的命令行为: