繁体   English   中英

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

[英]JAXB: generate Java classes only for a subset of the XSD types

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

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

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

提前致谢。

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

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

  1. 使用Maven XML插件运行XSLT转换,最好使用Saxon作为XSLT处理器
  2. 运行JAXB2 Maven插件,以从新的XSD副本(带有schemaDirectory / schemaIncludes参数)生成Java类。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM