问题标签 [xjb]

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

jaxb2 - 在使用 maven-jaxb2-plugin 时,在整个编译中只允许一个 globalBindings 自定义出现错误

我正在使用 maven-jaxb2-plugin。这是我的插件配置

这是我的 schema-binding.xml 文件

我有一个 xsd Enrollments.xsd。其中我有日期类型。我希望任何具有日期或日期时间类型的 xsd 都转换为 Localdate 或 Localdatetime 而不是 XMLGregorianCalendar。这是片段

现在,当我右键单击 POM 时。选择Run As -> Maven generate-sources然后我收到以下错误

虽然类正在生成。但类型仍然是 XMLGregorianCalendar。

我在配置中做错了什么,我该如何解决?

谢谢

- - - - - - - - - - -编辑 - - - - - - - - - - - -

此插件配置有效。

这是我的 schema-binding.xjb

这是我的服务操作和类型目录中的文件之一

EnrollmentServiceOperations.xsd:

CustomerServiceOperations.xsd:

类型/注册.xsd

类型/客户.xsd

现在当我跑步时Run As -> Maven generate-sources。它将在 中生成服务操作源并在 中src/main/java/com/..../serviceoperation/customer/AddCustomerRequest.java键入源src/main/java/com/.../types/customer/Customers.java。其他xsds类似。

为什么我不应该使用<generateDirectory>${basedir}/src/main/java/</generateDirectory>. 这就是我要的。我认为这个插件正在从每个 xsd 中的 targetnamespace 制作包。我对吗 ?

如果我在配置此插件时做错了什么,请告诉我,以便我进行更正。就像你说的不要在 src/main/java 中生成。

我希望我在 serviceoperations 文件夹中的所有 xsd 都应该在,文件夹(src/main/resources/schemas/lmsapi/serviceoperation/*.xsd)中生成,其他人也一样。src/main/java/com/..../serviceoperation/customer/*.javasrc/main/java/com/..../serviceoperation/enrollment/*.java

中的所有 xsds都应在、文件夹中(src/main/resources/schemas/lmsapi/types/*.xsd)生成,其他的也应相同。src/main/java/com/..../types/customer/*.javasrc/main/java/com/..../types/enrollment/*.java

而且我的绑定文件适用于所有 xsds(src/main/resources/schemas/schema-binding.xjb)所有 xsds 在 servieoperations 和 types 文件夹中。

有没有更好的方法来配置这个插件然后请告诉我,以便我可以更正它。我猜你是这个插件的作者。

感谢和问候

巴斯特·马哈茂德·艾哈迈德

0 投票
2 回答
4879 浏览

java - 同名 simpleType 上的 XJB 和 JAXB 绑定

我正在尝试使用 jaxb 和 spring 生成 JAVA 代码,但是当我拥有具有 2 个具有相同名称但在不同名称空间中的 simpleTypes 的 wsdl 文件时,我无法让它工作。有谁知道我该如何解决这个问题?

我一直在尝试使用该jaxb:factoryMethod标签,但我无法使语法正确。但也许有更简单的方法?

绑定.xjb

错误日志

0 投票
1 回答
960 浏览

java - 使xjc生成成员变量名称与元素名称完全相同的类

有没有办法在外部绑定中指定生成的类中的成员变量名称应该遵循相同的字母大小写(而不是 java 约定),在模式级别(即不是全局绑定)?

我在架构中有名为XYZProperty的元素,它应该有相应的成员变量,名为XYZProperty本身而不是xyzProperty。我尝试在绑定文件中添加以下内容,但没有奏效:

其中//xsd:complexType[@name='SomeType']/xsd:sequence/xsd:element[@name='XYZProperty']是架构中元素的 xpath。

0 投票
1 回答
185 浏览

java - Hyperjaxb:通过 XML 属性排除 XML 元素

我有一个预定义的 XSD,如下所示:

为了从 XSD 生成 Java 类并同时将 XMLGregorianCalendar 替换为java.util.Date,我使用了以下外部绑定:

我在这里找到了这个解决方案。

现在,我只需要为属性Date1而不是DateList1这样做。有没有办法通过使用它的属性来排除DateList1maxOccurs="5"

0 投票
2 回答
2755 浏览

maven - jaxb2-maven-plugin XJB 中的错误:元素“绑定”的命名空间必须来自模式命名空间“

我正在尝试为不同的 xsd 文件分配不同的名称空间,并使用 jaxb2-maven 插件来构建这些 xsd 文件定义的工件。

Maven 无法生成源代码并出现以下错误:The namespace of element 'bindings' must be from the schema namespace, 'http://www.w3.org/2001/XMLSchema'

这是我的配置:

我尝试过使用不同形式的 XML 命名空间指令。在 Eclipse 代码完成中,我可以将绑定 XML 模式视为一个选项,因此我不知道为什么 maven 返回此错误。

0 投票
0 回答
1095 浏览

java - JAXB XJC 文件生成 - 如何更改命名空间

所以我使用 binding.xjb 文件从 XML 文件生成类。我的主要问题是每个 XML 文件都是这样开始的:

以及生成的 package-info.java -<xs:schema xmlns="http://www.kfk.de/bokes" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.kfk.de/bokes" elementFormDefault="qualified" attributeFormDefault="unqualified">

但是我不想让 targetNamespace 成为http://www.kfk.de/bokes,我只想将其更改为“bokes”,但我仍然不明白如何在 bindings.xjb 中更改它我尝试使用:

但它没有用

0 投票
0 回答
487 浏览

java - wsimport已经定义

我正在处理一个远程 WSDL,其中一些 XSD 被调用了两次。我正在尝试使用 xjb 绑定来摆脱

'EndpointReference' 已经定义
riga 22 di 文件:...../wsdl/ws-addr.xsd

(与上述错误有关)第一个定义出现在这里 riga 22 di 文件:...../wsdl/www.w3.org/2006/03/addressing/ws-addr.xsd

这是 XSD 的一部分

这是 jxb 绑定

但这似乎不起作用。

如何重命名两次声明的元素?否则,有没有办法重新映射其他 XSD?

0 投票
1 回答
1209 浏览

xsd - JAXB 绑定以删除 propOrder

我写了一个 XSD:

我写了一个示例 XML 文件:

并且maven-jaxb2-plugin我已经能够从这个模式生成一个类,如下所示:

问题是当我尝试使用 JAXB 解组我的示例 xml 文件时,如下所示:

我收到此错误:

真正让我沮丧的是,这个示例文件在使用xmllint --noout --schema path/to/schema.xsd path/to/sample.xml. 在我看来,主要问题是生成的Conversation类定义的 apropOrder比实际的模式更具限制性。

谁能指出我如何配置简化插件以不生成此 propOrder?或者我如何才能利用绑定来消除该限制?我确实想保持当前行为,其中我生成的类同时具有List<Message> messages属性和List<Event> events属性,而不是单个List<Object> messagesOrEvents

0 投票
1 回答
826 浏览

maven-jaxb2-plugin - JAXB2 的继承插件不适用于 simpleTypes

我在将 xjb 继承绑定应用到 simpleType 时遇到了一些麻烦。将其应用于 complexType 似乎工作正常。

我得到的错误是:

我的绑定看起来像这样:

我的 xsd 包含以下几行:

因此,任何将此插件/修改应用于 simpleType 的尝试都会失败。继承插件不支持 simpleTypes 吗?

0 投票
1 回答
988 浏览

java - 架构元素引用未定义的类型。创建 SOAP 客户端服务。如何考虑生成类的绑定定制?

我已经将 WSDL 转换为 Java 类,但是,我需要使用绑定文件和添加的后缀来解决冲突。我成功地收到了课程,但是类型名称略有改变。当我尝试使用 JaxWsProxyFactoryBean 创建 WebService 时,我输入了具有源名称的源 WSDL 的 URL,它给出了如下错误:

错误 6792 --- [nio-5500-exec-1] oacwsfReflectionServiceFactoryBean:架构元素 { http://tempuri.org/ }SearchMagistratesCourtRequest 引用未定义类型 SearchMagistratesCourtRequest 服务 { http://tempuri.org/ }WebServiceService。

这是正确的,因为我生成的类的名称为“SearchMagistratesCourtRequestType” - 最后带有“Type”。

所以我的绑定文件使用了以下自定义:

这里使用了后缀。

我像这样创建我的 WebService:

在这里,我输入了原始 WSDL_URL 并收到了描述的错误。

我如何在此处考虑用于生成 Java 类的绑定定制?或者什么可能是一个解决方案?