没有定义 Class 或注解的 JAXB

JAXB Without Defining Class or Annotations

我想使用 JAXB 来读写一个非常大的文件中的一小部分 XML。我希望能够做到这一点,而不必为 XML 中的每个元素和属性定义一个根对象 class。下面的示例概述了我的需要:

我有 XML

<A>
  <B/>
  <C/>
  <D/>
</A>

我想使用 JAXB 来获得两个函数

public String getC() {
    ...    
    return C
}

public void writeC(String C) {
    ... // replaces C value with the paramter C inside the XML
}

无需为 B、C 和 D 定义新的 class A。

如何使用 JAXB 执行此操作?有没有比 JAXB 或简单文件 Reader 和 Writer 更快/更有效的方法来实现我想要做的事情?

这样做的目的是使用 GUI 加载和编辑存储在 XML 文件中的配置设置。谢谢。

我设法改用 StAX 解决了这个问题。它为我提供了完全的灵活性来选择我需要的标签和属性。

有一个名为 EclipseLink MOXy 的项目可以使用 JAXB 解决此类问题。它允许您将现有的 java bean 映射到 xml 或从 xml 映射,并使用 xml 或 json 为映射描述定义默认 JAXB 的异常。