如何以编程方式可视化 XML 模式?

我已经制作了一个 XML Schema-基本上所有的代码-并且想知道是否有一种方法可以让代码生成这样的东西:

enter image description here

如果是这样,我该怎么做?

227666 次浏览

该图片是从一个 XMLSchema 编辑工具(如 Altova 的 XMLSpy)生成的。

有许多 XML 工具,所有这些工具都将包括一个图形 XSD 查看器。我提到 XMLSpy 仅仅是因为它是品牌领导者。还有许多常规 IDE,如 Eclipse、 VisualStudio 和 OracleJDeveloper 也能够做到这一点。

如果您需要更简单、更面向文本的 XSD 文档,请查看 Xs3p-一个 XSLT 样式表,它将把您的 XSD 转换成更易读的 HTML 格式。很不错,而且完全免费。

如果这还不够,看看那里的一些商业工具-我个人更喜欢 液态 XML 工作室-不像其他的那么昂贵,而且相当有能力!

请尝试 https://github.com/santhosh-tekuri/jlibs提供的 xsd-Viewer。

我们提供了一个名为 DocFlex/XML XSDDoc的工具,它可以让你同时享受这两件事情:

  • 对 XML 架构进行图表重新设置
  • 将所有这些图嵌入(和超链接)在高度复杂的 XML 模式文档中

这些图表实际上不是由我们生成的,而是由 Altova XMLSpy生成的。我们实现了一个 与 XMLSpy 集成(完全支持所有关系图超链接) :

XML schema documentation with diagrams generated by XMLSpy

这里你可以看到完整的这个文件: http://www.filigris.com/docflex-xml/xsddoc/examples/html/XMLSchema/index.html

整个事情提供了一个功能,而不是由任何单一的供应商现在在市场上!

我们的一些客户对此印象深刻,他们购买了 XMLSpy 的额外许可证,仅仅是因为我们的工具。(这不是玩笑!)


目前,我们还与其他 XML 编辑器实现了类似的集成:

使用 < oXygen/> XML Editor :

XSDDoc with diagrams generated by <oXygen/> XML Editor

见: http://www.filigris.com/docflex-xml/OxygenXML/demo/html/xslt20/index.html

使用 LCD XML Studio :

XSDDoc with diagrams generated by Liquid XML

见: http://www.filigris.com/docflex-xml/LiquidXML/demo/html/XMLSchema/index.html


关于所有这些图所描述的内容... ... 本质上,它们都是关于 XSD 元素的内容模型(以及导致元素的其他 XSD 组件: 复杂类型、元素/属性组)。这里似乎有两种方法:

  1. 为了显示结果内容模型(由给定的组件表示)的外观,这就是 XMLSpy 的方法。
  2. 显示特定内容模型(给定组件的)是如何从其他组件派生出来的。这就是 < oXygen/> XML 和液态 XML 的方法。

我个人认为 XMLSpy 生成的图更有用。

然而,到目前为止还没有尝试(至少我知道)以图形方式描述 XML 模式中包含的任何其他内容,尽管我们可以想象许多..。

在 Linux (有 mono,可通过 Debian 上的 apt-get获得)和 Windows 上:

如果你使用的是 Windows 系统,我建议你看一下:

这两个工具都是免费的,并且都能够提供类似的可视化效果,如您的示例所示。

开放源码命令行 java 应用程序 Xsdvi从 XML 模式定义创建 SVG 格式的交互式图表。生成的 SVG 文件可以通过现代的 Web 浏览器显示,用户可以通过鼠标单击来展开和折叠树。

下面是一个生成的图示例

Http://xsdvi.sourceforge.net/ipo.svg

软件可以从

Http://sourceforge.net/projects/xsdvi/

它可以按如下方式运行(假设已安装 Java 并且 java.exe在路径中) :-

  1. 转到 dist/lib文件夹。
  2. 运行以下命令 java -jar xsdvi.jar <input1.xsd> [<input2.xsd> [<input3.xsd> ...]] [style]

你可以使用 XMLGrid的在线查看器,它提供了强大的 XSD 支持和许多其他特性:

  • 在 XML 数据网格中显示 XML 数据。
  • 支持 XML、 XSL、 XSLT、 XSD、 HTML 文件类型。
  • 易于修改或删除现有节点、属性、注释。
  • 易于添加新节点、属性或注释。
  • 易于展开或折叠 XML 节点树。
  • 查看 XML 源代码。

截图:

Screenshot

在我看来,Oracle JDeveloper 11g内置查看器优于 日食(除了其他不利的比较点之外,我只能为 靛蓝安装,而不能为 朱诺安装)。如果我没有弄错的话,Oracle使 JDeveloper 免费可用(只需要在 OTN 注册)。

enter image description here

XSD Diagram 是免费的(GNU 开放许可证) ,不需要构建,并提供了一个交互式图表。 您只需打开该文件并在(最初为空白的)关系图上添加所需的类型。 直截了当。

enter image description here

我们使用液态 XMLStudio,它提供了 XSD 模式的直观可编辑表示。它还显示了内联注释,我们发现这非常有用,而且分割代码/gfx 视图在编写或编辑 XSD 时非常有价值。

Liquid XML Studio XSD Editor

VisualStudio2013内置了一个非常酷的可视化工具。

File-> Open-> File 选择. xsd,然后将元素从 XML 模式资源管理器拖到设计器图面上。

这是我的方法-下载 FreemindXML 模板编辑器。 然后打开 CAM XML,从 XML 中创建新的模板,View-> View Template As Mind Map
这种解决方案的优点:

  • 它在本地运行,所以可以处理机密文件,
  • 完全免费,
  • 开源。

缺点:

  • 大文件(超过20sh MB)非常不稳定。

如果有人与 IBMRationalApplicationDeveloper 一起工作,那么 XSD 浏览器就建立在其中。

有一个新的免费使用的 webtool,您可以在其中查看任何 xml 模式:

联机 XML 架构查看器

Www.xml-tools.net

它完全是用 JavaScript 编写的,所以在大多数现代浏览器中都可以运行。

Grid-ML Schema Viewer 非常适合搜索和可视化 XML Schema: https://gridml.com/xml-schema-viewer。当涉及到大型模式或浏览图表不可行时,我发现它比其他工具更好。该工具还允许您复制选择项的 XPath 或 JSON 路径。

网格-ML 模式搜索屏