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