我需要从一些POJO创建一个XSD,其中大部分是而不是有一个无参数构造函数。 JAXB需要一个无参数构造函数,因此我不考虑JAXB。我不拥有POJO的代码,所以我不能对它们进行改进(这也意味着我不能添加任何注释)。从POJO(不带JAXB)生成XSD?
除了通过反射自检来滚动我自己的XSD生成器之外,还有其他一些方法用于从POJO生成XSD吗?你会认为谷歌会显示很多工具,但到目前为止,我的搜索技能还没有提出任何东西。每个插件/工具似乎都使用JAXB。
我需要从一些POJO创建一个XSD,其中大部分是而不是有一个无参数构造函数。 JAXB需要一个无参数构造函数,因此我不考虑JAXB。我不拥有POJO的代码,所以我不能对它们进行改进(这也意味着我不能添加任何注释)。从POJO(不带JAXB)生成XSD?
除了通过反射自检来滚动我自己的XSD生成器之外,还有其他一些方法用于从POJO生成XSD吗?你会认为谷歌会显示很多工具,但到目前为止,我的搜索技能还没有提出任何东西。每个插件/工具似乎都使用JAXB。
看看这个工具,看看它是否会做你想要什么: http://80.127.98.91:6060/internal/doc/ssj/devguide_java2schema.html
对不起着急,但曾经是Apache Axis的项目,将生成WSDL下建立一个的Java2WSDL工具,其中包括接口使用的对象的xsd。可能有些东西需要寻找。它曾经工作得很好。
这可能是一个更好的工具:http://xmlbeans.apache.org/ 得到运行..希望这可以帮助。
看看Axis2工具也许它不是使用JAXB,而是可能需要没有org的标准构造函数。 http://axis.apache.org/axis2/java/core/tools/index.html
我认为将no-arg构造函数添加到类中并不是什么大问题。
Anothor方式与标准JAXB工具:https://docs.oracle.com/javase/tutorial/jaxb/intro/j2schema.html 部分“J2S的XMLType实例”:
类必须有一个公共无参数的构造函数或静态零参数工厂方法,以将由此注释映射。在解组过程中使用其中的一种方法来创建类的实例。工厂方法可以位于工厂类或现有类中。
有作为用于解组该方法的优先顺序:
如果一个工厂类在注释识别,在该类中的对应的工厂方法也必须被识别,并且该方法将是用过的。 如果在注释中标识了工厂方法但未标识工厂类,则工厂方法必须位于当前类中。即使存在公共的零参数构造方法,也可以使用工厂方法。 如果没有工厂方法在标注标识,类必须包含一个公共的无参数的构造函数方法
所以,你可以创建工厂。
正如我所说,我没有自己的代码,所以我不能添加无参数的构造函数。即使我可以,这也是不可取的,因为它可以有效地防止最终字段有不可变的POJO。 –