问题标签 [maven-jaxb2-plugin]

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 回答
6086 浏览

java - 使用 maven-jaxb2-plugin 生成 java 类

我对 Jaxb 和这个 maven-jaxb2 插件非常陌生

这是我的 .xsd 文件:

这是我的 .xjb 文件:

当它生成它时,它给了java类有点像:

它应该在哪里给出名称=对象名称,例如这里的“用户”我知道如果我写这样的绑定它会生成

但我不想为用户和用户列表重复相同的代码,有什么方法可以通过注释或定义正则表达式来完成。请提出一些方法。

我只是想知道在这段代码中写什么

因此,当它创建用户类时,它会显示 @xmlRootElement(name='user') 并且对于其他类 @xmlRootElement(name='userList') 和其他类类似。

0 投票
1 回答
418 浏览

jaxb - 如何使用 jaxb2 maven 插件生成@TABLE 标签

嗨,我遵循了一些教程并编写了一个如下模式:

它生成以下内容:

我想要这样的东西:

所以我想要的基本上是表名,它选择我提供的硬编码但我希望它显示类名或类对象名。

0 投票
1 回答
2101 浏览

java - 用于覆盖或删除 XMLSchemaType xs:token 的 JAXB 绑定

我正在使用 maven jaxb2 插件从 xsd 生成模型类。xsd 使用 type=xs:token 指定某些元素,如下所示:

这会导致将以下注释添加到生成模型的字段中:

问题是 CollapsedStringAdapter 删除了新行等(这是 xs:token 的正确行为),但我想避免这种情况。

如何从元素中删除 xs:token 类型或使用 JAXB 绑定将其更改为 xs:string?简单的解决方案是从 xsd 中删除类型,但是否可以在不修改 xsd 的情况下使用绑定?

0 投票
1 回答
580 浏览

java - 使用具有多个模式的 JAXB 解析 Xml,每个模式都在一个单独的 Maven 模块中

我目前正在努力让 Maven JAXB 插件为一组非常复杂的 Xml 模式生成模型。我从一个 Maven 模块中的所有模式开始。生成的模块能够解析该语言的任何文档。不幸的是,由于我需要在另一个模块中导入该模式和模型,我不得不将这个模块分成几个模块。在多模式模块的情况下,剧集文件似乎存在问题。

例如,现在我有一个模式定义了 xml 格式的一般结构并定义了基本类型(我们称之为 A)。现在还有其他几个模式,每个模式都实现了这些基本类型的子类型(我们称其中之一为 B)。

我创建了模块,所以 B 扩展了 A。不幸的是,现在我似乎无法再解析文档了。我可以看到,在模块 B 中,已为 A 创建了一个 ObjctFactory,其中仅包含 B 从 A 扩展的所有类型的定义。所有其他类型都不再存在。

只要此 ObjectFactory 存在,我就无法解析任何内容,因为缺少根元素的定义。如果我删除它,则 B 中定义的所有元素都会从生成的对象树中丢失。

将模块中的原始 ObjectFactory 与所有模式进行比较后,我可以看到在第一个版本中,有大量的“替代方案”告诉解析器可能会出现哪些元素。在拆分版本中,这些都丢失了,所以我想如果我删除 B 中的部分 ObjectFactory,则使用 A 中的那个,而这个不知道 B 中的元素。

那么如何让 JAXB 解析 A 和 B 中的所有元素。有什么方法可以扩展 ObjectFactories 吗?如果是,这是如何完成的?

我想接下来可能会引起麻烦的事情可能是我有几个扩展 A 的模式,所以我有包含 A、B、C、D 和 E 的文档,其中 B、C、D 和 E 都扩展了 A,但与每个模式完全无关其他。我想在这种情况下扩展不会是一种选择。

0 投票
0 回答
591 浏览

java - 在 xjc 生成的代码上避免编译器警告

我的根本问题是如何从“未经检查的泛型类型”Eclipse 编译器警告中受益,但在问题视图中没有这些警告列表被 xjc 从 xsd 文件生成的 java 类的噪声污染(通过 maven-jaxb2-插入。)

我读过其他地方,我可以忽略每个源文件夹的编译器警告,这很好,但我无权将生成的代码放在它自己的源文件夹中。:(

鉴于我的情况,我的假设是最简单和最持久的方法是使用 jaxb 绑定文件 (.xjb) 在 jaxb 生成的所有类的类级别添加 @SuppressWarnings。但是我对使用 xjc 不是很聪明,我只是看到它/maven/eclipse 是如何连接在一起以从 .xsd 文件生成 .java 文件的。所以这导致了2个问题。首先,我认为这可能/容易吗?其次,如果这很容易,那么开始实现这一目标的好方法是什么?

0 投票
1 回答
499 浏览

cxf - Spring WebServiceTemplate 错误地使用 Xerces 来解组 XML 响应

我正在使用 Spring WST 并使用 WCF SOAP 1.1 Web 服务。我使用 Apache 的 CXF Maven 插件从 WSDL 生成 Web 服务客户端。当我检查生成的类时,它看起来已经使用了 JAXB,并且此时一切都符合预期。

但是,当我向 Web 服务(通过 Spring WST)发送请求时,响应对象使用 Xerces ElementNSImpl 来表示响应。

这是正在发生的事情的一个例子;

  1. Apache CXF 生成对象名称 PersonResponseObject、PersonRequestObject
  2. 我填充 PersonRequestObject 并在 Spring WST 的帮助下提交
  3. WCF 服务按预期返回内容(我可以将 SOAP 响应打印到控制台),但是在解组期间,PersonResponseObject 被注入 Xerces 类型的 ElementNSImpl 类型。

在我看来,我需要在解组过程中明确强制使用 JAXB,但是我不确定这是否是我需要告诉 Spring Tenplate 或其他地方的事情。

任何熟悉这个问题并有任何建议的人?返回的 XML 示例

0 投票
0 回答
35 浏览

maven - 在多个项目中重用 JAXB 绑定

我正在寻找一种重用绑定的方法,以避免每次使用来自其他项目的 XSD 的类型时重新生成类。
我正在使用 maven 和 maven-jaxb2-plugin。
假设我有两个项目 A 和 B。
项目 A 定义 a.xsd 并配置了 maven-jaxb2-plugin 以从 a.xsd 生成类 A1、A2、...
项目 B 依赖于项目 A 并定义 b .xsd,它使用 a.xsd 中定义的一些类型。B 在配置了 maven-jaxb2-plugin 以从 a.xsd 生成类 B1、B2、... 为了避免在构建 B 时生成类 A1、A2、...,我包括如下部分在项目 B 中使用的绑定配置中。

这工作很好。
现在假设我有项目 C 也取决于项目 A 并定义使用来自 a.xsd 的类型的 c.xsd。
为了避免重新生成,我可以在项目 C 的绑定配置中包含上述配置,但这会导致我多次配置同一个绑定块。
是否可以在某处配置通用绑定并将其包含在 B 和 C 的绑定配置中以避免冗余?

0 投票
1 回答
869 浏览

xsd - JAXB 2 Maven 插件 - 情节的使用 - xsd 的通用项目

我想要一个项目 A,其中包含一些常用的 XML 模式文件和一些依赖于生成的类(从 jaxb 生成)的 Java 类,使用命名空间 a 和包 a,并且我想要一个项目 B 依赖于项目 A。

在项目 B 中,我想要一个使用项目 A 中的一些 XML 类型的 XML 模式文件,项目 b 具有命名空间 b,然后 JAXB 需要将模式 b 中的 java 类生成到包 b 中。

我知道剧集和目录可能会有所帮助,但我不能阻止 jaxb 在项目 b 中创建两次来自模式 a 的 java 类。

这是我的Maven配置:

项目A:

项目 B:

b.xsd

0 投票
1 回答
749 浏览

jaxb - JaxB在解组时将空元素转换为null

我有一个 WSDl 元素,例如:

在 SOAP 请求中,如果我为 listElement 发送空元素,例如:

然后 JaxB 正在创建类似的东西:

因此,我将 listElement 作为与测试对象一起排列的单个数组。

我想做一些可以在传递空元素时将 listElement 设置为 Null 的事情。我不能使用@XMLJavaAdapter 注释,因为这是合同第一,并且所有输入对象都是生成的。

我需要在 WSDL 级别或生成级别添加某种绑定。

任何帮助都会受到高度评价?

0 投票
2 回答
2267 浏览

maven - Add explicit source directory in jaxb2-maven-plugin for schemagen

I would like to generate schema from JAXB annotated classes. For this, I am using jaxb2-maven-plugin. The plugin by default scans src/main/java folder for included sources. I would like to specify an extra folder to scan for java classes which is not maven source path.

Can anyone please help?

#xA;