我有几个巨大的XML模式定义(XSD)文件,我想只为已定义类型的子集生成相应的Java类。
更确切地说,我有一个“root”类型列表,我希望将其转换为Java类,包括这些根类型所需的所有类型。
是否可以在JAXB绑定文件中定义一些“根”类型,并告诉JAXB只将它们的所有依赖类型转换为Java类并忽略所有其他不必要的类型?
提前致谢。
答案 0 :(得分:1)
可能有一种更直接的方法,但是一种方法是制作XSD的副本,并从副本中删除所有XML类型,但所需的根类型及其相关性除外。然后在副本上应用xjc,而不是原始副本。
您可以使用XSLT自动化此过程,并构建自动化工具(例如Maven,Gradle,Ant等)。首先编写XSLT样式表,该样式表将XSD转换为仅复制具有依赖项的根类型,并将结果保存到临时位置(例如,带有Maven的 target / generated-sources 文件夹)。然后,以Maven为例,使用pom.xml中的build插件自动化该过程: