问题标签 [jaxb]

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.

0 投票
5 回答
10446 浏览

java - 在我的类路径中选择了 Java 的默认 JAXB 实现

我编写了一个使用 JAXB 进行 XSL 转换的 Java 应用程序。我在类路径中包含了 saxon9.jar,这样我就可以在命令行上使用 XSLT 2.0 而不是 XSLT 1.0。

我在我的 XSL 中包含了代码来报告使用的 XSLT。

它报告。

这是作为 JVM 一部分的默认实现。

如何让它使用我指定的撒克逊语?


跟进:

所以这些方法都不起作用(除了将 saxon jar 放在 endorsed 目录中),但它们都应该起作用。似乎我使用“-jar myApp.jar”和想要替代 XSLT 实现的组合是不兼容的。换句话说...

java -Djavax.xml.transform.TransformerFactory=net.sf.saxon.TransformerFactoryImpl -classpath ./lib/saxon9.jar:./ -jar myApp.jar

...不起作用,但这确实...

java -Djavax.xml.transform.TransformerFactory=net.sf.saxon.TransformerFactoryImpl -classpath ./lib/saxon9.jar:./myApp.jar org.dacracot.myApp

...有趣的是,我什至不必指定工厂,我得到了撒克逊版本...

java -classpath ./lib/saxon9.jar:./myApp.jar org.dacracot.myApp

0 投票
3 回答
13242 浏览

binding - JAXB:匿名简单类型作为枚举?

当通过 XJC 编译器从 XSD 生成 Java 时,对于具有匿名 simpleTypes 的元素,我总是得到 java.lang.String 类型,如下所示:

当然,我想要一个枚举。有没有办法欺骗 XJC 生成和使用一个?

我们正在使用 JAXB 2.1.3。注意:在您问之前,不,我无法更改架构并使其适应 XJC 的错误。

0 投票
4 回答
26911 浏览

java - 如何使用 JAXB 实例化一个空元素

我使用 JAXB 创建 XML 消息。我需要创建的 XML 是(为了简单起见):

我的代码如下所示:

问题:该header元素未显示(标题为null)。当 header 设置为空字符串时,将显示以下内容:

当我使用 as typeObject而不是 时String,结果更糟:

顺便说一句:我正在使用此代码来创建 XML 字符串。

是否有可能获得一个空标签?

0 投票
4 回答
13285 浏览

java - JAXB XML 输出格式问题

我有具有以下结构的 Java 类(类名没有任何含义,我只是在编造它们)。

我遇到的问题是在编组测试实例时 JAXB 生成的 XML 输出。XML 输出将始终如下所示:

如您所见,某些元素没有正确缩进(即最深的元素、计数和周期)。这是为什么?我创建 JAXB 上下文的方式有问题吗?或者 JAXB 可以递归缩进的元素数量是否有最大限制?我该如何解决这个问题?请注意,我还将 JAXB_FORMATTED_OUTPUT 设置为 true,但仍然得到不正确的缩进。

谢谢。

0 投票
9 回答
89642 浏览

java - 什么是 JAXB,我为什么要使用它?

这里有人发誓 JAXB 是自切片面包以来最伟大的东西。我很想知道 Stack Overflow 用户认为 JAXB 的用例是什么,以及是什么使它成为该案例的好或坏解决方案。

0 投票
6 回答
67141 浏览

java - JAXB 继承,解组到编组类的子类

我正在使用 JAXB 来读取和写入 XML。我想要的是使用一个基本的 JAXB 类进行编组和一个继承的 JAXB 类进行解组。这是为了允许发送方 Java 应用程序将 XML 发送到另一个接收方 Java 应用程序。发送方和接收方将共享一个公共 JAXB 库。我希望接收器将 XML 解组为扩展通用 JAXB 类的接收器特定 JAXB 类。

例子:

这是发送方使用的通用 JAXB 类。

这是在解组 XML 时使用的接收器特定的 JAXB 类。接收器类具有特定于接收器应用程序的逻辑。

编组按预期工作。问题在于解组,Person尽管 JAXBContext 使用 subclassed 的包名称,它仍然解组ReceiverPerson

我想要的是解组到ReceiverPerson. 我能够做到这一点的唯一方法是@XmlRootElementPerson. 不幸的是,这样做可以防止Person被编组。就好像 JAXB 从基类开始并向下工作,直到找到@XmlRootElement具有适当名称的第一个。我试过添加一个createPerson()返回的方法,ReceiverPerson但这ObjectFactory没有帮助。

0 投票
1 回答
479 浏览

java - Eclipse RCP 案例研究

我有兴趣了解 Eclipse RCP,我有一些基础知识,但我想了解更多它的能力。因此,我鼓励自己创建一组需求,分析它们,并就如何使用 Eclipse RCP 作为基础框架来满足它们提出设计决策,并最终使用 Eclipse RCP 实现它们。现在,也许要求太难了,或者我对 Eclipse RCP 还不太了解,我正在努力想出合适的解决方案来满足要求!

以下是要求的总结(请原谅可能缺乏细节,这只是一个鼓励自己的例子):

我想要一个 Eclipse RCP 应用程序来监控一些服务器。这些服务器最初将是应用程序知道的程序(意味着它确切地知道它们的来龙去脉)。然而,在未来,应用程序应该能够允许用户指定具有不同特性的任意程序以供应用程序监控(因此不仅是已知的服务器,还包括一些以前不知道的其他服务器)。该应用程序还需要一个 XML 配置文件,其中包含需要监视的服务器的所有详细信息(例如主机、端口、用户名和密码)。此 XML 配置文件将使用 JAXB 进行编码和解码。

所以基于上述要求,我想出了以下细节:

XML 将如下所示:

应用程序知道的服务器位置和位置。

在源代码中,类的层次结构如下:

组件 <--- 服务器 <--- 服务器 A、服务器 B

ServerA 和 ServerB 从 Server 下降并分别映射到和元素。

配置的点条目位于名为 Configuration 的类中,该类包含一个 ServerA 列表和一个 ServerB 列表。现在,因为应用程序应该能够监视它不知道的其他程序,所以 XML 配置文件也应该是可扩展的,所以 Configuration 类还包含一个 Object 列表,该列表映射到用户在配置文件。

配置.java

现在,你们也会这样做来解决问题吗?我想,我不知道,我只是对应用程序能够监视用户指定的其他程序的要求感到困惑。我知道我一开始就设置了它,但我这样做是因为“这看起来像是可以利用 Eclipse RCP 的扩展点的东西”,但是现在已经跳入配置文件,我不清楚应该如何配置文件与plugin.xml有关吗?

在我的脑海中,我希望配置文件能够指定应用程序需要监控的程序的详细信息(主机、端口、用户名和密码)。plugin.xml 用于指定应用程序还需要监视的用户定义程序的扩展点和扩展。那么这是否意味着,对于用户自定义的程序,最终用户需要在plugin.xml中将它们配置为扩展,然后在配置文件中指定它们的其他细节?

0 投票
1 回答
29120 浏览

java - JAXB 给我: java.lang.IllegalArgumentException: is parameter must not be null

我正在使用 JAXB 将一些 XML 解组为 Java 对象:

我的代码看起来有点像这样:

但是,当我运行此代码时,出现异常:

这是怎么回事?

0 投票
6 回答
10982 浏览

java - 编组时如何防止 JAXB 绑定 @XmlRootElement 的超类方法?

我有一个被注释为@XmlRootElementwith的类@XmlAccessorType(XmlAccessType.NONE)。我遇到的问题是超类的方法正在被绑定,当我不希望它们被绑定并且无法更新类时。我希望有一个注释可以放在根元素类上以防止这种情况发生。

例子:

我希望只有注释的方法@XmlElementPerson被绑定和编组,但超类的方法也都被绑定了。生成的 XML 然后包含太多信息。

如何防止超类的方法被绑定而不必注释超类本身?

0 投票
3 回答
7489 浏览

java - 用 Java 将 XML 文档保存在数据库中(Hibernate 和 JAXB 的组合)

我正在寻找一种使用 Hibernate 将 XML 文件保存在数据库中的解决方案。

问题是,XML 文件的结构与 Hibernate-beans 不同。

我正在尝试使用 JAXB 将 XML 内容序列化为 Hibernate bean。

请想象以下场景: 有这个 xml 文件:

现在我想将 property1 和 detail1 保存在一个 bean 中:

有谁知道我可以使用哪些 JAXB 注释来解决该问题?