Java 从POJO生成XSD(没有JAXB)?

Java 从POJO生成XSD(没有JAXB)?,java,xsd,Java,Xsd,我需要从一些POJO创建XSD,其中大多数POJO没有无参数构造函数。JAXB需要一个无参数构造函数,因此我不考虑JAXB。我不拥有POJO的代码,所以我不能对它们进行改装(这也意味着我不能添加任何注释) 除了通过反射内省运行我自己的XSD生成器之外,还有其他方法可以从POJO生成XSD吗?你可能认为谷歌会展示很多工具,但到目前为止,我的搜索技能还没有找到任何东西。每个插件/工具似乎都在使用JAXB。看看这个工具,看看它是否能满足您的需求: 很抱歉,很匆忙,但是在ApacheAxis项目下曾经

我需要从一些POJO创建XSD,其中大多数POJO没有无参数构造函数。JAXB需要一个无参数构造函数,因此我不考虑JAXB。我不拥有POJO的代码,所以我不能对它们进行改装(这也意味着我不能添加任何注释)


除了通过反射内省运行我自己的XSD生成器之外,还有其他方法可以从POJO生成XSD吗?你可能认为谷歌会展示很多工具,但到目前为止,我的搜索技能还没有找到任何东西。每个插件/工具似乎都在使用JAXB。

看看这个工具,看看它是否能满足您的需求:

很抱歉,很匆忙,但是在ApacheAxis项目下曾经构建了一个java2wsdl工具,该工具将生成wsdl,其中包括接口使用的对象的xsd。那里可能有东西要找。它过去工作得很好

这可能是一个更好的工具:
我得走了。。希望这能有所帮助。

看看Axis2工具,也许它没有使用JAXB,但可能需要没有组织的标准构造函数。

我认为在类中不添加arg构造函数不是什么大问题

使用标准JAXB工具的Anotor方法: “j2s xmlType示例”部分:

类必须具有公共零参数构造函数或静态零参数工厂方法,才能由此注释映射。其中一个方法在解组期间用于创建类的实例。factory方法可以位于factory类或现有类中

对于用于解组的方法,有一个优先顺序:

如果注释中标识了factory类,则还必须标识该类中相应的factory方法,并且将使用该方法。 如果在注释中标识了factory方法,但未标识factory类,则factory方法必须位于当前类中。即使存在公共零参数构造函数方法,也会使用工厂方法。 如果注释中未标识工厂方法,则该类必须包含公共零参数构造函数方法


因此,您可以创建工厂。

正如我所说,我没有代码,因此无法添加无参数构造函数。即使可以,这也是不可取的,因为它有效地防止了具有最终字段的不可变POJO。