3

见标题:我有大约 50 个 XSD 文件相互导入(带有标签),我需要分析它们的依赖关系。

您是否知道任何软件(最好是免费的)可以从这些文件中自动生成依赖关系图?

4

2 回答 2

4

我没有找到任何现有的程序来做到这一点,所以......我开发了自己的!它被称为GraphVisu

有第一个程序从种子 XSD 文件生成图形结构,另一个程序用于可视化图形。我还包括检测相互关联的节点集群(在图论中称为“强连接组件”)。

随意使用它!

图形可视化程序 GraphVisu

图形可视化程序 GraphVisu

于 2013-10-29T09:55:19.770 回答
3

我不知道有任何专门为 XSD 量身定制的免费解决方案。如果我必须使用免费提供的组件来构建它,我可能会考虑GraphViz。您需要编写一个模块来生成 GraphViz 所需的数据,这些数据将来自解析 XSD 文件。如果您考虑到模式位置的工作原理和解析方式,并正确处理循环依赖关系,则后者是微不足道的。好消息是 GraphViz 在广泛的平台上得到支持,只要你能解析 XML,你就可以设置。

我还为QTAssistant开发了自己的 XML Schema Refactoring (XSR) 插件。这个特殊的功能集自 2004 年以来就已经存在,所以它工作得非常好,包括 WSDL 和 XSD 文件。

我可以以不同的方式解释您的要求,因此我将参考您可以使用 XSR 做什么:

  • XSD 文件依赖项

QTAssistant 显示 ACORD 2.21 XSD 文件布局

这是一个简单的,显示分层布局。

QTAssistant 显示 Orbitz XSD 文件布局

这是一个更复杂的,显示一个有机的布局。

  • 内部 XSD 文件架构组件依赖项:可以根据任意标准进行过滤(不确定您的意思with tags)。

QTAssistant 显示内部 XSD 文件依赖项

  • XSD 文件集架构组件依赖项(与上述相同,但可以跨不同文件导航)

该工具带有一个自动化库,您可以在其中编写几行 C# 或 Java 脚本代码,然后您可以使用 QTAssistant shell 或命令行 shell 调用这些代码,以将其与自动构建过程集成。

其他功能包括使用GraphML导出基础数据的能力,即如果您希望进一步分析或处理图形(例如拓扑排序、循环等)

于 2012-09-12T14:03:02.917 回答