问题标签 [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 投票
1 回答
84 浏览

java - 是否可以为相同的 xs:simpleContent 元素创建单个类映射?

我有一个外部提供的 XSD,它有许多相同的元素,并且代表具有可选货币属性的价格。

我希望将其转换为通用类而不是大量静态类,这可以通过 XJB 映射文档实现吗?

0 投票
1 回答
11027 浏览

java - 使用 Jaxb 和绑定更改 XSD 中引用元素的生成变量的名称

今天我有一个我无法解决的令人难以置信的问题。我将从解释和示例开始。

我有 2 个 XSD 文件。一个 XSD 文件引用另一个元素之一。

第一个 XSD- ReportInfo.xsd

第二个 XSD- ReportInfoRecordSet.xsd

ReportInfoRecordSet 引用 ReportInfoWrapper(ReportInfo 的根元素)。我需要知道我将在 JAXB 绑定文件中定义什么来更改 ReportInfoRecordSet 中此引用元素的生成名称。这是它当前生成的:

问题 任何帮助或建议将不胜感激。请注意,我不能将 ReportInfo 的 Root 元素设为复杂类型,因为它会破坏 ReportInfo 的当前绑定文件。有没有办法用以下符号定义变量的名称?请注意,下面的这个例子由于某种原因不起作用(我相信它的节点定位问题”:

笔记

一种查看我在这里尝试的简单方法,我可以用正常的开发术语来解释。

ReportInfo 是“类”

ReportInfoRecordSet 是一个 ReportInfo 类的数组。

编辑

错误在第 19 行抛出,说 XPATH 错误:null。第 19 - 21 行是添加到我的代码中的新行。

编辑 2

记住孩子们,使用 XJC 需要您仔细检查您提供给 XPATH 处理器的名称空间。我发现错误node="//*/xs:element[@ref='ReportInfoWrapper']"应该在 哪里node="//*/xsd:element[@ref='ReportInfoWrapper']"

0 投票
1 回答
2977 浏览

java - JAXB 属性顺序

我有一个 XSD 文件。使用 xjc 我从中生成类。如何从生成的类中的 XmlType 注释中更改 propOrder 值?我不想更改 XSD 文件,只要我不是它的所有者并且我不想更改从此模式生成的类。有没有办法通过自定义绑定文件(xjb)来实现这一点?问题是 propOrder 值对我来说是不可取的。作为最后一个解决方案,我考虑对此类使用 parseMethod/printMethod,但这太棘手了。

我正在处理 FpML(XML 基本格式),这是一个 XSD 元素:

这是propOrder:

当我在对象partyReference 和tradeId 中设置时,生成的xml 是:

XSD 验证失败并出现错误:

解决方案是将partyReference 元素放在tradeId 之前。当我手动执行时,一切正常。但我不想手动更改生成的类,因为在模式更改的情况下我将不得不重复这样的操作。这是一条通往地狱的路。

我试图重命名一个tradeId,所以会有两个字段。但是,只有一个 tradeId 字段被重命名,问题仍然存在。

0 投票
1 回答
941 浏览

java - 带有翻译的 XJB 文件

我使用 XJC 工具生成了我的 JAXB 类。几乎所有东西看起来都很好,但是模式元素是用德语而不是英语命名的。我想将类中的文件重命名为英文,并且我知道我需要使用自定义绑定创建 XJB 文件。问题是模式很大,如果我可以为默认绑定生成 XJB 文件,我将在其中有德语的类名和字段,我将简单地翻译它,这将容易得多。你知道有什么工具可以帮助我生成这样的默认 XJB 文件吗?

0 投票
1 回答
2415 浏览

jaxb - JAXB 简化插件与 *.xjb

我正在尝试使用Simplify 插件将复杂的属性替换为一组更简单的属性。我按照插件的手册使它工作。但是我无法更改原始架构,所以我必须使用外部 bindings.xjb。它给了我各种各样的错误。有人有类似事情的工作示例吗?

原始 XSD:

修改后的 XSD 对我有用:

我的 bindings.xjb(我想使用它而不是更改架构):

我目前的例外

0 投票
1 回答
566 浏览

jaxb - XJC xsd:任意解析

我在 XSD 架构中有一个元素:

是否可以通过 XJB 绑定切换processContents到?strict无需修改架构文件。可以将其设置为全局属性。我想得到:

代替:

0 投票
1 回答
493 浏览

xml - JAXB 绑定 XPath 错误

当 JAXB 从一组 XSD 生成类时,我正在尝试修复冲突。这是 XML:

和 binding.xjb 文件:

我尝试了几种将 XPath 定义为所需元素的不同组合,但我不断收到相同的错误:

我已经搜索了几个小时来寻找答案,但几乎没有找到帮助。说它在错误位置的错误消息没有意义,因为我相当确定我的 XPath 是有效的。此外,“其他绑定”没有意义,因为目前只有一个。

0 投票
1 回答
368 浏览

java - 如何创建将 complexType 更改为 simpleType 的绑定文件

我在 XSD 架构中有一个字段:

在java类中生成了一个字段:

但是随后,xsd 架构已更改为:

其中“int_code”:

JAXB 生成以下代码:

和 MagicField.java 附加。

但我仍然只需要

在生成的代码中。
根本不会使用属性“名称”。

我无法更改架构,我的方式只是绑定文件(xjb)。

我应该如何创建绑定以重新映射“int_code”类型并将“magicField”作为 simpleType(int在代码中)而不是 complexType(magicField在代码中)?

据我了解,我还需要一个自定义 XmlAdapter,而不仅仅是绑定规则。

提前致谢。

0 投票
1 回答
3651 浏览

jaxb - XPATH 导致 XJB 中的目标节点为空

我有以下简单的 XML Schema...

而且我想提示 XJC JAXB 编译器,以便它应该为“Type”生成类型安全的枚举类。

但是当我运行命令时

xjc -d src workOrder.xsd -b CustomizedBindings.xjb

我收到以下错误。

有人可以帮助如何在不修改原始 XSD 的情况下实现这一目标吗?

0 投票
1 回答
2111 浏览

jaxb - JAXB Simplify 插件仍然可用吗?

我在这里尝试了问题的解决方案JAXB Simplify plugin vs *.xjb

但它失败了,但有以下例外

" 编译器无法接受此简化:作为元素属性自定义。它附加到错误的位置,或者它与其他绑定不一致。"

这是我使用的自定义绑定

无法访问 jaxb 简化插件合流页面,有没有人使用过这个插件,可以举个例子吗?

这是我根据答案更新的架构

我在 maven 构建过程中遇到了异常,例如“不支持的绑定命名空间” http://jaxb2-commons.dev.java.net/basic/simplify。也许你的意思是“ http://jaxb.dev.java.net/plugin /代码注入器“?”