问题标签 [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.
java - java XmlAdapter,是否可以找出哪些枚举正在使用该适配器?
我很少有需要映射的 Java 枚举。我实现了一个 XmlAdapter 用于编组和解组的目的。
我想让枚举通用,我可以从 XmlAdapter 调用枚举的类似方法。我还介绍了一个接口,所有枚举都在其中实现它们。
任何想法?谢谢
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 如下
任何帮助表示赞赏。
java - 解组同步地图
我正在使用 JAXB 将对象保存到 xml 文件中。
请注意我正在使用synchronizedMap(...)
包装器这一事实。
上面的结果如下 xml:
实际上,我认为我需要一个XmlAdapter
才能使这个工作。但令我惊讶的是,这可以很好地编组和解组。测试表明它正确地使用了一个java.util.Collections$SynchronizedMap
包含LinkedHashMap$Entry
对象。
所以,如果我理解正确的话。JAXB 的解组器,只是使用构造函数实例化我的对象。由于在实例化对象后已经有一个映射实例,因此它不会实例化映射本身。它使用putAll
我假设?
我只是想更深入地了解正在发生的事情。如果有人能给我更多关于这方面的背景信息,那就太好了。我的假设正确吗?
如果我是正确的,我假设以下实现会失败:
java - 使用动态创建的 @XmlJavaTypeAdapter 注释进行编组时不调用 XML 适配器
我有一个简单的 XMLAdapter:
以下代码背后的想法是:在我的 RuntimeAnnotationReader 实现中,我在运行时创建了一个 @XmlJavaTypeAdapter 注释,并在我的 @XmlDetectCDATA 注释之外返回它
问题:编组时未调用 CDataXMLAdapter 适配器。有任何想法吗?谢谢
xml - 使用 JAXB 排除 Jersey RESTful API 的 XML 输出中的默认值元素
我正在使用 JAXB 将对象序列化为 XML。我想在我的响应中排除具有默认值的元素。在将对象序列化为 JSON 时,我在 ObjectMapper 配置中使用了JsonSerialize.Inclusion.NON_DEFAULT来排除默认值。
我也希望 XML 响应具有相同的行为。我怎样才能做到这一点?
java - JAXB 覆盖 @XmlElement 类型的列表
有一个Bean1
带有 type 子列表的简单类BeanChild1
。
我正在尝试覆盖类,以更改列表的类型。新的子类 (ie BeanChild2
) 扩展了前一个子类 (ie BeanChild1
)。
所以,这是我测试它的方法:
测试表明该列表仍然包含 的子级BeanChild1
。
那么,我怎样才能强制它用实例填充childList
字段呢?BeanChild2
如果没有简单的解决方案,请随意发布更多创造性的解决方案(例如使用XmlAdapter
s, Unmarshaller.Listener
,也许在父类或子类上附加注释......)
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]
有没有更好的方法来达到预期的结果?
java - 在哪里可以找到 XmlJavaTypeAdapter 注释的生产者/提供者/处理器实现?
在哪里可以找到 XmlJavaTypeAdapter 注释的生产者/提供者/处理器实现?
为此必须有某种实现。
将字符串转换为类
java - XmlAdapter 取决于先前解析的数据
我需要从/向 xml 文件读取/写入对象。该对象包含一个元素数组。
假设 Element 类如下所示:
MyObject 类如下所示:
元素构造函数需要 2 个输入参数(例如,Element e = new Element(v, p);
)。但是在 MyObject 中,所有元素都具有相同的值p
,我只想将它存储在文件中一次。这意味着在某些时候我会读取值p
,然后我会读取值并使用andv
创建元素。v
p
换句话说,我会将 MyObject 类更改为如下所示:
然后我需要以某种方式传递commonP
给 ElementAdapter 来创建 Element 对象。
我的问题是是否可以commonP
在解析 xml 时进行设置并将其传递给ElementAdapter
.
java - XML Java 适配器无法正常工作
需要帮助:以下 XmlJavaTypeAdapter 类型无法正常工作:
我正在使用“TestAdapter”,例如:
但我面临的问题是“TestAdapter”永远不会被调用。