我有一个XML输入
<field>
<name>id</name>
<dataType>string</dataType>
<maxlength>42</maxlength>
<required>false</required>
</field>
我正在寻找一个库或工具,它将获取XML实例文档并输出相应的XSD架构。
我正在寻找一些可以为上述XML结构生成XSD的java库
答案 0 :(得分:12)
如果您想要的只是一个XSD,以便您提供的XML符合它,那么您自己制作它而不是使用工具会更好。
没有人比你更了解架构的特殊性,例如哪些有效值(例如,所需的<maxlength>
元素?是true
和false
唯一<required>
的有效值?)。
如果你真的想使用一个工具(如果你没有设计XML并且真的无法获得真正的XSD,我只会建议使用它 - 或者如果你设计了它,请仔细检查生成的XSD),你可以试试Trang。它可以从许多示例XML中推断出XSD Schema。
如果XML样本不够具有代表性,您必须考虑到XSD工具可以推断您可能不完整或不准确。
java -jar trang.jar sampleXML.xml inferredXSD.xsd
答案 1 :(得分:5)
您可以尝试使用名为XMLGrid的在线工具:http://xmlgrid.net/xml2xsd.html
答案 2 :(得分:1)
您可以编写一个XSLT来执行某事。但问题是,单独的单个文档不足以生成模式。这些元素是否可选?该文档中是否有任何遗漏,可能出现在其他情况中?有多少特定元素可以存在?他们必须按顺序吗?在模式中可以表达大量的东西,这些东西在符合该模式的文档的一个实例中并不是立即显而易见的。
答案 3 :(得分:1)
对于真正希望将其包含在Java代码中以生成XSD并了解危险的人,请查看Generate XSD from XML programatically in Java
答案 4 :(得分:0)
尝试xmlbeans它有一些工具,其中一个是ins2xsd,你可以在这里找到具体信息: http://xmlbeans.apache.org/docs/2.0.0/guide/tools.html 祝你好运