Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从XML元素生成XSD_Java_Xml_Xsd - Fatal编程技术网

Java 如何从XML元素生成XSD

Java 如何从XML元素生成XSD,java,xml,xsd,Java,Xml,Xsd,我有一个XML输入 <field> <name>id</name> <dataType>string</dataType> <maxlength>42</maxlength> <required>false</required> </field> 身份证件 一串 42 假的 我正在寻找一个库或工具,它将获取XML实例文档并输出相应的XSD模式 我正在寻找一

我有一个XML输入

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

身份证件
一串
42
假的
我正在寻找一个库或工具,它将获取XML实例文档并输出相应的XSD模式


我正在寻找一些java库,通过它我可以为上述XML结构生成XSD。您可以使用名为XMLGrid的在线工具进行尝试:

您可以编写XSLT来完成类似的操作。但问题是,仅仅一个文档不足以生成模式。这些元素中有任何一个是可选的吗?该文档中是否缺少其他实例中可能出现的内容?一个特定元素可以有多少个?他们一定要按那个顺序吗?有很多东西可以在模式中表达,但在符合该模式的文档实例中,这些东西并不明显

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

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

如果您真的想使用一个工具(我只建议您在没有设计XML并且无法获得真正的XSD时使用它,或者如果您设计了它,请仔细检查生成的XSD),您可以尝试。它可以从大量示例XML推断XSD模式

您必须考虑到,如果XML示例不具有足够的代表性,XSDA工具可以推断您可能不完整或不准确

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

您可以找到一个。

试试xmlbeans它有一些工具,其中一个是ins2xsd。您可以在这里找到详细信息:
祝您好运

对于那些真正希望将其包含在Java代码中以生成XSD并了解其风险的人,请查看

欢迎使用SO!即使你文章中的链接提供了答案,你也必须提供链接中的内容。稍后链接可能无效。是否有办法查看trang的所有输出选项?它们似乎在中有很好的文档记录。我不知道我的xsd如何使用“ref”标记或导入。我尝试了-o禁用抽象元素,但这不起作用!