12

我有一个 XML 输入

<field>
  <name>id</name>
  <dataType>string</dataType>
  <maxlength>42</maxlength>
  <required>false</required>
</field>

我正在寻找一个库或工具,它将采用 XML 实例文档并输出相应的 XSD 模式。

我正在寻找一些可以为上述 XML 结构生成 XSD 的 java 库

4

5 回答 5

14

如果您想要的只是一个 XSD,以便您提供的 XML 符合它,那么您自己制作它而不是使用工具会好得多。

没有人比您更了解模式的特殊性,例如存在哪些有效值(例如,是否<maxlength>需要元素?是true以及false唯一的有效值<required>?)。

如果你真的想使用一个工具(如果你没有设计 XML 并且真的无法获得真正的 XSD,我只建议使用它 - 或者如果你设计了它,请仔细检查生成的 XSD),你可以尝试里 它可以从许多示例 XML 中推断出 XSD Schema。

您必须考虑到,如果 XML 样本没有足够的代表性,工具可以推断出您可能不完整或不准确的 XSD。

java -jar trang.jar sampleXML.xml inferredXSD.xsd

您可以在此处找到 Trang 的使用示例

于 2013-05-07T13:41:07.750 回答
6

您可以尝试使用名为 XMLGrid 的在线工具:http: //xmlgrid.net/xml2xsd.html

于 2013-05-07T13:30:54.163 回答
2

对于真正想将其包含在 Java 代码中以生成 XSD 并了解其中的风险的人,请查看Generate XSD from XML programatically in Java

于 2015-04-17T19:33:11.273 回答
2

您可以编写一个 XSLT 来做类似的事情。但问题是,单独的单个文档不足以生成模式。这些元素中的任何一个都是可选的吗?该文档中是否缺少任何可能出现在其他情况下的内容?一个特定的元素可以有多少个?他们必须按这个顺序吗?有很多东西可以在模式中表达,从符合该模式的文档的一个实例中不会立即显而易见。

于 2013-05-07T13:31:09.960 回答
1

试试 xmlbeans,它有一些工具,其中之一是 ins2xsd,你可以在这里找到详细信息:http://xmlbeans.apache.org/docs/2.0.0/guide/tools.html 你好运

于 2013-09-20T07:24:14.420 回答