问题标签 [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.
java - JAXB:我应该如何编组复杂的嵌套数据结构?
我有几个复杂的数据结构,比如
注意:就我而言,使用 Set 还是 List 并不重要。
现在我知道 JAXB 让我定义XmlAdapter,这很好,但我不想为每个给定的数据结构定义一个 XmlAdapter (这将是太多的复制和粘贴代码)。
我试图通过声明两个通用 XmlAdapter 来实现我的目标:
- 一个用于地图:
MapAdapter<K,V>
- 一套:
SetAdapter<V>
问题:
JAXB 抱怨如下:
这是我的适配器类:
这是我的 JUnit 测试用例:
java - 没有由 JAXB 生成的 @XmlRootElement
我正在尝试从 FpML(金融产品标记语言)4.5 版生成 Java 类。生成了大量代码,但我无法使用它。试图序列化一个简单的文档,我得到了这个:
事实上,没有类有 @XmlRootElement 注释,那么我做错了什么?我将 xjc (JAXB 2.1) 指向 fpml-main-4-5.xsd,然后它包括所有类型。
java - JAXB 编组和泛型
我正在尝试使用 JAXB 的自省来编组和取消编组一些用 JAXB 注释标记的现有域对象。大多数事情都按预期工作,但我在获得一个相当简单的类来序列化时遇到了很多麻烦。此类在许多 bean 上用作 @XmlElement ,看起来像:
我尝试了以下操作,但没有成功,JAXB 仍然对 Comparable 接口感到愤怒。
使用 Range 和 DoubleRange 作为 bean getter 的返回类型会产生如下异常:
我意识到在大多数情况下 List<T> 和 Map<T, U> 只能工作,因为 JAXB 规范对这些类型在 bean 上遇到时有特殊规定,但是有什么方法可以将我想要的内容传达给 JAXB 自省引擎而不必用非泛型字段重新实现范围?
java - 使用 JAXB 解组具有不同/动态名称的元素
我正在解析具有如下节点的 XML 文档:
元素 data1、data2、data3 始终是一致的。只有父标签不同。在我的对象模型中,我有一个代表所有这些情况的对象。在事先不知道元素名称的情况下,如何让 JAXB 处理这种情况?
@XMLAnyElement 匹配所有对象,但不创建适当类型的对象;我得到一个节点对象列表而不是我的对象。我的对象目前看起来像:
除了将传入的 XML 格式更改为使用<object type="dog">
元素之外,如何处理这种情况的任何想法?
java - 带有空字段的 JAXB 编组
这是一个非常简单的请求,但我只是没有找到办法。
我基本上是在尝试在 JAXB 中设置一个角色,即每当遇到空字段时,而不是在输出中忽略它,而是将其设置为空值。所以对于班级:
如果日期字段为空,则将其编组到 XML 文件中时,我的输出中没有该元素。我想要做的是在输出中包含所有字段;如果它们为空,请将它们替换为 - 比如说一个空白。所以输出应该是:
谢谢,
贾尔佩什。
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 类。
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(这是错误指向的位置):
java - JAXB:如何注释类以使它们属于不同的名称空间?
我想要有JAXB 注释的类,这些类将被编组/解组到不同的 XML 命名空间。
我需要的是这样的:
如何做呢?
可以以编程方式完成吗?(不需要JAXB 的.xjb 绑定文件?)
java - 如何制作像 xmlbean XmlObject.copy() 这样的 JAXB 对象的深层副本?
我的任务是重构一些使用 xmlbeans 的组件,以便现在使用 jaxb。一切都很顺利,直到我到达前一位作者调用XmlObjects 之一的 copy() 函数的地方。由于 xmlbeans 中的所有对象都扩展了 XmlObject,我们免费获得了神奇的深拷贝功能。
Jaxb 似乎没有为我们提供这个。制作 Jaxb 对象的深层副本的正确且简单的方法是什么?
xsd - JAXB 选择列表
我有以下架构
XJC 生成带有两个列表的 BookShelf 类,一个用于 newBook,一个用于 oldBook。出色的!
现在我希望书籍以任何顺序出现。所以我将我的架构重写为:
但是现在 XJC 生成的 BookShelf 只有一个类型为 newBookOrOldBook 的列表List<JAXBElement<String>>
。
我不关心书籍出现的顺序,我想允许 XML 编写器按照他\她希望的任何顺序指定书籍,但我仍然希望每种类型的书籍作为生成的 BookShelf 类中的列表。有什么办法可以做到这一点?