问题标签 [moxy]

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 投票
1 回答
1534 浏览

java - 让 MOXy @XmlPath 使用命名空间

我正在编写一个脚本来使用 JAXB 和 MOXy 解析 KML 文件,但我很难让 @XmlPath 使用提供的命名空间。

如果我的 KML 看起来像这样:-

...我的 bean 看起来像这样:-

...然后,kml.getName()返回Test,它应该像它一样工作。

但是,如果我的 KML 包含这样的命名空间:-

...我的 bean 看起来像这样:-

...然后,kml.getName()返回null

我确实有jaxb.properties正确的包级别,并且我正在使用以下 MOXy 的依赖项:-

我到底在这里想念什么?谢谢。

0 投票
1 回答
276 浏览

java - JAXB / EclipseLink:动态取消映射类型

我有一项服务应该能够在不同的细节级别或不同的详细模式下提供“用户配置文件”。

这些用户配置文件与 JPA2 在数据库中同步,并且一切正常。使用 MOXy (EclipseLink) 我还在 XML 中序列化配置文件,这里一切正常。

但是,详细模式(BRIEF、SUMMARY、FULL)是通过以 XML 序列化的用户配置文件中是否存在特定元素来实现的(例如元素 QueryHistory,在使用简要详细模式时不应序列化)。

简而言之:我想向 JAXBContext 指定某些元素不能被序列化,并且我想在运行时指定它。

如果我很好理解,MOXy 可扩展模型 - 刷新http://blog.bdoughan.com/2011/06/moxy-extensible-models-refresh-example.html能够做到这一点,但这里有人知道更简单的方法吗?实现这个功能?

0 投票
1 回答
78 浏览

jaxb - moxy:RuntimeTypeInfoSet 的等价物是什么

在 jaxb-impl 中,我可以获得一个 RuntimeTypeInfoSet 对象,该对象可用于从 xml 元数据映射到适当的 java 反射数据。moxy 的等价物是什么。

更新:我的用例是查找映射到元素名称的属性。我当然可以通过使用java反射来做到这一点,但它很麻烦。

0 投票
1 回答
8739 浏览

jaxb - MOXy JAXB:如何从编组中排除元素

我有我的模型:

我这样填写对象:

这将产生下一个 XML:

如您所见,'id' 属性没有 @XmlPath 注释,但这也存在于最终 XML 中。我知道我可以避免将 'id' 属性设置为 null 的这种行为,但我想知道是否有其他方法。关键是我的真实模型比这个大得多,我必须将很多属性设置为空。

有什么帮助吗?

提前致谢。

0 投票
1 回答
1097 浏览

java - 将 MOXy 的元数据与实现 java.util.Map 的类一起使用时的 NPE

情况

我正在使用 EclipseLink 的 MOXy,并且正在尝试将外部 OX 映射 XML 与实现 Map 接口的类一起使用。但是,每次我尝试创建 JAXBContext 时,都会得到以下 NPE:

细节

仅当被映射的类实现 java.util.Map 接口时,才会出现此问题。如果我正在映射的类没有实现该接口,那么一切正常。这是我要映射的类的简化示例:

这是我想使用的 MOXy OX 元数据的简化示例:

这是我创建 JAXBContext 的方式

我正在使用 EclipseLink 2.3.2 版,以防万一。我也尝试过使用 2.2.1 版,结果相同。

我的问题

这是我第一次尝试在实现 java.util.Map 接口的类上使用 JAXB,我很好奇我是否遗漏了一些基本的东西。我不希望 OX 映射与 Map 的名称/值对一起使用,而是与添加到类中的自定义 getter 和 setter 一起使用。

这样的配置应该工作吗?

额外细节

  1. 示例代码中使用的 DelegatedMap 没有扩展java.util.HashMap,它只是包装了一个实例并实现了 Map 接口。此外,该类使用@XmlAccessorType(XmlAccessType.NONE) 进行注释。
  2. 无论哪个抽象类实现了我用于 SampleClassA 的 Map 接口,我都会遇到相同的错误。如果 SampleClassA 扩展了一个未实现映射的类,则一切正常。
  3. 我正在使用的代码库需要许多类来实现 Map 接口。
0 投票
1 回答
878 浏览

eclipselink - MOXy 可以仅使用 getter 序列化 POJO,而无需在每个 getter 上显式放置注释吗?

所以鉴于我有班级名称:

我想使用映射 XML 序列化此类的实例,而不必列出映射 XML 中的每个属性:

所以理想情况下,我希望有这样的映射文件:

我有一些像这样的遗留 DTO 类仅用于具有 30 个或更多属性的序列化(故意没有设置器),理想情况下,我希望避免在映射文件中列出每个属性。

0 投票
1 回答
1443 浏览

jaxb - JAXB/MOXy 可以像常规类(非枚举)一样序列化枚举吗?

想象一下我有这样定义的枚举:

默认情况下,MOXy 会将其序列化为 JSON,如下所示:

有没有办法配置 MOXy(在映射文件中)以像常规类一样序列化枚举:

0 投票
1 回答
704 浏览

jaxb - 可以在 JAXB/MOXy 中为整个类或在映射文件中全局定义空值序列化策略吗?

我只找到了一种为每个属性定义空处理策略的方法:

有没有办法在 xml-bindings 级别或至少在 java-type 级别的映射文件中全局定义它?

0 投票
2 回答
3836 浏览

java - 使用扩展类时未调用 JAXB afterUnmarshall

我编写了一个BaseBeanEx扩展 JAXB 注释 bean () 的 bean ( BaseBean)。它BaseBean位于数据结构中某处的列表中,无法更改。该软件会在BaseBeanEx需要时进行显式转换。我还写了一个ObjectFactoryto createBaseBeanEx而不是BaseBean. 这一切都很好,但现在我添加了一个永远不会被调用的afterUnmarshal方法。BaseBeanEx

这是一个错误还是根据规格?如果以后是这种情况,是否有一些优雅的解决方法?

我正在使用默认的 JAXB 引擎。

0 投票
2 回答
455 浏览

java - XmlDiscriminatorNode、XmlSchema 命名空间和 elementFormDefault=QUALIFIED

我正在使用eclipselink-2.3.2。我的包裹有注释:

@XmlSchema(namespace = "http://example.com/namespace", elementFormDefault = XmlNsForm.QUALIFIED)

我有以下课程:

当我尝试像这样反序列化有效的 XML 时:

<box xmlns="http://example.com/namespace"><a thetype="b" /></box>

我得到描述性异常:

如果我@XmlSchema从包中删除 并xmlns从根元素中删除属性,它就可以工作。如果我从 QUALIFIED 更改为 UNQUALIFIED,只要我给它提供丑陋的前缀 XML,它就可以工作。

我假设 unprefixed 会起作用,因为它仍然声明默认命名空间,但是尽管没有例外,但该字段仍然为空。

单步执行 EclipseLink 代码后,我可以看到QNameInheritancePolicy.classFromRow调用时UnmarshalRecord.get,它正在尝试访问 namespaceURI“http://example.com/namespace”下的属性“thetype”。

当我将 XmlScehma elementFormDefault 更改为 UNQUALIFIED 时,namespaceURI 返回 null 并且属性被正确检索。