【发布时间】:2012-09-12 10:25:34
【问题描述】:
见标题:我有大约 50 个 XSD 文件相互导入(带有标签),我需要分析它们的依赖关系。
你知道任何软件(最好是免费的)可以从这些文件中自动生成依赖关系图吗?
【问题讨论】:
标签: xsd diagram dependency-management circular-dependency
见标题:我有大约 50 个 XSD 文件相互导入(带有标签),我需要分析它们的依赖关系。
你知道任何软件(最好是免费的)可以从这些文件中自动生成依赖关系图吗?
【问题讨论】:
标签: xsd diagram dependency-management circular-dependency
我没有找到任何现有的程序来做到这一点,所以...我开发了自己的!它被称为GraphVisu。
第一个程序可以从种子 XSD 文件生成图形结构,另一个程序可以可视化图形。我还包括检测相互关联的节点集群(在图论中称为“strongly connected components”)。
请随意使用!
【讨论】:
我不知道有任何专门为 XSD 量身定制的免费解决方案。如果我必须使用免费可用的组件来构建它,我可能会考虑GraphViz。您需要编写一个模块来生成 GraphViz 所需的数据,这些数据将来自解析 XSD 文件。如果您考虑到模式位置的工作原理和解析方式,并正确处理循环依赖关系,则后者是微不足道的。好在 GraphViz 得到了广泛的平台支持,只要你能解析 XML,就可以设置。
我还开发了自己的 XML Schema Refactoring (XSR) 插件,用于QTAssistant。这个特殊的功能集自 2004 年以来一直存在,因此它运行得非常好,包括 WSDL 和 XSD 文件。
我可以对您提出的问题做出不同的解释,因此我将参考您可以使用 XSR 做什么:
这是一个简单的,显示分层布局。
这是一个更复杂的,显示一个有机的布局。
with tags 是什么意思)。该工具附带一个自动化库,您可以在其中编写几行 C# 或 Java 脚本代码,然后您可以使用 QTAssistant shell 或命令行 shell 调用这些代码,以将其与自动构建过程集成。
其他功能包括使用GraphML 导出基础数据的功能,即如果您希望进一步分析或处理图形(例如拓扑排序、循环等)
【讨论】: