是否有从 XML 实例文档生成 XSD 模式的工具?

我正在寻找一个工具,将采取一个 XML 实例文档和输出相应的 XSD 模式。

我当然认识到,与手工创建模式相比,生成的 XSD 模式将是有限的(它可能不会处理可选的或重复的元素或数据约束) ,但它至少可以作为一个快速起点。

192074 次浏览

MicrosoftXSD 推理工具是一个很好的免费解决方案。许多 XML 编辑工具,如 XmlSpy (@Garth Gilmour 提到过)或 OxgenXML Editor 也具有这一特性。不过很贵的。BizTalkServer 还有一个 XSD 推理工具。

编辑: 我刚刚发现了.net XmlSchemaInferences类,所以如果您正在使用.net,您应该考虑这一点

Altova XmlSpy 在这方面做得很好——您可以找到 给你的概述

如果您想要的只是 XSD,QuiidXML 有一个免费的版本,可以执行 XSD,并且它有一个 GUI,因此您可以根据需要调整 XSD。无论如何,现在我写我自己的 XSD 手,但它的所有感谢这个应用程序。

Http://www.liquid-technologies.com/

如果您已经安装了.Net,那么默认情况下已经包含了一个用于生成 XSD 模式和类的工具。
对于我来说,XSD 工具是按照以下结构安装的。

C:\Program Files\Microsoft Visual Studio 8\VC>xsd
Microsoft (R) Xml Schemas/DataTypes support utility
[Microsoft (R) .NET Framework, Version 2.0.50727.42]
Copyright (C) Microsoft Corporation. All rights reserved.


xsd.exe -
Utility to generate schema or class files from given source.


xsd.exe <schema>.xsd /classes|dataset [/e:] [/l:] [/n:] [/o:] [/s] [/uri:]
xsd.exe <assembly>.dll|.exe [/outputdir:] [/type: [...]]
xsd.exe <instance>.xml [/outputdir:]
xsd.exe <schema>.xdr [/outputdir:]

通常,这个工具生成的类和模式工作得非常好,特别是如果您要在。网络语言

我通常使用我想要的 XML 文档,通过带有 /o:<your path>标志的 XSD 工具生成一个模式(XSD) ,然后使用 /classes /L:VB (or CS) /o:<your path>标志通过该工具将 XSD 文件推回,以获得可以在日常生活中导入和使用的类。净项目

如果你在 java 世界工作-智慧的想法也有广泛的 xml 支持,包括 xsd 生成和来自 xsd 生成的 samle xml,通过插件你可以得到 xslt 调试器。特别是如果你打算使用工具,如 jaxb 后。

您可以使用一个开源和跨平台的选项: inst2xsd from Apache 的 XMLBeans

只需下载,解压缩和播放(它需要 Java)。

Trang 是最好的选择,开源和跨平台(尽管需要 Java)

庄网站:

Trang 在不同的 XML 模式语言之间进行转换

  • RELAX NG (XML 语法)
  • RELAX NG 紧凑语法
  • XML 1.0 DTD
  • W3C XML 模式

使用任何受支持的模式语言编写的模式都可以转换为其他受支持的模式语言,但 W3C XML Schema 只支持输出,而不支持输入。

Trang 还可以从一个或多个示例 XML 文档推断模式。

下载连结

还有 强 > XML schema learner,这是可在 Github

它可以采取 多个 xml 文件从所有这些文件中提取一个公共 XSD

在 VS2010中,如果将 XML 文件加载到编辑器中,请单击 XML 菜单 > > Create Schema。

这是一个很老的帖子,但是我认为发布这个链接会很有用: 刚刚找到这个工具: 从 XML 生成 XML 模式

它正好满足了我的需要。