题
我正在寻找一个工具,它将获取 XML 实例文档并输出相应的 XSD 架构。
我当然认识到,与手动创建模式相比,生成的 XSD 模式将受到限制(它可能无法处理可选或重复元素或数据约束),但它至少可以作为一个快速起点。
解决方案
这 Microsoft XSD 推理工具 是一个很好的、免费的解决方案。许多 XML 编辑工具,例如 XmlSpy(@Garth Gilmour 提到)或 OxygenXML Editor 也具有该功能。不过,它们相当昂贵。BizTalk Server 也有一个 XSD 推断工具。
编辑:我刚刚发现.net XmlSchema推断 类,所以如果您使用 .net,您应该考虑这一点
其他提示
您可以使用开源和跨平台选项:inst2xsd 来自 Apache 的 XMLBean. 。我发现它非常有用且简单。
只需下载、解压并播放(需要 Java)。
在 VS2010 中,如果将 XML 文件加载到编辑器中,请单击 XML 菜单 >> 创建架构。
还有 XML schema learner
可以在 吉图布.
它可以需要 多个 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 文档,然后使用以下命令将其通过 XSD 工具推送: /o:<your path>
标记生成架构 (xsd),然后使用该工具将 xsd 文件推回 /classes /L:VB (or CS) /o:<your path>
用于获取我可以在日常 .Net 项目中导入和使用的类的标志
如果您想要的只是 XSD,LiquidXML 有一个可以执行 XSD 的免费版本,并且它有一个 GUI,因此您可以根据需要调整 XSD。无论如何,现在我用手写了自己的 XSD,但这一切都归功于这个应用程序。
如果您在 Java 世界工作 - 智慧理念 还具有广泛的 xml 支持,包括 xsd 生成和 xsd 生成的样本 xml,并且通过插件您可以获得 xslt 调试器。- 如果您打算随后使用 jaxb 等工具,那就特别好。
Altova XmlSpy 做得很好 - 您可以找到概述 这里
这是一个旧线程,但我认为发布此链接可能有用:刚刚发现这个工具:xsd-gen 从 XML 生成 XML 架构
它正好满足了我的需要。