我正在寻找可以从XML文件生成XSD的工具或java代码或类库/ API。 (类似于.NET Framework sdk中的xsd.exe实用程序)
答案 0 :(得分:4)
这些工具可以提供一个良好的起点,但它们不能代替思考实际的模式约束应该是什么。您有机会遇到两种错误:(1)允许不允许的XML和(2)禁止应该没用的XML。
例如,假装您想要从包含“性别”标签的几千个患者记录中推断XSD(我曾经在医疗记录软件上工作)。该工具可能会遇到'M'和'F'作为值,并可能推断该元素是枚举。但是,其他有效(尽管很少使用)值是B(两者),U(未知)或N(无)。当然,这些很少见。因此,如果您使用衍生模式作为输入验证器,那么在患有多个性器官的患者被送入医院之前,它会表现良好。
相反,为避免此错误,XSD生成器可能不会添加枚举类型限制(我不记得在模式中调用这些限制),并且您的应用程序将运行良好,直到它遇到性别= X的错误记录。
所以,要小心。最好只使用这些工具作为起点。而且,它们往往会产生冗长和冗余的模式,因为它们无法像人类那样找出模式。
答案 1 :(得分:3)
检查Castor,我认为它具有您正在寻找的功能。它们还为您提供了一个ant task,可以从XML文件创建XSD架构。
PS我建议您将来添加更多特定标签:例如,使用 xml , xsd 和 java 将增加可能性得到答案。
答案 2 :(得分:0)
您可以使用xsd-gen-0.2.0-jar-with-dependencies.jar文件将xml转换为xsd。 它的命令是“java -jar xsd-gen-VERSION-jar-with-dependencies.jar /path/to/xml.xml> /path/to/my.xsd”
答案 3 :(得分:0)
尝试Google的xsd-gen项目。