问题标签 [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 回答
1355 浏览

jaxb - (Jersey + Jackson) XmlAdapter

I have a class Foo which has a variable Map bar. But as a requirement, I need to be able to represent it as an Object.

So I use a GenericXmlAdapter which in turn does an instanceof check and invokes a Map adapter. A MapAdapter converts the Map into a MapElementList which is just a List of the elements of the Map.

The code falls through as required i.e. the GenericXmlAdapter is invoked and it returns the MapElementList.

But then I get the infamous class MapElementList nor any of its super class is known to this context error

Partial headway: The MapAdapter is not referenced in Foo or any other class which needs to be serialized. So the @XmlSeeAlso in the MapAdapter will not help. I need to add it elsewhere. Where? is the question. Adding it in the GenericXmlAdapter is not helping.

A quick run through the code

The following GenericAdapter is invoked by Jackson as expected

The following MapAdapter is being invoked by the GenericAdapter as expected

The following MapElementList is a list representation of a Map

The following is the MapElement finally

0 投票
1 回答
946 浏览

java - Java Webservice - 用于地图地图的 Jersey XmlAdapter

我有一个使用 Jersey 的 Java Webservice。现在我想向客户端发送地图(行和列)的地图。

当我保持原样时,一切正常。但是 XMLOutput 看起来像这样......

但我想拥有这样的东西......

为了控制 XML 输出,我想使用 XmlAdapters,但我没有让它工作。

包含行的类:

包含列的类:

我将如何编写 XmlAdapter 和 Types 来正确编组对象?

我做了这样的事情......但是我将在哪里添加下一个 XmlAdapter?

包含行和列的 MainClass

现在我为 CoDataList 和 CoDataMap 编写了适配器:




在这一点上,我遇到了一个例外:

@XmlAttribute/@XmlValue 需要引用映射到 XML.xmladapter 中文本的 Java 类型



我真的很感谢你的帮助,我不知道如何让它工作。谢谢

0 投票
2 回答
3886 浏览

java - XMLAdapter:可配置的日期格式

我正在使用 JAXB(以及用于 XSLT 的一点 Saxon)来解组 XML 数据。在我的 XML 文档中,我有一个日期字符串值。

我做了一些研究并试验了 XMLAdapter 和 @XMLJavaTypeAdapter。我在这里找到了关于 StackOverflow 的有用问答:jaxb unmarshal timestamp。那里概述的涉及 SimpleDateFormat 的解决方案似乎运作良好。

这是我的问题:XML 中日期字符串的格式因文档而异。每次可以采用不同的日期格式。在当前系统(我用所有这些 XML 操作替换)中,在解析 XML 文档时检索和应用数据库表中的日期格式。手动。逐行。(现在你明白我为什么要用 JAXB 替换它了,是的!)

所以问题是:我将如何更改为不同文档提供给 XMLAdapter 中 SimpleDateFormat 的日期格式字符串?这样的事情甚至可能吗?我是否注定要将日期字符串作为字符串读取,然后稍后将其转换为其他地方的日期?

编辑:我只是要删除这个问题,但它得到了投票,所以我想我会写一个关于我最终做了什么的正确答案。我将暂缓接受我自己的答案,以防有人有一些见解可以得出更好的答案。

0 投票
1 回答
991 浏览

annotations - jaxb, can I use @XmlJavaTypeAdapter with @XmlElements?

Given the following annotations

And because of some funny legacy logic, I need to provide an adapter for Third.class.

However, ThirdAdapter never seems to be called. Is @XmlJavaTypeAdapter compatible with @XmlElements? Or is there a better solution to this?

0 投票
1 回答
5736 浏览

java - JAXB XMLAdapter 方法不抛出异常

我正在使用 JAXB XMLadapter 编组和解组布尔值。C# 应用程序也将访问应用程序的 XML 文件。我们必须验证这个 XML 文件,这是使用 XSD 完成的。C# 应用程序为布尔节点写入“True”值。但是我们的 XSD 也验证了这一点,因为它只允许“真/假”或“1/0”。因此,我们在 XSD 中为布尔值保留了 String,并且该字符串将由 XMLAdapter 验证以在我们这边编组和解组。XML 适配器如下:

上面的代码在正常情况下工作,但是当从 xml 文件中读取无效数据(例如:“abcd”或“”)时,“throw new Exception();” 没有得到传播,Unmarshal 进程继续读取下一个节点。我希望应用程序在抛出异常后立即停止。看来我的例外被吃掉了。任何帮助深表感谢。

如何解决这个问题?

0 投票
3 回答
1633 浏览

java - JAXB 可映射 XML 元素

在我的 xi-schema 的 root.class 中,元素 item 和 ohter 对象是 itemList 的一部分:

我在ObjectFactory.class主模式中有一些项目作为 JAXBElements,如下所示:

所以 numItemType 有一些属性和 value(num) JAXBElement

NumItemType.class:

但是当JAXB解组XML文档时,它将只有元素,例如:

当我编组它时,它应该变成(就像 JAXB java 代码一样):

因此,我用 NumItemTypeAdapter extends XmlAdapter 编写了一个 numItemTypeAdapter.class

AdaptedNum.class:

我想,这对我有帮助http://blog.bdoughan.com/2012/02/xmlanyelement-and-xmladapter.html,但这有点棘手:-/

0 投票
3 回答
16882 浏览

xml - 对如何使用 JAXB XML Adapter 来满足我的要求感到困惑

我使用 JAXB 进行解组过程,请求来自 UI 到我们的服务类。下面是 XML 请求的格式。

我的要求是,Specifier 属性有多个值系列(:冒号分隔)我需要将每个系列值映射到我的自定义 java 类

我试过这种方式

说明符.java

说明符适配器.java

编辑部分

类说明符有 3 个字符串属性。

我需要每个系列的说明符例如 (value1a,value1b,value1c) 应该分别映射到 value1 , value2 , value3

编辑第 3 部分

嗨, 感谢您的回复,我试图解组这个例子,我发现,我得到了空

这是我通过的请求

只是想确保,我的说明符类是否正确?(因为我在这里没有使用任何注释)

0 投票
0 回答
560 浏览

annotations - @XmlJavaTypeAdapter 未编组的对象为空

我的问题是:jax-ws 如何生成与@XmlJavaTypeAdapter 关联的解组代码?我在客户端代码中看不到适配器类(而是将它们分解为它们的适应对象)。因此,当调用 Web 服务方法时,客户端如何知道如何解组返回的封送响应?


细节:

我在另一个 @XmlJavaTypeAdapter 注释中使用 @XmlJavaTypeAdapter 注释,以便将 Map<> 转换为 ArrayList。编组的结果很好。我的 jax-ws 生成的客户端似乎无法解组结果。相反,我只得到一个空对象。

这是发送到客户端的 XML:

这是我的 WsRefDataOject 适配器类:

我对 ReferenceDataEntry 解组代码(地图对象)使用相同的逻辑。

}

我可以在编组代码中设置断点并在服务中单步执行;但是,我不确定何时/何地存储/调用解组代码。适配器类不是在客户端生成的,所以我不确定客户端应该如何知道如何解组返回的 xml。

下面是生成的 WsRefDataObject 类和生成的 ReferenceDataEntry 类:


关于导致客户端中的空对象的任何想法?

0 投票
1 回答
441 浏览

xml - JaxB 转换 XML 模式

我在http://jeungun.wordpress.com/2009/09/18/binding-to-dynamically-generated-form-elements-in-spring-mvc/中使用过,

我正在使用 jaxb 将该输出转换为 xml,由于上面的示例返回数组列表,因此输出如下所示,

但我想要一个像下面这样的输出,

如何使用 jaxb 实现这一点?

我使用了以下代码:

0 投票
1 回答
3949 浏览

java - JAXB 编组由 XmlAdapter 创建的 ArrayList

HashMap我想使用 .xml 来调整字段的 XML 表示XmlAdapter。我用一个ArrayList来做到这一点。但是,在编组时ArrayList根本没有编组。这是为什么?

编码

结果