it-swarm.cn

任何从XML实例文档生成XSD架构的工具?

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

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

145
Matt Dillard

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

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

65
Danimal

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

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

54
Dario

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

来自Trang网站:

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

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

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

Trang还可以从一个或多个示例XML文档中推断出架构。

下载链接

51
Derferman

在VS2010中,如果将XML文件加载到编辑器中,请单击XML菜单>>创建架构。

15
Nathan Donnellan

还有 XML schema learner 可用于 Github

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

11
edorian

如果安装了.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项目中使用

10
Pat Hermens

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

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

6
Robert Gould

如果你在Java世界工作 - intelliJ idea 也有广泛的xml支持,包括xsd生成的xsd生成和samle xml,并且使用插件你可以获得xslt调试器。 - 如果您计划之后使用jaxb等工具,那就特别好。

4
Andreas Petersson

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

3
Garth Gilmour

这是一个旧线程,但我认为发布此链接可能很有用:刚刚找到此工具: xsd-gen从XML生成XML模式

它只是做了我需要的。

3
v_e