说,我有两节课:
@XmlRootElement
class A {
@XmlElement
String propertyOfA;
@XmlElement
B b;
}
class B {
@XmlElement
String propertyOfB;
}
JAXB返回按照以下方式格式化的XML:
<a>
<propertyOfA>valueA</propertyOfA>
<b>
<propertyOfB>valueB</propertyOfB>
</b>
</a>
我的问题是 如何展平XML中的层次结构? 这样我有:
<a>
<propertyOfA>valueA</propertyOfA>
<propertyOfB>valueB</propertyOfB>
</a>
可以通过注释完成吗?
目前,我正在考虑为A创建一种包装类,该包装类将以我希望在XML中看到它们的方式构建字段。有没有更好的办法?
注意: 我是 EclipseLink
JAXB(MOXy)的
负责人,并且是 JAXB
2(JSR-222)
专家组的成员。
您可以使用MOXy的@XmlPath
扩展来映射此用例:
import java.xml.bind.annotation.*;
import org.eclipse.persistence.oxm.annotations.XmlPath;
@XmlRootElement
class A {
@XmlElement
String propertyOfA;
@XmlPath(".")
B b;
}
想要查询更多的信息
问题内容: 我有一个使用JAXB编组为XML的对象。一个元素包含一个包含引号(“)的字符串。生成的XML具有”“所在的位置。 即使通常首选这样做,我也需要我的输出来匹配 旧 系统。如何强制JAXB不转换HTML实体? - 感谢您的答复。但是,我从未见过调用处理程序escape()的情况。您可以看看我在做什么吗?谢谢! - 输出是这样的: 如您所见,该回调从未显示。(一旦调用了回调,我将担心让它实际
问题内容: 显然在JAXB的版本2中-验证器类已被弃用- 这是否意味着编组器会自动验证您的XML?如果是这样,它似乎并没有抱怨我正在形成一些不正确的XML!谁能给我一些有关如何验证编组XML以确保其符合XSD架构的建议。 非常感谢。 问题答案: 通过使用JAXP 1.3 Schema Validation Framework,在JAXB 2.0中扩展了验证功能。 在哪里之前: 现在您需要执行以下操
问题内容: 考虑这个例子- 我有一个称为Report的类,该类具有Message类型的字段。Message类具有一个称为“ body”的字段,该字段是一个字符串。“ body”可以是任何字符串, 但有时包含格式正确的XML内容 。如何确保当“正文”包含XML内容时,序列化采用XML结构的形式而不是当前的结构? 这是带有输出的代码- 报告 类别 讯息 类别 主要 输出如下- 如您在上面的输出中看到的
问题内容: 因此,我创建了一个名为CustomTitlebarActivity的Activity子类。本质上,我的应用程序中的每个主要活动都将具有一个自定义标题栏,该标题栏具有许多常用功能,例如主页按钮,标题,搜索按钮等。在当前的实现中,我仍然在布局XML中显式使用include语句每个CustomTitlebarActivity: 我似乎应该能够在CustomTitlebarActivity中执
问题内容: 如果一个元组是不可变的,那么为什么它可以包含可变项呢? 似乎矛盾的是,当可变项(例如列表)确实被修改时,它所属的元组保持不变。 问题答案: 这是一个很好的问题。 关键的见解是,元组无法知道其中的对象是否可变。使对象可变的唯一方法是拥有一种更改其数据的方法。通常,无法检测到此情况。 另一个见解是Python的容器实际上不包含任何东西。相反,它们保留对其他对象的引用。同样,Python的变
问题内容: 我可以使用“包装器”类来编组ObservableList,如下所示。但是我不能将其解组回以前的wrapper类。 这个想法是:我有一个“支出”的ObservableList。我将此列表放入包装器类中,并将该类保存为XML。结果看起来像这样: 我无法将其带回包装对象。我真的很感谢任何帮助。 主类JAXBContext(对所有人可见): 主类SAVEBUTTON: 主类-LOADBUTTO