我正在寻找一个工具,它将采用XML实例文档并输出相应的XSD架构.
我当然认识到,与手工创建模式相比,生成的XSD模式将受到限制(它可能不会处理可选或重复元素或数据约束),但它至少可以作为一个快速起点.
在微软XSD推理工具是一个很好的,免费的解决方案.许多XML编辑工具,如XmlSpy(由@Garth Gilmour提到)或OxygenXML Editor也具有该功能.不过,它们相当昂贵.BizTalk Server也有一个XSD推断工具.
编辑:我刚刚发现了.net XmlSchemaInference类,所以如果你使用.net,你应该考虑一下
您可以使用开源和跨平台选项:Apache的XMLBeans中的 inst2xsd .我发现它非常有用和简单.
只需下载,解压缩和播放(它需要Java).
Trang是这里最好的选择.开源和跨平台(虽然需要Java)
来自Trang网站:
Trang在XML的不同模式语言之间进行转换.它支持以下语言
RELAX NG(XML语法)
RELAX NG紧凑语法
XML 1.0 DTD
W3C XML Schema
使用任何支持的模式语言编写的模式都可以转换为任何其他支持的模式语言,但W3C XML模式仅支持输出,不支持输入.
Trang还可以从一个或多个示例XML文档中推断出架构.
下载链接
在VS2010中,如果将XML文件加载到编辑器中,请单击XML菜单>>创建架构.
还有GithubXML 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.xsd /classes|dataset [/e:] [/l:] [/n:] [/o:] [/s] [/uri:] xsd.exe .dll|.exe [/outputdir:] [/type: [...]] xsd.exe .xml [/outputdir:] xsd.exe .xdr [/outputdir:]
通常,此工具生成的类和模式工作得相当好,特别是如果您要使用.Net语言来使用它们
我通常使用我正在使用的XML文档,通过带有/o:
标志的XSD工具将其推送到生成模式(xsd)然后使用/classes /L:VB (or CS) /o:
标志将xsd文件推回到工具中以获取我可以导入和使用的类在我的日常.Net项目
如果你想要的只是XSD,LiquidXML有一个免费版本的XSD,它有一个GUI,所以如果你愿意,你可以调整XSD.无论如何,现在我手工编写自己的XSD,但这一切都归功于这个应用程序.
http://www.liquid-technologies.com/