问题标签 [jibx]

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

java - Jibx 与 JXPath 在性能方面的对比

处理一个处理大量 XML 文件并将其加载到 RDBMS 中的项目。在转换层,需要将 XML 文件转换为 java pojo ,丰富验证,然后插入 DB。

文件大小为 appx。10 KB

问题是,在转换层中使用哪个框架 1) JIBX(with woodstox) 2) jxpath Jxpath 可以方便地开发一个可配置的转换层,因为它是基于表达式的,我们可以根据条件动态评估路径。但另一方面,我担心性能。

我还没有尝试过这两种方法。感谢您的建议。

0 投票
2 回答
1989 浏览

java - Java:Maven 清理后构建中缺少 log4j.properties

我做了一个 maven 项目,并使用 slf4j 和 log4j。我也在使用 jibx 绑定。

src/main/java 是我的类文件夹 src/main/config 文件夹,用于 jibx 绑定和生成的类

两者都被声明为源文件夹

log4j.properties 在类路径中(如果它存在于 java 或 config 中则无关)

这是情况:log4j 有效。我可以从 Eclipse 或通过创建的 jar 文件(maven)启动程序并记录工作。但是当我开始“maven clean”并再次构建项目并开始时,我得到“log4j:WARN No appenders could be found for logger”发生在从eclipse或通过jar文件开始。log4j.propeties 不会被复制到目标/类,也不会在 jar 文件中。我将 Eclipse 中的 log4j.properties 从示例 java 文件夹移动到配置文件夹并返回。再次用maven编译。属性位于类文件夹和 jar 中。maven clean 之后我总是必须这样做!我不知道为什么清理后属性会丢失。它仍然在类路径的文件夹中。我什么都不改变。任何人都知道如何解决它?这真的很令人不安。感谢 jibx 不时清洁是必要的。我用谷歌搜索,只有当属性不在类路径中时才发现问题。但就我而言,它是。

如果我错过了任何需要的信息,请:)

编辑:啊,是的。不在资源文件夹中的属性是问题所在。固定的。

但是如果属性不在资源文件夹中,仍然会出现奇怪的行为。即使在 Eclipse log4j 中,在 maven clean 之后也会停止工作。并在移动属性并返回到开始文件夹后再次工作。

0 投票
1 回答
1495 浏览

spring-ws - Spring OXM 3 + JiBXException:没有为类定义编组器

我在我的应用程序中使用了 Spring OXM 和 JiBX。

下面是我的 Spring 配置文件

下面是控制器类

当我发送 XML 请求时,它已成功编组,但为了响应,我收到以下错误消息。

我已经ResponseClass在 spring 配置文件中定义了 marshaller。

请帮忙。谢谢。

0 投票
2 回答
15926 浏览

xml - 如何从 Java 中的 XML 模式生成 XML 并在其中提供数据?

我正在开发一个 Web 应用程序的一部分,它以 XML 模式作为输入来生成 XML 文件。还有一些数据要以有序的方式放入 XML 标记中。

例如,如果我有一个包含 100 个数字的 ArrayList,例如 1 到 100,则.xsd看起来像以下示例:

如何生成如下 XML 文件:

那么每个tag中的数据就是arraylist中对应的数字,和arraylist中的数据顺序一致?

我真的很感激任何建议或例子。提前致谢!

0 投票
1 回答
756 浏览

java - JiBX 如何绑定/map 静态类?

我有以下课程

下面是 JiBX 映射(绑定)文件

当我尝试绑定此 XML 时,我收到以下错误消息。

如何绑定或映射静态类?请帮忙。

0 投票
0 回答
709 浏览

java - Jibx Maven 插件:在不同目录中拆分模式、绑定和生成的 Java 源文件

我使用带有 Jibx 的 Spring Object-Xml 映射将一些 xsd 文件转换为 Java 源文件。Jibx 在构建过程中由 jibx-maven-plugin 调用。我的模式文件 (.xsd) 在目录 resources/oxm/schemas 中,我的 Java-XSD 绑定文件 (.xml) 在目录 resources/oxm/bindings 中,我想将输出的 Java 源文件保存到目录 src。

我在 pom.xml 中的插件配置是:

源代码按预期在 src 目录中生成。问题是 resources/oxm/bindings/ 目录中的绑定也被复制到 src 目录。为什么插件会复制我的 xsd-Java 源绑定?有人可能需要输出 jar/war/whatever 中的绑定来在运行时创建 xsd/source 文件吗?如何在我的 src 文件夹中禁用这一代 xml?如果不能,如何在 jibx-maven 插件的 Maven 构建中添加一个步骤(现在运行 jibx:schema-codegen 阶段以生成 Java 源文件)以在生成这些文件后删除它们?

提前致谢。

0 投票
1 回答
1871 浏览

java - Jibx Maven插件:如何在xsd中设置Java包->定义命名空间时的Java转换

我使用带有 Jibx 的 Spring Object-Xml 映射将一些 xsd 文件转换为 Java 源文件。Jibx 在构建过程中由 jibx-maven-plugin 调用。我的模式文件 (.xsd) 有一个命名空间“abcom”,但我希望生成的 Java 源位于包“a.com”下,因为其余的 Java 代码都是这样组织的。

我注意到 Java 包是根据 xsd 的命名空间自动确定的。因此,问题是:当在模式文件中定义命名空间时,使用 Jibx Maven 插件时,是否可以在 xsd->Java 转换中设置输出 Java 源文件的 java 包?

到目前为止提出的解决方案:

1) 使用构建执行

建议如下。

问题:

  • xsd->Java 转换在每次构建时运行。我想手动运行它,或者只在我更改 xml 模式时运行。
  • custom.xml 中的 prefer-inline 属性与此设置的作用不同,内联对象引用的属性

2)使用自定义xml设置Java包

此处建议:Jibx Codegen:自定义文件 - 每个模式的包

问题:它没有工作。

3) 模块化架构

此处建议:Jibx Maven 插件:模式之间的交叉引用,当它们在不同的构建执行中转换时

问题:为每个模式设置一个 pom、为每个模式生成一个 jar 并将该 jar 导入其他模式中太复杂了。

当在 xml 模式中定义命名空间时,是否有人成功地解决了这些问题并且能够在 xsd->Java 转换中设置自定义 Java 包?

提前致谢。

0 投票
3 回答
7252 浏览

java - Maven:经常从远程存储库下载的元数据 xml 文件

我正在使用 Maven 来处理 Java 项目。我认为只有在第一次编译时才需要 Internet 连接才能从远程存储库下载所需的库,但每当我编译代码时都会收到几条下载消息。像这样的消息:

为什么会发生这种情况以及如何防止它发生?

0 投票
1 回答
714 浏览

java - Jibx Maven 插件:模式之间的交叉引用,当它们在不同的构建执行中转换时

我使用 jibx Maven 插件将一些 xsds 转换为 Java 源代码。在模式 A 中,有对模式 B 中定义的类型的引用。之前,我使用了这个 pom.xml 配置,一切正常:

输入模式 A 类似于:

输入模式 B 具有与 classBType 定义类似的代码。

以前的 Java 源代码输出类似于:

最近,我在 pom.xml 中分离了不同构建执行中模式的转换,以便能够为它们定义不同的目标包。我的新 pom.xml 是:

(...每组模式执行一次)

Java 源输出现在是:

这是预期的行为吗?我想在 A 类源代码中返回 classB 引用,有什么方法可以实现吗?

提前感谢您的帮助。

0 投票
1 回答
802 浏览

java - Jibx Codegen:自定义文件 - 每个模式的包

我在项目中使用 Jibx maven 插件从 XML 模式 (xsd) 文件生成 Java 源代码。我已将 pom.xml 中的插件配置为使用自定义 xml。在这个 xml 中,我为每个模式定义了一个 Java 包,如下所示:

我在这些模式中定义了命名空间。输出的 Java 源文件仍然使用模式中定义的命名空间来创建 Java 包,而忽略了自定义.xml 中的包属性。

我知道customization.xml 正在源代码生成中被读取和使用,因为还有一些其他的自定义可以正常工作。

这是一个错误还是我在这里做错了什么?

提前感谢您的帮助。