gpt4 book ai didi

java - JAXB:仅为 XSD 类型的子集生成 Java 类

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:57:13 24 4
gpt4 key购买 nike

我有几个巨大的 XML 模式定义 (XSD) 文件,我只想为已定义类型的一个子集生成相应的 Java 类。

更准确地说,我有一个“根”类型列表,我想将其转换为 Java 类,包括这些根类型所需的所有类型。

是否可以在 JAXB 绑定(bind)文件中定义一些“根”类型,并告诉 JAXB 仅将它们及其所有依赖类型转换为 Java 类,而忽略所有其他不必要的类型?

提前致谢。

最佳答案

可能有一种更直接的方法,但一种方法是制作 XSD 的副本并从副本中删除所有 XML 类型,但您想要的根类型及其依赖项除外。然后在副本而不是原始副本上应用 xjc。

您可以使用 XSLT 和构建自动化工具(如 Maven、Gradle、Ant 等)自动执行此过程。您首先编写 XSLT 样式表,将 XSD 转换为仅复制具有依赖项的根类型,并将结果保存到临时位置(例如 Maven 的 target/generated-sources 文件夹)。然后,以 Maven 为例,您可以使用 pom.xml 中的构建插件自动执行该过程:

  1. 使用 Maven XML plugin 运行 XSLT 转换, 最好使用 Saxon as XSLT processor .
  2. 运行 JAXB2 Maven plugin从新的 XSD 副本生成 Java 类(使用 schemaDirectory/schemaIncludes 参数)。

关于java - JAXB:仅为 XSD 类型的子集生成 Java 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7983904/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com