gpt4 book ai didi

java - JAXB 类中的嵌入属性

转载 作者:太空宇宙 更新时间:2023-11-04 06:56:48 25 4
gpt4 key购买 nike

我需要映射一些我无法更改的旧版 XML。有几个元素具有数百个与其他元素完全相同的属性。所有属性都具有相同的名称并后缀一个数字。所以 XML 可能如下所示:

<someElement custom1="..." custom2="..." custom78=".."/>
<anotherElmenent custom1="..." custom45="..."/>

“有效”的解决方案是创建一个基类,如下所示:

@XmlAccessorType(FIELD)
public class LotsaCustomIds
{
@XmlAttribute
private String custom1;

@XmlAttribute
private String custom2;
...
}

@XmlType
public class SomeElement extends LotsaCustomIds
{
....
}

但是在这里使用继承是一种耻辱,特别是因为 Java 只有单一继承。我想做的是类似于 JPA/Hibernate 处理嵌入对象的方式,例如:

@XmlType
public class SomeElement
{
@EmbeddedAttributes
private LotsaCustomIds customIds;
....
}

无论如何都要这样做吗?

最佳答案

注意:我是EclipseLink JAXB (MOXy)铅。

您可以使用 MOXy 的 @XmlPath 扩展来映射此用例。当您将其用作 @XmlPath(".") 时,它将把子对象 (LotsaCustomIds) 的内容拉入父对象 (SomeElement) 中。

@XmlType
public class SomeElement
{
@XmlPath(".")
private LotsaCustomIds customIds;
....
}

我的博客中的相关信息

关于java - JAXB 类中的嵌入属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22621349/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com