问题标签 [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.
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
java - Java Webservice - 用于地图地图的 Jersey XmlAdapter
我有一个使用 Jersey 的 Java Webservice。现在我想向客户端发送地图(行和列)的地图。
当我保持原样时,一切正常。但是 XMLOutput 看起来像这样......
但我想拥有这样的东西......
为了控制 XML 输出,我想使用 XmlAdapters,但我没有让它工作。
包含行的类:
包含列的类:
我将如何编写 XmlAdapter 和 Types 来正确编组对象?
我做了这样的事情......但是我将在哪里添加下一个 XmlAdapter?
包含行和列的 MainClass
现在我为 CoDataList 和 CoDataMap 编写了适配器:
在这一点上,我遇到了一个例外:
@XmlAttribute/@XmlValue 需要引用映射到 XML.xmladapter 中文本的 Java 类型
我真的很感谢你的帮助,我不知道如何让它工作。谢谢
java - XMLAdapter:可配置的日期格式
我正在使用 JAXB(以及用于 XSLT 的一点 Saxon)来解组 XML 数据。在我的 XML 文档中,我有一个日期字符串值。
我做了一些研究并试验了 XMLAdapter 和 @XMLJavaTypeAdapter。我在这里找到了关于 StackOverflow 的有用问答:jaxb unmarshal timestamp。那里概述的涉及 SimpleDateFormat 的解决方案似乎运作良好。
这是我的问题:XML 中日期字符串的格式因文档而异。每次可以采用不同的日期格式。在当前系统(我用所有这些 XML 操作替换)中,在解析 XML 文档时检索和应用数据库表中的日期格式。手动。逐行。(现在你明白我为什么要用 JAXB 替换它了,是的!)
所以问题是:我将如何更改为不同文档提供给 XMLAdapter 中 SimpleDateFormat 的日期格式字符串?这样的事情甚至可能吗?我是否注定要将日期字符串作为字符串读取,然后稍后将其转换为其他地方的日期?
编辑:我只是要删除这个问题,但它得到了投票,所以我想我会写一个关于我最终做了什么的正确答案。我将暂缓接受我自己的答案,以防有人有一些见解可以得出更好的答案。
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?
java - JAXB XMLAdapter 方法不抛出异常
我正在使用 JAXB XMLadapter 编组和解组布尔值。C# 应用程序也将访问应用程序的 XML 文件。我们必须验证这个 XML 文件,这是使用 XSD 完成的。C# 应用程序为布尔节点写入“True”值。但是我们的 XSD 也验证了这一点,因为它只允许“真/假”或“1/0”。因此,我们在 XSD 中为布尔值保留了 String,并且该字符串将由 XMLAdapter 验证以在我们这边编组和解组。XML 适配器如下:
上面的代码在正常情况下工作,但是当从 xml 文件中读取无效数据(例如:“abcd”或“”)时,“throw new Exception();” 没有得到传播,Unmarshal 进程继续读取下一个节点。我希望应用程序在抛出异常后立即停止。看来我的例外被吃掉了。任何帮助深表感谢。
如何解决这个问题?
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,但这有点棘手:-/
xml - 对如何使用 JAXB XML Adapter 来满足我的要求感到困惑
我使用 JAXB 进行解组过程,请求来自 UI 到我们的服务类。下面是 XML 请求的格式。
我的要求是,Specifier 属性有多个值系列(:冒号分隔)我需要将每个系列值映射到我的自定义 java 类
我试过这种方式
说明符.java
说明符适配器.java
编辑部分
类说明符有 3 个字符串属性。
我需要每个系列的说明符例如 (value1a,value1b,value1c) 应该分别映射到 value1 , value2 , value3
编辑第 3 部分
嗨, 感谢您的回复,我试图解组这个例子,我发现,我得到了空
这是我通过的请求
只是想确保,我的说明符类是否正确?(因为我在这里没有使用任何注释)
annotations - @XmlJavaTypeAdapter 未编组的对象为空
我的问题是:jax-ws 如何生成与@XmlJavaTypeAdapter 关联的解组代码?我在客户端代码中看不到适配器类(而是将它们分解为它们的适应对象)。因此,当调用 Web 服务方法时,客户端如何知道如何解组返回的封送响应?
细节:
我在另一个 @XmlJavaTypeAdapter 注释中使用 @XmlJavaTypeAdapter 注释,以便将 Map<> 转换为 ArrayList。编组的结果很好。我的 jax-ws 生成的客户端似乎无法解组结果。相反,我只得到一个空对象。
这是发送到客户端的 XML:
这是我的 WsRefDataOject 适配器类:
我对 ReferenceDataEntry 解组代码(地图对象)使用相同的逻辑。
}
我可以在编组代码中设置断点并在服务中单步执行;但是,我不确定何时/何地存储/调用解组代码。适配器类不是在客户端生成的,所以我不确定客户端应该如何知道如何解组返回的 xml。
下面是生成的 WsRefDataObject 类和生成的 ReferenceDataEntry 类:
关于导致客户端中的空对象的任何想法?
xml - JaxB 转换 XML 模式
我正在使用 jaxb 将该输出转换为 xml,由于上面的示例返回数组列表,因此输出如下所示,
但我想要一个像下面这样的输出,
如何使用 jaxb 实现这一点?
我使用了以下代码:
java - JAXB 编组由 XmlAdapter 创建的 ArrayList
HashMap
我想使用 .xml 来调整字段的 XML 表示XmlAdapter
。我用一个ArrayList
来做到这一点。但是,在编组时ArrayList
根本没有编组。这是为什么?
编码
结果