149

我正在寻找一种工具,它将采用 XML 实例文档并输出相应的 XSD 模式。

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

4

10 回答 10

67

Microsoft XSD 推理工具是一个很好的免费解决方案。许多 XML 编辑工具,例如 XmlSpy(@Garth Gilmour 提到)或 OxygenXML Editor 也具有该功能。不过,它们相当昂贵。BizTalk Server 也有一个 XSD 推断工具。

编辑:我刚刚发现了 .net XmlSchemaInference类,所以如果你使用的是 .net,你应该考虑

于 2008-09-16T17:41:19.923 回答
59

您可以使用开源和跨平台选项:来自Apache 的 XMLBeans 的inst2xsd 。我发现它非常有用且简单。

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

于 2008-10-08T18:12:58.667 回答
54

里是这里的最佳选择。开源和跨平台(虽然需要 Java)

来自董里网站:

Trang 在 XML 的不同模式语言之间进行转换。它支持以下语言

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

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

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

下载链接

于 2009-08-06T02:09:33.360 回答
19

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

于 2012-06-25T13:17:35.887 回答
13

GithubXML schema learner上也有。

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

于 2011-12-06T09:53:18.713 回答
11

如果您安装了 .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:]

通常,此工具生成的类和模式工作得很好,特别是如果您打算在 .Net 语言中使用它们

我通常采用我所追求的 XML 文档,通过带有/o:<your path>标志的 XSD 工具将其推送以生成模式 (xsd),然后使用/classes /L:VB (or CS) /o:<your path>标志通过工具将 xsd 文件推回以获取我可以导入和使用的类在我的日常 .Net 项目中

于 2008-09-17T23:29:11.170 回答
7

如果你想要的只是 XSD,LiquidXML 有一个免费的 XSD 版本,它有一个 GUI,所以你可以根据需要调整 XSD。无论如何,现在我自己编写了自己的 XSD,但这一切都归功于这个应用程序。

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

于 2008-09-17T06:37:54.317 回答
5

如果您在 Java 世界中工作 - intelliJ idea还具有广泛的 xml 支持,包括 xsd 生成和来自 xsd 生成的示例 xml,并且您可以使用插件获得 xslt 调试器。- 如果您打算之后使用诸如 jaxb 之类的工具,那就太好了。

于 2008-09-17T23:31:16.890 回答
4

Altova XmlSpy 做得很好 - 你可以在这里找到概述

于 2008-09-16T17:41:31.123 回答
4

这是一个旧线程,但我认为发布此链接可能会很有用:刚刚找到这个工具: xsd-gen Generate XML Schema from XML

它只是做了我需要的。

于 2013-08-03T14:59:53.093 回答