问题标签 [xmladapter]

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 投票
0 回答
195 浏览

java - java XmlAdapter,是否可以找出哪些枚举正在使用该适配器?

我很少有需要映射的 Java 枚举。我实现了一个 XmlAdapter 用于编组和解组的目的。

我想让枚举通用,我可以从 XmlAdapter 调用枚举的类似方法。我还介绍了一个接口,所有枚举都在其中实现它们。

任何想法?谢谢

0 投票
1 回答
2186 浏览

java - 使用 JAXB 解组 xml 字符串但得到空字符串

问题解决了

将 XmlElementRef 注释更改为 @XmlElementRef(name = "Option", type = Option.class, required = false) 并将 @XmlRootElement(name = "Option") 添加到 Option.class


更新:

我按照 laune 的建议添加了两个类(Options 和 Option),并修改了 GuiMOProperties 类,如下所示

但是当我必须新建一个 JAXBContext 实例时出现了一些异常,如下所示:


我有一个为 JAXB 解析定义如下的类:

我必须解析的xml字符串如下:

在我的 OptionsAdapter.class 的 unmarshal 方法中,第一个 Options 元素工作正常,有一个字符串“testOptions”输入。但是,第二个 Options 元素没有。输入参数将来自 \n\t\t\t\t,但不是字符串<Option name="1" value="1"></Option><Option name="2" value="2"></Option><Option name="3" value="3"></Option><Option name="4" value="4"></Option>

OptionsAdapter.class 如下

任何帮助表示赞赏。

0 投票
1 回答
110 浏览

java - 解组同步地图

我正在使用 JAXB 将对象保存到 xml 文件中。

请注意我正在使用synchronizedMap(...)包装器这一事实。

上面的结果如下 xml:

实际上,我认为我需要一个XmlAdapter才能使这个工作。但令我惊讶的是,这可以很好地编组和解组。测试表明它正确地使用了一个java.util.Collections$SynchronizedMap包含LinkedHashMap$Entry对象。

所以,如果我理解正确的话。JAXB 的解组器,只是使用构造函数实例化我的对象。由于在实例化对象后已经有一个映射实例,因此它不会实例化映射本身。它使用putAll我假设?

我只是想更深入地了解正在发生的事情。如果有人能给我更多关于这方面的背景信息,那就太好了。我的假设正确吗?

如果我是正确的,我假设以下实现会失败:

0 投票
0 回答
95 浏览

java - 使用动态创建的 @XmlJavaTypeAdapter 注释进行编组时不调用 XML 适配器

我有一个简单的 XMLAdapter:

以下代码背后的想法是:在我的 RuntimeAnnotationReader 实现中,我在运行时创建了一个 @XmlJavaTypeAdapter 注释,并在我的 @XmlDetectCDATA 注释之外返回它

问题:编组时未调用 CDataXMLAdapter 适配器。有任何想法吗?谢谢

0 投票
0 回答
46 浏览

xml - 使用 JAXB 排除 Jersey RESTful API 的 XML 输出中的默认值元素

我正在使用 JAXB 将对象序列化为 XML。我想在我的响应中排除具有默认值的元素。在将对象序列化为 JSON 时,我在 ObjectMapper 配置中使用了JsonSerialize.Inclusion.NON_DEFAULT来排除默认值。

我也希望 XML 响应具有相同的行为。我怎样才能做到这一点?

0 投票
1 回答
1415 浏览

java - JAXB 覆盖 @XmlElement 类型的列表

有一个Bean1带有 type 子列表的简单类BeanChild1

我正在尝试覆盖类,以更改列表的类型。新的子类 (ie BeanChild2) 扩展了前一个子类 (ie BeanChild1)。

所以,这是我测试它的方法:

测试表明该列表仍然包含 的子级BeanChild1

那么,我怎样才能强制它用实例填充childList字段呢?BeanChild2

如果没有简单的解决方案,请随意发布更多创造性的解决方案(例如使用XmlAdapters, Unmarshaller.Listener,也许在父类或子类上附加注释......)

0 投票
1 回答
854 浏览

java - 在 UnMarshalling 期间将 Jaxb 属性值转换为大写

我想在 UnMarshalling 期间将 MyJaxbModel 类中的uid属性值转换为大写。我确实编写了为我工作的UpperCaseAdapter。然而,使用这种方法,应用程序性能会下降到无法接受的程度(因为有数千个 XML 文件未编组到 MyJaxbModel)。我不能String.toUppperCase()在 getter /setter 中使用,因为这些 JAXB 模型是从 XSD 自动生成的,我不想调整它们。

预期输入<myJaxbModel name="abc" uid="xyz" />

预期输出myJaxbModel.toString() -> MyJaxbModel[name=abc, uid=XYZ]

有没有更好的方法来达到预期的结果?

0 投票
1 回答
25 浏览

java - 在哪里可以找到 XmlJavaTypeAdapter 注释的生产者/提供者/处理器实现?

在哪里可以找到 XmlJavaTypeAdapter 注释的生产者/提供者/处理器实现?

为此必须有某种实现。

将字符串转换为类

0 投票
0 回答
29 浏览

java - XmlAdapter 取决于先前解析的数据

我需要从/向 xml 文件读取/写入对象。该对象包含一个元素数组。

假设 Element 类如下所示:

MyObject 类如下所示:

元素构造函数需要 2 个输入参数(例如,Element e = new Element(v, p);)。但是在 MyObject 中,所有元素都具有相同的值p,我只想将它存储在文件中一次。这意味着在某些时候我会读取值p,然后我会读取值并使用andv创建元素。vp

换句话说,我会将 MyObject 类更改为如下所示:

然后我需要以某种方式传递commonP给 ElementAdapter 来创建 Element 对象。

我的问题是是否可以commonP在解析 xml 时进行设置并将其传递给ElementAdapter.

0 投票
1 回答
381 浏览

java - XML Java 适配器无法正常工作

需要帮助:以下 XmlJavaTypeAdapter 类型无法正常工作:

我正在使用“TestAdapter”,例如:

但我面临的问题是“TestAdapter”永远不会被调用。