问题标签 [cxf-xjc-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.
java - 生成带有内置 XSD 限制的 Java 类
在一个大型集成项目上工作,我们也在对我们来回集成的一些数据进行验证。
我们使用 CXF-XJC-plugin 从 XSD 和 WSDL 文件生成 java 类。非常希望将限制添加为生成类的一部分,而不是使用普通的 POJO 类。
一个例子是:
目前创建为:
基本的 setter 和 getter 以及花哨的 fluent api,但没有任何关于 12 个字符的限制逻辑
任何人都会知道如何生成内置限制?
java - cxf-xjc 插件“必须指定 xsdOptions”错误
我正在使用 cxf-xjc 插件来生成 Java 类。这是成功生成 Java 类的 xjc 命令。
xjc -d C:\Users\abc\devEnv\VcloudJavaClasses -catalog C:\Users\abc\devEnv\schema-files\schemas\external\catalog.xml -b C:\Users\abc\devEnv\schema-files\ 1.5\schemas\vcloud\vcloud.xjb -b C:\Users\abc\devEnv\schema-files\1.5\schemas\vcloud\ovf.xjb -b C:\Users\abc\devEnv\schema-files\1.5\ schemas\extension\vmwextensions.xjb C:\Users\abc\devEnv\schema-files\1.5\schemas\master\master.xsd C:\Users\abc\devEnv\schema-files\1.5\schemas\extension\vmwextensions。 xsd -nv
我正在尝试将此 xjc 命令映射到 cxf-xjc 插件。
但我收到以下错误。
[错误] 无法在项目 vcloud-training 上执行目标 org.apache.cxf:cxf-xjc-plugin:2.3.0:xsdtojava (default-cli):必须指定 xsdOptions -> [帮助 1]
这是关于插件的pom部分。
配置有什么问题,所以我收到此错误?
xsd - 由于 ObjectFactory 类中的冲突,cxf-xjc-plugin 未生成 java 类
由于以下错误,我没有使用cxf-xjc maven 插件为 Java生成任何类:
[错误]两个声明导致 ObjectFactory 类中的冲突。文件第 21 行 :/C:/../IdeaProjects/CXFDocInstanceGenerator/XSDToClassGenerator/src/main/resources/IntegralAdmission_bis.xsd
生成涉及到3个xsd
- PExGeneraReport_bis.xsd(使用下面的其他两个)
- PartialAdmission_bis.xsd
- IntegralAdmission_bis.xsd
最后两个 xsd 在以下元素上产生冲突:
包含在两个 xsd 中(PartialAdmission_bis.xsd 和 IntegralAdmission_bis.xsd)
我使用了以下最后一个外部绑定条件:解决问题(连同许多其他尝试)但没有成功!
除了 factoryMethod 名称之外,我还使用jxb:class 和 jxb:elementName没有成功。没有生成类
在一个 xsd 设置中更改元素名称:
xs:元素名称= “模IA ”类型=“模”
解决了这个问题,但我需要维护“模”作为编组的 xml 元素的名称,所以我只需要更改与 java 类或方法名称的绑定!关于设置正确绑定以解决问题的任何想法?
正如@lexicore 在评论中所问的那样,我在下文中报告了该项目的 [mcve]:pom.xml:
绑定PExGeneraReport_bis.xsd的主要 xsd :
第一个导入的 xsd IntegralAdmission_bis.xsd
第二个与上面的 xsd (IntegralAdmission_bis.xsd) PartialAdmission_bis.xsd 冲突:
绑定文件:
项目目录:
java - 如何使用 Spring-Boot 运行 cxf-xjc-plugin?
我正在尝试设置一个应该xsdtojava
使用生成的简单项目cxf-xjc-plugin
。该项目还使用spring-boot
.
结果期间mvn package
:
这很奇怪,因为在类路径上我可以清楚地看到XSDToJavaRunner.class
.
我的 java 项目目录是: javaExecutable = /usr/lib/jvm/java-11-openjdk-amd64/bin/java
, 和
java -version
显示:OpenJDK 64-Bit Server VM (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.3, mixed mode)
我尝试将cxf-xjc-plugin
, 几个jaxb-*
库<dependency>
按如下方式扔到 maven 节点中,但错误仍然存在。我在这里想念什么?
maven - 如何使用 Java 11 和 maven 运行 XJC?
为了从 XSD 生成 java 类(用于读取 XML 文件),我们使用了 jaxb2-maven-plugin 和 Java8。
对于 java 11,我们遇到了很多问题......
哪些库和插件可以工作(今天),允许使用 java 11 和 maven 从 XSD 生成 java 代码?如果可能,请指出不同的解决方案,例如使用 cxf-xjc-plugin、jaxb2-Maven-Plugin 等。
java - 生成源时的 MojoExecutionException cxf-xjc-plugin:3.3.0 java11
我尝试使用 cxf-xjc-plugin 在 maven 项目中从 xsd 生成 java 类。但是当我尝试生成源时,我有一个错误。
我尝试使用另一个版本的插件:3.2.3,但没有帮助。
java - 为什么使用 cxf-xjc-plugin 从 xsd 生成代码(java)在 jdk 11(亚马逊)上不起作用,但在 java 8 上起作用
我将一个项目从 迁移Java 8
到Java 11
,在生成代码时遇到了一些XSD
麻烦cxf-xjc-plugin.
即使我确实升级cxf-xjc-plugin
到版本3.3.0
,在构建项目时仍然会出现异常
我的pom.xml
堆栈跟踪
java - 如何使用 Java 11 中的 cxf-xjc-plugin 生成的类?
使用带有 Java 11 的 Apache cxf-xjc-plugin 工作正常,我能够从 xsd 文件生成 Java 源代码。尝试通过 JAXB 使用这些 Java 类时会出现问题:Java 11 的 JAXB 的可用实现是org.glassfish.jaxb:jaxb-runtime
或org.eclipse.persistence:org.eclipse.persistence.moxy
,它们都将包中的所有类移动javax.xml.bind
到jakarta.xml.bind
. 这是一个问题,因为 cxf-xjc-plugin 生成的 Java 类是使用 package 中的注释进行注释的javax.xml.bind
。
我认为有两种可能的解决方案:
- 是否有使用原始
javax.xml.bind
包的 JAXB(用于 Java 11)的实现? - 有没有办法配置 cxf-xjc-plugin
jakarta.xml.bind
为生成的类注释使用包?
java - java模块化和cxf-xjc-plugin从xsd文件生成包
我有一个模块
--
--
接着my.other.module
--
--
我明白了
package cxf.generated.package.no.one is not visible
在编译代码时。我做错了什么?如何解决这个问题?
附加信息
java - jaxb 绑定 name 属性的自定义值
我想在不更改 xsd 和源文件的情况下自定义元素名称。我期望生成的源应该在 @XmlElement 注释中添加名称属性,这样当我从 java 编组到 xml 时,我会看到自定义的元素名称。源应生成如下所示的自定义元素名称。
我可以使用 jaxb 绑定来控制元素名称吗?下面的 jaxb 绑定仅有助于更改默认生成的属性,而不是元素名称。
好心提醒。谢谢你的时间。
注意:我使用 cxf-xjc-plugin 来生成源代码。