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

154

我制作了一个XML Schema - 基本上所有的代码 - 想知道是否有一种方法可以生成类似于这样的内容:

输入图像描述

如果可以,我该如何做?


3
如果你正在使用Confluence,请查看Atlassian Marketplace中的新XSD查看器插件nl.avisi.confluence.plugins.xsdviewer - user2111122
1
看起来我找到的工具就是问题发起者所截屏的那个。 - toddmo
你使用哪种编程语言?如果你只是在寻找软件推荐,那么有更好的StackExchange网站可以提供帮助。 - Aminadav Glickshtein
15个回答

73
开源命令行Java应用程序 xsdvi 可以从XML Schema定义创建一个交互式的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]

3
使用方法: java -jar xsdvi.jar <input1.xsd> [<input2.xsd> [<input3.xsd> ...]] [style] (来自 xsdvi.zip /res/readme.txt) - roblogic
这个工具唯一的问题是生成的SVG有点慢。比如,如果我打开后“全部折叠”,需要大约十五秒钟才能折叠完成。但它是免费的...所以... - An Illusion
伟大的开源软件!唯一的问题是SVG文件会很大,点击+/-按钮会变得非常缓慢(3-5秒)。 - Xin Meng
你们需要买一台更快的电脑 :) 对我来说它运行得很好,是一个非常好的工具。 - debuti
看起来它已经超过10年没有更新了... XSD定义的演变速度也不是很快,但这仍然引发了一个问题,即格式支持是否跟得上时代。 - Daddy32
显示剩余3条评论

62

XSD Diagram 是免费的(GNU开源许可证),无需构建,提供交互式图表。 您只需打开文件并在(最初为空白的)图表上添加所需的类型。 非常简单明了。

输入图像描述


3
不错,甚至可以在最新的Mono-MDK(4.0)上在OSX上运行。正是我正在寻找的东西。 - Erich Eichinger
1
这是一款非常棒的小软件。它非常轻巧,不需要JRE,运行速度快。我很喜欢它。 - Mohammed Lokhandwala
它在默认的Ubuntu存储库中 - 不知道为什么官方网站没有提到这个? - pateksan
有更新版本吗?这是基于已经过时的.NET Framework 2.0/3.5。 - Max
@Max,如果你下载2.0版本并运行它会发生什么? - toddmo
显示剩余4条评论

32
你可以使用XMLGrid 的在线查看器,它提供了出色的XSD支持和许多其他功能:
  • 在XML数据网格中显示XML数据。
  • 支持XML、XSL、XSLT、XSD、HTML文件类型。
  • 轻松修改或删除现有节点、属性、注释。
  • 轻松添加新节点、属性或注释。
  • 轻松展开或折叠XML节点树。
  • 查看XML源代码。

截图:

Screenshot


30

在我看来,Oracle JDeveloper 11g内置的查看器比可用于Eclipse的查看器更加出色(此外,除了其他不利的比较点外,我只能在Indigo而非Juno上安装它)。如果我没有记错的话,Oracle可免费提供JDeveloper(仅需要在OTN注册)。

输入图像说明


1
JDeveloper(Java版)为我完成了工作,尝试了这里提到的其他软件,但没有成功。 - SyAu
2
在OSX上使用时要小心:解压缩.zip文件后,JDeveloper.app由于文件权限问题无法启动。您必须设置可执行位于/Applications/jdeveloper/JDeveloper.app/Contents/MacOS/JDeveloper。然后,直到您像这样保存JDK路径在~/.jdev_jdk中,它才会启动: echo $JAVA_HOME > ~/.jdev_jdk - user17481
这个功能非常好用!我们以前使用XMLSpy添加API图片,但是有时候会遇到一些尴尬的情况,比如找到有许可证的人、找到试用版的人或者找到还没有安装试用版的人来制作图片。为了只做几张图片而购买一个价值500美元的程序似乎有些荒谬。 - Captain Man

24

对于Linux(使用Mono,在Debian上可以通过apt-get获取)和Windows:

如果您使用Windows系统,建议您查看以下工具:

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


2
XSD图表非常好。谢谢。需要注意的一点是:当您加载XSD时,应用程序在图表选项卡上不显示任何内容,甚至不显示根元素。我以为它坏了,但事实证明您只需明确告诉它要显示哪些元素即可。 - dan-gph
最佳答案!对于Linux,使用“sudo apt install xsddiagram”安装XSDDiagram。 - Kevin Chou

20

如果你需要一份以更简单、更文本为导向的方式记录你的 XSD 文档,可以查看xs3p - 一个 XSLT 样式表工具,它可以将你的 XSD 转换成更易读的 HTML 格式。非常好用,而且完全免费。

如果这还不够,可以看看一些商业工具 - 我个人喜欢Liquid XML Studio - 它价格不如其他工具昂贵,但同样功能强大!


2
社区版已被每年106.90美元的非免费入门版所取代。 - Andrew Swan
@Andrew Swan:真遗憾...不过,Liquid XML是一个很棒的工具。 - marc_s
目前(2013年3月),有一个完全功能的免费30天试用版本可供使用(再次提供)。 - Jürgen Thelen
上面提到的xs3p链接无法使用。有人知道它去哪了吗? - theMayer

15

这幅图片是由一个XML Schema编辑工具生成的,例如Altova的XMLSpy

有许多XML工具可用,其中所有的工具都将包括一个图形化XSD查看器。我提到XML Spy只是因为它是品牌领导者。此外,许多通用的IDE(如Eclipse、Visual Studio和Oracle JDeveloper)也能够实现这个技巧。


3
在 Eclipse 中,你可以右键点击 XSD 文件,选择“打开方式” -> “其他...” -> “XML Schema 编辑器”,尽管该编辑器在浏览一个 340kb 的文件时有些不太灵敏。 - Andrew Swan
2
JDeveloper XSD视图看起来很好。 - Carlos

6
我们提供一款名为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

使用Liquid 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和Liquid XML的方法。

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

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


5

现在有一个免费的网络工具,你可以使用它查看任何xml模式:

在线XML模式查看器

www.xml-tools.net

它完全使用JavaScript编写,因此可以在大多数现代浏览器中运行。


我在Google Chrome浏览器的顶部看不到任何工具栏菜单? - user310291
请告诉我您的操作系统和浏览器版本 - 谢谢! - Peter Raffelsberger

5

Visual Studio 2013内置了一个非常酷的可视化工具。

选择“文件”->“打开”->“文件”,选择您的.xsd文件,然后将XML Schema资源管理器中的元素拖放到设计师界面上即可。


如何打开设计师界面? - Nitish Upreti
1
设计表面应该在您执行文件->打开->选择.xsd文件时打开。此时,您的xml模式尚未显示,因此设计师表面有点空白...它将作为一个空白选项卡打开,并提供一些操作说明。 文本内容为“通过从XML Schema Explorer拖动节点来可视化XML模式集”您必须单击XML Schema Explorer这个词,它是一个链接,将打开一个侧边栏(该侧边栏将包含您可以拖放到设计师表面上的xml模式部分) - ambidexterous
我不确定,但这可能是仅在VS企业版中可用的功能。我没有尝试过其他版本的VS。 - ambidexterous
1
Visual Studio 2017也可以显示XSD结构。 - Tony

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接