我正在寻找一种工具,它将采用 XML 实例文档并输出相应的 XSD 模式。
我当然认识到,与手动创建模式相比,生成的 XSD 模式将受到限制(它可能不会处理可选或重复元素或数据约束),但它至少可以作为一个快速起点。
Microsoft XSD 推理工具是一个很好的免费解决方案。许多 XML 编辑工具,例如 XmlSpy(@Garth Gilmour 提到)或 OxygenXML Editor 也具有该功能。不过,它们相当昂贵。BizTalk Server 也有一个 XSD 推断工具。
编辑:我刚刚发现了 .net XmlSchemaInference类,所以如果你使用的是 .net,你应该考虑
您可以使用开源和跨平台选项:来自Apache 的 XMLBeans 的inst2xsd 。我发现它非常有用且简单。
只需下载、解压缩和播放(它需要 Java)。
在 VS2010 中,如果您将 XML 文件加载到编辑器中,请单击 XML 菜单 >> Create Schema。
它可以获取多个 xml 文件并从所有这些文件中提取一个公共 XSD。
如果您安装了 .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 项目中
如果你想要的只是 XSD,LiquidXML 有一个免费的 XSD 版本,它有一个 GUI,所以你可以根据需要调整 XSD。无论如何,现在我自己编写了自己的 XSD,但这一切都归功于这个应用程序。
如果您在 Java 世界中工作 - intelliJ idea还具有广泛的 xml 支持,包括 xsd 生成和来自 xsd 生成的示例 xml,并且您可以使用插件获得 xslt 调试器。- 如果您打算之后使用诸如 jaxb 之类的工具,那就太好了。
这是一个旧线程,但我认为发布此链接可能会很有用:刚刚找到这个工具: xsd-gen Generate XML Schema from XML
它只是做了我需要的。