繁体   English   中英

使用Java将XML转换为XSD

[英]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的错误记录。

所以,当心。 最好仅将这些工具用作起点。 而且,它们往往会产生冗长而冗长的模式,因为它们无法像人类一样找出模式。

检查Castor ,我认为它具有您想要的功能。 它们还为您提供了一个从XML文件创建XSD架构的ant任务

PS:我建议您将来添加更多特定的标签:例如,使用xmlxsdjava将增加获得答案的可能性。

您可以使用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项目。

https://code.google.com/p/xsd-gen/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM