0

我们有数百个没有预先定义 XML 模式 (XSD) 的 XML 文件。我能够使用工具(IntelliJ Idea)从其中一个文件生成 XSD,但它不够聪明,无法识别哪些元素和属性是可选的,哪些是必需的。

一种自动化的方法是使用以下启发式从多个 XML 文件中对 XSD 进行逆向工程:

如果在某些情况下出现而在其他情况下不出现,则属性/元素是可选的( use="optional"/ )。minOccurs=0否则,它是必需的( use="required"/ minOccurs=1)。

显然,如果该 XML 具有足够的代表性,则启发式方法也适用于单个 XML 文件。

例如,flightNumber给定以下输入, a 将被视为可选:

   <list>
     <carrier name="BA" flightNumber="213" />
     <carrier name="CY" />
   </list>

您是否知道任何生成 XSD 并识别属性/元素是否可选的工具?

4

1 回答 1

1

试试QTAssistant(我与它有关联)。在工具选项卡下

在此处输入图像描述

XMLs命令有一个XSD。

在此处输入图像描述

您的 XML 文件应该都在一个文件夹中。从对话框中,您必须选择在生成 XSD 时要考虑的那些。XSD 将在同一文件夹中生成并为您加载。

但是,我还没有尝试过数百个 XML 文件。如果您遇到任何问题,请通过我们网站上的支持地址告诉我。下载免费试用,但需要注册。

于 2012-09-19T19:15:42.573 回答