【发布时间】:2010-10-27 14:23:18
【问题描述】:
我正在寻找可以从 XML 文件生成 XSD 的工具或 java 代码或类库/API。 (类似于 .NET Framework sdk 中的 xsd.exe 实用程序)
【问题讨论】:
我正在寻找可以从 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 项目。
【讨论】: