[英]Convert xml to xsd using java
我正在寻找可以从XML文件生成XSD的工具或Java代码或类库/ API。 (类似.NET Framework sdk中的xsd.exe实用程序)
这些工具可以提供一个很好的起点,但是它们不能代替思考实际的模式约束应该是什么。 您将获得两种错误的机会:(1)允许不应允许的XML,以及(2)禁止应允许的XML。
例如,假设您要从几千个包含“性别”标签的患者记录中推断出XSD(我曾经在医疗记录软件上工作)。 该工具可能会遇到值“ M”和“ F”,并可能推断出该元素是一个枚举。 但是,其他有效(尽管很少使用)值是B(均为),U(未知)或N(无)。 当然,这些很少见。 因此,如果您将派生的架构用作输入验证器,那么它将可以很好地运行,直到有多个性器官的患者入院为止。
相反,为避免此错误,XSD生成器可能不会添加枚举类型限制(我不记得这些在模式中被称为什么),并且您的应用程序将运行良好,直到遇到性别= X的错误记录。
所以,当心。 最好仅将这些工具用作起点。 而且,它们往往会产生冗长而冗长的模式,因为它们无法像人类一样找出模式。
您可以使用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”
尝试使用Google的xsd-gen项目。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.