问题标签 [schemagen]
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.
java - 如何在 Java 11 中调用 schemagen?
根据 Oracle 文档,schemagen 工具已作为 JEP 320 ( http://openjdk.java.net/jeps/320 ) 的一部分从 JDK 中删除。该 JEP 指向现在提供缺失工具的 Maven 工件。JEP 中工件的坐标是错误的,更新后的坐标可以在这个问题的答案中找到: 我应该在我的 Maven 项目中为 JAXB RI 使用哪些工件?
然而,缺少的是如何调用这些工具。在 JAXB-RI Git 存储库中的 JEP 中有指向的 shell 脚本。然而,这些脚本仍然没有记录并且难以调用。该 git repo 中的构建说明表明它是使用标准“mvn clean install”构建的,但是不会产生与此处文档中使用的“bin”文件夹匹配的输出结构:https ://javaee.github.io /jaxb-v2/doc/user-guide/ch04.html#tools-schemagen
理想情况下,我想从 Gradle 运行 schemagen,避免使用 shell 脚本,因为它们不是从 maven 依赖项中获得的。
我目前的尝试,改编自一个名为旧 schemagen.exe 的工作版本,如下所示:
(“真正的”build.gradle 文件中有更多内容来指定我的应用程序的依赖项等)
但是,这会导致错误:
java - schemagen Ant 任务未按预期使用 gradle
因为来自 JAXB 的 schemagen 工具不再是 JDK 11 的一部分,所以我想使用 gradle 设置一个项目,该项目通过可用的 ant 任务提供 schemagen 工具的功能。虽然,我让它运行 ant 任务并没有按预期运行。特别是创建的模式与源代码注释不匹配。
此外,总是抛出一个我无法解决的异常。
我在带有 bash shell 的 Windows 10 机器上使用版本 2.3.2 中的 JDK 11、Gradle 5.4.1 和 JAXB。
项目看起来像这样(一个 gradle java 项目):
Movie.java
里面src/main/java/movie
:
build.gradle
:
现在,当我运行时gradle schemagen --stacktrace
,控制台上会出现以下输出:
(我缩短了输出文件系统路径和不必要的信息)
尽管任务失败,但创建了一个模式,schema1.xsd
:
而这里@XmlAttribute
-Annotation 被忽略了,流派只是作为一个元素包含在内。
我会期待这样的事情:
有没有人成功地建立了这样的项目并从 schemagen ant 任务中获得了有效的模式?
hibernate - SchemaGen 错误地生成了不必要的关联表
我有一个非常简单的数据库模式,经典的Order ---(一对多)---> OrderItem <---(多对一)--- Product
但是,当我使用 SchemaGen 生成 DDL 时,它会创建一个额外的层orders_orders_item 和 product_orders_item,实际上添加了一个冗余的关联表层:
似乎认为orders和orders_item之间以及product和orders_item之间存在多对多关联。
为什么会这样?
我的实体类如下所示:
订单 :
订单项目:
产品 :
java - 从模式生成 JAXB java 类:如何获取自定义 XML 元素名称(保留类名称)
我有一个带有元素的 XSD - 如果有区别,它就是 XMLRootElement - 像这样:
<xsd:element name= "SomeElement">
我需要让生成的 Java 类具有自定义 XML 元素名称,同时保留默认 Java 类名称,因此生成的类需要如下所示:
这样编组/未编组的 xml 元素将显示为
<fo:SomeElement>
有人可以帮我解决我需要更改为 XSD 文件或绑定文件的内容吗?
xsd - jaxb2-maven-plugin 和多个 xsd 模式生成问题
我创建了一个微型 Maven 项目,可以完全重现我的问题。
我有多个 java 类(带有 Xml 注释),我想通过 jaxb2-maven-plugin 生成相应的 xsd 模式。
当我执行“mvn clean compile”时,出现此错误:
如果我删除这个 Xalan 依赖项,一切都会完美运行。
重要提示:我需要在我的真实项目中保持这个 Xalan 依赖!
重要 2:如果我在 pom.xml 上评论两个执行之一,xsd 生成效果很好
重要 3:我正在使用 Java OpenJdk 15
如何保持 Xalan 依赖并获得多个 xsd 模式生成工作?
谢谢!
java - Ubuntu 上的 Java Schemagen 错误:严重:null
我正在使用带有 java 的 ubuntu 18.04
安装者sudo apt install default-jre
(但我认为这不是问题)
我已经按照这里schemagen
的建议使用 apt安装了。
的版本schemagen
是2.3.0.1
.
我已经启动schemagen Moon.java
但我有这个错误:
此文件由 JavaTM Architecture for XML Binding (JAXB) 参考实现 v2.3.0 生成,请参见https://javaee.github.io/jaxb-v2/ 重新编译源模式后,对该文件的任何修改都将丢失。产生于:2020
我无法理解原因。你有一些想法来解决它吗?