问题标签 [jaxb2-annotate-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 投票
2 回答
1988 浏览

java - 禁止对 JAXB 生成的类发出编译器警告

这可能是这个问题的重复(避免 xjc 生成的代码上的编译器警告),但由于我不太精通 XJC/JAXB 自定义绑定特性,我想我可能误解了上述问题。

我的问题似乎很简单——如何@SuppressWarnings("all")向生成的 JAXB 类添加注释?我们的项目有 0 个警告策略,在 JAXB 生成步骤之后,我们最终得到了 350 多个警告,这只是可怕的噪音。

我希望 XJC 上有一个简单的标志,或者至少是一种提供此类信息的简单方法,但我找不到任何信息。

根据我在旅行中看到的情况,人们会做以下事情之一:

  1. @lexicore 的JAXB2 Annotate Plugin,根据示例,它似乎可以完成这项工作,但添加一个完整的框架和数百 kB 的代码只是为了向一堆类添加简单的注释?真的??,
  2. 自定义 JAXB 绑定(我可能弄错了,但这看起来很神秘,我不确定是否可以这样做),
  3. 将执行搜索和替换后 JAXB 生成的自定义 ANT 目标,
  4. Eclipse 4+ 似乎有一个选项可以过滤掉选定项目的警告,但由于各种历史/遗留原因,我们被困在 Eclipse 3.7.2 (Indigo) 上,
  5. 将执行注释插入的自定义 XJC 插件(如其中一位评论者所建议,请参见此处),
  6. 将所有生成的类放在一个 JAR 中,使 JAR 成为项目的依赖项,然后完全删除生成的代码。

以前,我们通过将与 XML 相关的代码放在一个单独的 Eclipse 项目中,然后禁用项目上的警告/错误来处理这个问题。现在,作为代码整合/重构的一部分,我们已经重新洗牌,不再拥有这种奢侈。

对于这样一个看似微不足道的问题,真的没有优雅的解决方案吗?非常感谢任何反馈/想法。

FWIW,我们的项目使用 Ant 作为构建系统。

0 投票
1 回答
7596 浏览

jaxb - JAXB 架构到 Java 不同的 XmlRootElement 名称和类名称

我有一个 xsd 模式,我从中生成一些 java 类。我正在使用 jaxb 作为一代。

我希望能够生成一个用 注释的类@XmlRootElement,但我希望 @XmlRootElement 名称属性与生成的类的名称不同。

在我的 xsd 中,我定义了以下内容:

这段代码生成以下 java 类:

的 name 属性@XmlRootElement与生成的 Class 的名称相同。我希望生成的类名是CustomerRequest。

我尝试使用jaxb:class定义来更改类名。实际上,此选项更改了类名但删除了@XmlRootElement注释,我需要它存在。

以下xsd:

生成此类:

如何在@XmlRootElement不丢失注释的情况下使注释的属性名称与生成的类名不同?

解决方案更新: 用户 Xstian 提出了使用外部绑定的正确解决方案。仅供参考,我将使用转换为使用内联绑定的解决方案更新我自己的帖子:

0 投票
1 回答
3914 浏览

java - 修改 java 类以在编译时包含特定的注解

我有许多由 JAXB 的 xsd2java 生成的类。我需要在编译时使用特定注释对所有这些类进行注释(例如使用 lombok 注释)。有没有办法做到这一点,例如使用一些代码生成工具?

0 投票
1 回答
2515 浏览

json - 如何使用 annox 插件将 include=JsonSerialize.Inclusion.NON_NULL 添加到 @JsonSerialize

我们使用 maven 插件 maven-jaxb2-plugin 从 xsd 生成 JAXB 对象。以下是我们拥有的依赖项

jaxb2-basics - 0.6.2
jaxb2-basics-annotate - 0.6.2

在我们的 maven 文件中,我们还包括 -Xannotate 和 -XtoString

绑定文件如下

这确实添加了@JsonSerialize(使用=JsonDateSerializer.class)。但是我尝试了以下几个选项来添加 include=JsonSerialize.Inclusion.NON_NULL,但没有奏效

但在所有情况下,都会得到 ValueParseException。那么将JsonSerialize的include(),typing()等参数添加到注释中的正确方法是什么。

另外,基于How to add Jackson annotations to POJO from XSD by JAXB/XJC? 我也试过

这也没有在注释中添加任何包含部分。

0 投票
1 回答
435 浏览

jaxb - XJC注释问题

我正在尝试在我的 xjb 生成的存根上添加不推荐使用的注释。

它不会失败,但不会将 xml 属性放在字段上。这就是 xsd 的外观 -

但是,以下工作

我错过了什么吗?如何在 stub 的 getDetailsForm() 上添加 @Deprecated ?

0 投票
1 回答
1127 浏览

enums - 如何使用 jaxb2-basics-annotate 注释枚举?

我正在使用 maven-jaxb2-plugin 和 jaxb2-basics-annotate 插件从我的 xsd 自动生成 POJO。我已经成功地在 POJO 中生成了注释。我需要将注释应用于枚举中的方法,但无法弄清楚如何去做。

xsd有,

生成的文件

我需要的是在上面的 value 方法中添加 JsonValue 注释。

我尝试了以下和其他一些调整,但在 binding.xjb 中没有任何效果。

有什么叫做 annotateEnum 的东西吗?它可以工作,如果可以的话如何?

请帮忙。

0 投票
2 回答
7110 浏览

java - jaxb2-annotate-plugin 不工作

我想在生成的“Doc”类之前生成“@java.lang.SuppressWarnings("all")”。

问题:jaxb2-annotate-plugin 不生成注释。

我的 pom.xml:

我的 XSD:

我尝试了所有三种方法在 Doc 类之前生成“@java.lang.SuppressWarnings("all")"

0 投票
1 回答
5598 浏览

xsd - 如何在命令行中将 jaxb2-annotate-plugin 与 XJC 一起使用

我在命令行(xjc.bat)中使用“jaxb-ri”构建基于xsd的java类。我想使用 jaxb2-annotate_plugin 在 XmlType 注释中设置命名空间,但我不知道如何将此插件添加到 xjc 类路径并激活它。

这是我的外部 bindings.xjb 文件:

我的命令行是:

当我执行此命令时,我收到一条错误消息,指出不支持“ http://annox.dev.java.net ”。

提前致谢。

0 投票
1 回答
1718 浏览

java - 使用 jaxb2-annotate-plugin 和 XJC 工具自定义注释

我正在尝试在运行时将一堆 XSD 文件转换为 Java 源 POJO。这些 XML 模式将基于某些协议特定的模型定义生成。

我已经使用 JAXB 的 XJC 将架构编译为 pojo。当我使用Jaxb2-annotate-plugin进行自定义注释时开始面临问题。

为了测试,我在我的架构中添加了以下内容,

XJC 从那里开始给出以下错误,

不支持的绑定命名空间“ http://annox.dev.java.net ”。也许您的意思是“ http://java.sun.com/xml/ns/jaxb/xjc ”?

根据各种来源提供的建议,在 XJC 的类路径中添加了所需的 JARS,如下所示,但对我来说似乎没有任何锻炼。

xjc -p com.test -classpath="jaxb2-basics-annotate-1.0.2.jar;tools-0.4.1.5.jar;comm‌​on‌​s-logging-1.1.1.jar;jaxb2-basics-runtime- 0.9.5;annox-1.0.1.ja‌​r;javaparser-1.0.11.jar;jaxb2-basics-tools-0.9.5.jar" - 扩展 myschema.xsd

我找不到使用带有 jaxb2-annotate-plugin 的 XJC 生成 java 源代码的合适示例。我不能在我的 maven/ant 中添加它,因为我提到我必须在运行时生成 xsd 和 pojo。

如果使用 XJC 工具作为 java 进程是唯一的方法,请告诉我,

  • 类路径中要包含哪些依赖 jar?
  • 如何激活插件和 -Xannotate 开关?

如果可以使用此插件以其他方式完成 pojo 生成,请提出相同的建议。

我是jaxb的新手。任何建议都会非常有帮助。提前致谢!

0 投票
0 回答
700 浏览

eclipse - 如何使用 jaxb2-annotate-plugin

我刚刚学习了如何使用 JAXB(使用 Maven)从 XSD 生成 Java 类,现在我需要在生成的类中添加一些注释。我发现jaxb2-annotate-plugin它正是这样做的,但我不知道如何在我的项目中使用它。谁能提供一些分步教程或有用的解释?任何帮助,将不胜感激。