xjc 相关问题

XJC是一个JAXB工具,用于将XSD(XML Schema)编译为Java源代码。

JAXB XJC:如何生成java类

我正在尝试使用xjc工具来根据一些模式生成java代码。 我正在执行这个命令: xjc -d 生成 -p net.mycom.tech 。 第一个问题是, -b bindings.xjb 是什么

回答 1 投票 0

xs:integer 的 JAXB 绑定到 Java Integer 而不是 BigInteger

应避免以下讨论。这个问题不是什么: 使用 xs:int 而不是 xs:integer。 使用原始 int 而不是 Integer。 你为什么需要这个。 如果你...你会怎么做

回答 5 投票 0

使用 jaxb2:xjc 的正确 pom 配置是什么

我正在尝试使用 jaxb2:xjc 从多个 .xsd 文件生成域 java 文件。 以下是我的 pom.xml 文件的构建部分: 我正在尝试使用 jaxb2:xjc 从多个 .xsd 文件生成域 java 文件。 以下是我的 pom.xml 文件的构建部分: <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>jaxb2-maven-plugin</artifactId> <version>3.2.0</version> <executions> <execution> <id>xjc-atom-schema</id> <goals> <goal>xjc</goal> </goals> <configuration> <clearOutputDir>true</clearOutputDir> <outputDirectory>${project.basedir}/src/main/java/org.greenbuttonalliance.gba_sandbox/common/model/atom</outputDirectory> <packageName>org.greenbuttonalliance.gba_sandbox.common.model.atom</packageName> <sources> <source>${project.basedir}/src/main/resources/atom.xsd</source> </sources> </configuration> </execution> <execution> <id>xjc-energy-schema</id> <goals> <goal>xjc</goal> </goals> <configuration> <clearOutputDir>true</clearOutputDir> <outputDirectory>${project.basedir}/src/main/java/org.greenbuttonalliance.gba_sandbox/common/model/energy</outputDirectory> <sources> <source>${project.basedir}/src/main/resources/usage.xsd</source> </sources> <packageName>org.greenbuttonalliance.gba_sandbox.common.model.energy</packageName> </configuration> </execution> <execution> <id>xjc-retailcustomer-schema</id> <goals> <goal>xjc</goal> </goals> <configuration> <clearOutputDir>true</clearOutputDir> <outputDirectory>${project.basedir}/src/main/java/org.greenbuttonalliance.gba_sandbox/common/model/retailcustomer</outputDirectory> <sources> <source>${project.basedir}/src/main/resources/retailcustomer.xsd</source> </sources> <packageName>org.greenbuttonalliance.gba_sandbox.common.model.retailcustomer</packageName> </configuration> </execution> </executions> </plugin> </plugins> </build> 我能够成功执行 mvn clean install,但是当我尝试执行 mvn jaxb2:xjc 时,我收到以下错误消息: Failed to execute goal org.codehaus.mojo:jaxb2-maven-plugin:3.2.0:xjc (default-cli) on project common: : MojoExecutionException: NoSchemasException 上面的 pom 构建部分位于公共子目录中,旨在用作我的项目目录结构中显示的其他子目录的库 jar: 正在common子目录中执行mvn jaxb:xjc命令。 如有任何帮助,我们将不胜感激。 我尝试了几个项目组织,并最终通过将 .xsd 文件移动到公共子目录的资源文件夹而不是将它们放在资源目录中的模式文件夹中来使 mvn 安装正常工作。 我已使用 -X 诊断选项执行 mvn jaxb2:xjc 命令。根据输出,Jaxb2 使用默认输出目录,尽管 outputDirectory 被 org.codehaus.mojo 插件配置内容覆盖。 这是否意味着真正的问题是 xjc 没有正确处理公共子目录中的 pom.xml 文件,而是真正在查看另一个 pom.xml 文件? 短期目标 jaxb2:xjc 只能由具有单一配置的用户使用,因为它是使用 default-cli id 执行的(请参阅使用正常 clean install 和仅使用 jaxb2:xjc 运行时的 mvn 输出和插件执行) 查看另一个类似插件的相关问题:https://github.com/highsource/jaxb-tools/issues/520#issuecomment-1987970784 最初问题的另一个提示:您应该在 src/main/java 目录之外生成源,但更多地在 target/generate-sources/xjc-XXX 之类的目录中生成源,其中 XXX 对于每个不同的执行都是不同的。

回答 1 投票 0

如何为 XSD 中的基本类型生成 @XmlRootElement 类?

我在使用 XJC 从 XSD 生成具有适当 JAXB 注释的 Java 类时遇到一些问题。 我有一个相对简单的 XSD 文件,定义了我的 XML 架构。 t 中的复杂类型...

回答 3 投票 0

将 XJB 与 jaxb2-maven-plugin 一起使用

我有一个多模块maven项目,结构如下: 根模块 |__模块-a | |__src | |__main | |__xsd | | |__my.xsd | ...

回答 3 投票 0

迁移到 jaxb3/java21 后,获取元素“jxb:bindings”的前缀“jxb”未绑定异常

将服务迁移到 java21 和 jaxb3.0 时,从 wsdl 生成 xjb 文件的类会给出 'org.xml.sax.SAXParseException; XXX 元素“jxb:bindi...”的前缀“jxb”

回答 1 投票 0

从 XSD 文件生成类

我尝试使用 JAXB 从 spring-beans.xsd 生成 Java 类(仅用于训练目的),但出现此错误: 正在解析架构... [错误] 属性“Ref”已定义。使用<...

回答 2 投票 0

如何利用 Java 11 中的 cxf-xjc-plugin 生成的类?

使用 Apache cxf-xjc-plugin 和 Java 11 工作正常,我能够从 xsd 文件生成 Java 源。当尝试将这些 Java 类与 JAXB 一起使用时,问题就出现了:可用...

回答 2 投票 0

引用xjc生成的文件的正确方法是什么

我刚刚使用 jaxb xjc 自动生成一个类,这样我就可以在我的 Java 项目中编组和解组 xml 属性。我通过将以下内容添加到我的 POM 中来完成此操作 <

回答 1 投票 0

使用xjc向jaxb类添加附加属性

我有一个巨大的xsd 文件,我想使用xjc 将其转换为jaxb 类。我已经成功完成了这一点,既使用 Maven,又手动使用 xjc.sh 脚本。 但我确实有一个非常具体的

回答 1 投票 0

如何使用 JAXB 从 xsd 生成实现 Serialized 接口的 Java 类?

我想将缓存引入到现有的 Spring 项目中,该项目使用 JAXB 来公开 WebServices。缓存将在端点级别完成。为了做到这一点,从...生成的类

回答 7 投票 0

如何使用gradle运行jaxb xjc任务?

我为 jaxb/xjc 选择了 3 个 gradle 插件,但没有一个对我有用。 对于每种情况,我都将 maven 模型 xsd maven-4.0.0.xsd https://maven.apache.org/xsd/maven-4.0.0.xsd 放在 src/main/xsd 中。 (...

回答 1 投票 0

如何让 JAXB 使用自定义命名空间前缀

当使用 JAXB 将对象编组为 XML 时,它会自动生成名称空间前缀,例如 ns2:。不幸的是,我必须与之通信的系统无法使用这些默认前缀(d...

回答 2 投票 0

创建一个通用的 xsd 生成类以供其他包使用

我尝试使用相同的生成类,但在单独的包中。所以结构应该是这样的: com.test.common -commonType.java com.test.A -objectA.java com.tes...

回答 3 投票 0

使用 JAXB 编译多个包含同一元素的重复定义的 XSD

问题: 如何使 xjc/Jaxb 为同一名称空间中包含重复元素定义的多个模式生成正确的 javaclass? 信息: 我有三个 .xsd 模式:A、B 和...

回答 3 投票 0

JAXB 不会从 XSD 简单类型生成枚举类

我的 JAXB XSD 到 Java 类生成器不知何故没有从包含枚举的简单类型创建类,如下所示: 我的 JAXB XSD 到 Java 类生成器不知何故没有从包含枚举的简单类型创建类,就像这样: <xsd:element name="MyPriorityEnum"> <xsd:simpleType final="restriction"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="NORMAL" /> <xsd:enumeration value="LOW" /> <xsd:enumeration value="HIGH" /> </xsd:restriction> </xsd:simpleType> </xsd:element> 我的build.gradle包含以下生成类的任务: def myXsd = "myxsd-v5.xsd" def myOutput = "$buildDir/generated/jaxb/model/src/main/java" tasks.register('generateSources') { doLast { def jaxbTargetDir = file("$myOutput") if (!jaxbTargetDir.exists()) { jaxbTargetDir.mkdirs() } ant.taskdef(name: 'xjc', classname: 'com.sun.tools.xjc.XJCTask', classpath: configurations.jaxb.asPath) ant.xjc( destdir: "${jaxbTargetDir}", schema: "${rootDir}/src/main/resources/xsd/${myXsd}", removeOldOutput: 'yes', extension: 'true' ) { arg(line: '-nv -disableXmlSecurity') } } } tasks.compileJava.dependsOn tasks.openApiGenerate, tasks.generateSources 我正在为所有 JAXB 依赖项使用最新版本,2.3.1。这可能是xjc的问题吗? 独立于 jaxb 版本/使用的插件/工具,我可以使用此 xsd 重现问题: <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" > <xsd:element name="MyPriorityEnum"> <xsd:simpleType final="restriction"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="NORMAL" /> <xsd:enumeration value="LOW" /> <xsd:enumeration value="HIGH" /> </xsd:restriction> </xsd:simpleType> </xsd:element> </xsd:schema> ...但不能这样: <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="https://my.org.com/foo/blahr" targetNamespace="https://my.org.com/foo/blahr" elementFormDefault="qualified"> <xsd:element name="MyPriorityEnum" type="tns:MyEnumType" /> <xsd:simpleType name="MyEnumType" final="restriction"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="NORMAL" /> <xsd:enumeration value="LOW" /> <xsd:enumeration value="HIGH" /> </xsd:restriction> </xsd:simpleType> </xsd:schema> ...这意味着它可以工作:xjc 生成枚举类型。 最显着的区别是从“嵌套简单类型”到“引用简单类型”......(?)

回答 1 投票 0

如何制作具有父子关系的JAXB类

我在使用 JAXB / XJC 父子父导航创建用于父子关系的 JAXB 类时遇到问题 我认为实现 void afterUnmarshal(Unmarshaller, Object Parent)。应该...

回答 1 投票 0

JAXB 和 xjc 的问题:构建项目时使用 minExclusive 约束解析 xs:decimal

我在从包含带有 minExclusive 约束的 xs:decimal 元素的 XML 模式 (XSD) 生成 Java 代码时遇到了 JAXB 和 xjc 的问题。尽管将类型指定为 xs:deci...

回答 1 投票 0

JAXB XJC 编译器忽略 XML 架构文档上的 mix=true

XJC 似乎完全忽略了我的 XML 架构元素上的 mix="true",从而不允许我提取文本内容。我需要能够从下面的示例 XML 中提取“标题文本”。机智...

回答 3 投票 0

处理从 XSD 文件生成的两种不同 Java 类型中相同数据的最佳方法

我几乎一直在寻找解决这个问题的最佳方法。 我的情况是,我有一个提供程序,它为我提供 XSD 文件来生成我将用来调用其 SOAP api 的类型。那些 XSD 文件有时...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.