问题标签 [jaxb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
63520 浏览

java - JAXB:我应该如何编组复杂的嵌套数据结构?

我有几个复杂的数据结构,比如

注意:就我而言,使用 Set 还是 List 并不重要。

现在我知道 JAXB 让我定义XmlAdapter,这很好,但我不想为每个给定的数据结构定义一个 XmlAdapter (这将是太多的复制和粘贴代码)。

我试图通过声明两个通用 XmlAdapter 来实现我的目标:

  • 一个用于地图:MapAdapter<K,V>
  • 一套:SetAdapter<V>

问题
JAXB 抱怨如下:

这是我的适配器类:

这是我的 JUnit 测试用例:

0 投票
17 回答
281614 浏览

java - 没有由 JAXB 生成的 @XmlRootElement

我正在尝试从 FpML(金融产品标记语言)4.5 版生成 Java 类。生成了大量代码,但我无法使用它。试图序列化一个简单的文档,我得到了这个:

事实上,没有类有 @XmlRootElement 注释,那么我做错了什么?我将 xjc (JAXB 2.1) 指向 fpml-main-4-5.xsd,然后它包括所有类型。

0 投票
6 回答
19676 浏览

java - JAXB 编组和泛型

我正在尝试使用 JAXB 的自省来编组和取消编组一些用 JAXB 注释标记的现有域对象。大多数事情都按预期工作,但我在获得一个相当简单的类来序列化时遇到了很多麻烦。此类在许多 bean 上用作 @XmlElement ,看起来像:

我尝试了以下操作,但没有成功,JAXB 仍然对 Comparable 接口感到愤怒。

使用 Range 和 DoubleRange 作为 bean getter 的返回类型会产生如下异常:

我意识到在大多数情况下 List<T> 和 Map<T, U> 只能工作,因为 JAXB 规范对这些类型在 bean 上遇到时有特殊规定,但是有什么方法可以将我想要的内容传达给 JAXB 自省引擎而不必用非泛型字段重新实现范围?

0 投票
2 回答
6885 浏览

java - 使用 JAXB 解组具有不同/动态名称的元素

我正在解析具有如下节点的 XML 文档:

元素 data1、data2、data3 始终是一致的。只有父标签不同。在我的对象模型中,我有一个代表所有这些情况的对象。在事先不知道元素名称的情况下,如何让 JAXB 处理这种情况?

@XMLAnyElement 匹配所有对象,但不创建适当类型的对象;我得到一个节点对象列表而不是我的对象。我的对象目前看起来像:

除了将传入的 XML 格式更改为使用<object type="dog">元素之外,如何处理这种情况的任何想法?

0 投票
5 回答
61080 浏览

java - 带有空字段的 JAXB 编组

这是一个非常简单的请求,但我只是没有找到办法。

我基本上是在尝试在 JAXB 中设置一个角色,即每当遇到空字段时,而不是在输出中忽略它,而是将其设置为空值。所以对于班级:

如果日期字段为空,则将其编组到 XML 文件中时,我的输出中没有该元素。我想要做的是在输出中包含所有字段;如果它们为空,请将它们替换为 - 比如说一个空白。所以输出应该是:

谢谢,

贾尔佩什。

0 投票
1 回答
1821 浏览

web-services - 如何使用 JAXB2 和 Spring-WS 处理 rpc/literal webservice

我们需要访问一个使用 RPC/literal webservice 样式的遗留 webservice,并为其提供 webservice 端点。如果您使用带有 Spring WebserviceTemplates / WebserviceEndpoints 的文档/文字样式的 Web 服务,则可以使用 JAXB2 来生成 / 编组 / 解组 Web 服务请求。但是你如何用 RPC/literal 风格做到这一点?org.jvnet.jaxb2.maven2:maven-jaxb2-plugin 似乎无法为请求/响应生成 Java 类。

0 投票
1 回答
5751 浏览

xml - xjc 绑定自定义在 jaxb 2.1.3 中不起作用。它适用于 jaxb 2.0

我在 JDK 1.6.0 中的 jaxb 2.0 中开发了一个绑定自定义文件,它运行良好。

现在我在 JDK 1.6.0_13 中使用 jaxb 2.1.3,它给了我错误:

错误 xxx 出现在多个属性中

这就是绑定文件应该通过重命名来处理的内容。

我需要注意 2.0 和 2.1.3 之间发生的事情以及我需要更改的内容。我找遍了近处和远方,无法弄清楚。非常感谢你的帮助。

我正在使用绑定自定义文件,因为该架构有几个属性名称,它们将获得“包罗万象”的属性,因为字段名称由架构的两个不同部分使用。这两个字段称为表达式和断言

解析架构时出现以下错误:

我的 xjc 命令是:

我的 xjb 文件是:

架构非常大,但这里有 2 个断言和表达式 comtype(这是错误指向的位置):

0 投票
1 回答
21283 浏览

java - JAXB:如何注释类以使它们属于不同的名称空间?

我想要有JAXB 注释的类,这些类将被编组/解组到不同的 XML 命名空间

我需要的是这样的:

如何做呢?

可以以编程方式完成吗?(不需要JAXB 的.xjb 绑定文件?)

0 投票
4 回答
7674 浏览

java - 如何制作像 xmlbean XmlObject.copy() 这样的 JAXB 对象的深层副本?

我的任务是重构一些使用 xmlbeans 的组件,以便现在使用 jaxb。一切都很顺利,直到我到达前一位作者调用XmlObjects 之一的 copy() 函数的地方。由于 xmlbeans 中的所有对象都扩展了 XmlObject,我们免费获得了神奇的深拷贝功能。

Jaxb 似乎没有为我们提供这个。制作 Jaxb 对象的深层副本的正确且简单的方法是什么?

0 投票
4 回答
11835 浏览

xsd - JAXB 选择列表

我有以下架构

XJC 生成带有两个列表的 BookShelf 类,一个用于 newBook,一个用于 oldBook。出色的!

现在我希望书籍以任何顺序出现。所以我将我的架构重写为:

但是现在 XJC 生成的 BookShelf 只有一个类型为 newBookOrOldBook 的列表List<JAXBElement<String>>

我不关心书籍出现的顺序,我想允许 XML 编写器按照他\她希望的任何顺序指定书籍,但我仍然希望每种类型的书籍作为生成的 BookShelf 类中的列表。有什么办法可以做到这一点?