0

嗨,我刚开始使用 JIBX,我很难掌握 Binding 概念。我已经从我使用 windows 的 XSD 文件生成了 JAVA 类,这就是我的文件夹的结构

d:\Libraries\ 此文件夹包含下载的 jibx 文件夹,因此 jibx-tools.jar 等 rar 库位于 d:\Libraries\jibx\lib .....

现在 Libraries 文件夹还包含一个名为 dwcode2 的文件夹我在 D:\Libraries\jibx\dwcode2\ 中有一个名为 starter.xsd 的 XSD 文件

我使用 DOS D:\Libraries\jibx\dwcode2>java -cp ..\lib\jibx-tools.jar org.jibx.schema.codegen.CodeGen -t gen\src -w starter 中的命令生成了 JAVA 文件。 xsd

结果 JAVA 文件在 D:\Libraries\jibx\dwcode2\gen\src\org\jibx\

并且 binding.xml 在 D:\Libraries\jibx\dwcode2\gen\src 中生成

现在我想编译和绑定文件(谁能告诉我为什么我们必须编译和绑定 XML)所以我做了以下 D:\Libraries\jibx\dwcode2\gen\src>java -jar "D: \Java 库"\jibx\lib\jibx-bind.jar binding.xml

Error: Unable to find type org.jibx.starter.Shipping; on format element at (line 3, col 66, in binding.xml)Error: Cannot find information for class org.jibx.starter.Item; on mapping element at (line 4, col 79, in binding.xml)Error: Cannot find information for class org.jibx.starter.Address; on mapping element at (line 9, col 85, in binding.xml) Error: Cannot find information for class org.jibx.starter.Customer; on mapping element at (line 17, col 87, in binding.xml)Error: Cannot find information for class org.jibx.starter.Order; on mapping element at (line 22, col 81, in binding.xml) Error: Cannot find information for class org.jibx.starter.Order; on mapping element at (line 35, col 56, in binding.xml) Error running binding compiler org.jibx.runtime.JiBXException: Binding binding.xml is unusable because of validation errors at org.jibx.binding.Utility.loadBinding(Utility.java:358)   at org.jibx.binding.Utility.loadFileBinding(Utility.java:420)
                    at org.jibx.binding.Compile.compile(Compile.java:217)
                    at org.jibx.binding.Compile.main(Compile.java:384)

谁能告诉我我做错了什么?我该如何解决这个问题?为什么我们必须绑定?

4

2 回答 2

3

拉杰什,

当您使用 JiBX 代码生成器时,您需要执行三个步骤:
1. 使用代码生成器从 XML 模式生成 java 代码和绑定文件
2. 编译您的 java 代码
3. 使用绑定编译器修改您的 java 类文件所以他们可以生成 XML 模式。
我看不到您的架构,所以您为什么不进行测试以查看问题是您的架构还是您的命令行:
- 将您的架构放在一个空目录中并运行这些命令。

java -cp ../lib/jibx-tools.jar org.jibx.schema.codegen.CodeGen starter.xsd
javac -cp ../lib/jibx-run.jar:. org/jibx/starter/Shipping.java
java -cp ../lib/jibx-bind.jar:. org.jibx.binding.Compile binding.xml

当然,您将用您的路径(即 c:\Library)替换 lib 目录的路径。

如果可行,现在您可以将项目组织到文件夹中。

您可以在我们的网站www.jibx.org上找到完整的文档。

为了真正简化你的生活,我建议使用 maven 插件。配置要容易得多。

我希望这有帮助。

大学教师

于 2012-05-06T21:24:35.417 回答
0

您可能在 build.xml 上有错误。你的类路径位置正确吗?打开buid.xml,进入第一行所在的字段。看看下线。

如果是“bin”,则必须有 binding.xml 和包含“bin”中的 .class 文件的包。如果它在 bin/classes 或其他路径中,则会出现此错误,因为它找不到 binding.xml,因此将 build.xml 更改为写入 bin/classes。

如果你使用eclipse,你必须生成类,编译,刷新然后执行绑定选项,否则会出现这个错误。

于 2013-09-11T08:43:09.430 回答