有没有从XML实例文档生成XSD模式的工具?

有没有从XML实例文档生成XSD模式的工具?,xml,xsd,schema,generator,Xml,Xsd,Schema,Generator,我正在寻找一个工具,它将获取一个XML实例文档并输出相应的XSD模式 我当然认识到,与手动创建模式相比,生成的XSD模式将受到限制(它可能不会处理可选或重复的元素,或数据约束),但它至少可以作为一个快速的起点。这是一个很好的免费解决方案。许多XML编辑工具,如XmlSpy(由@Garth Gilmour提到)或OxygenXML编辑器也具有该功能。不过它们相当贵。BizTalk Server还具有XSD推断工具。 编辑:我刚刚发现.NET类,所以如果你使用.NET,你应该考虑 Altova xM

我正在寻找一个工具,它将获取一个XML实例文档并输出相应的XSD模式

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

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


编辑:我刚刚发现.NET类,所以如果你使用.NET,你应该考虑

Altova xMLISTO做得很好-你可以找到一个概述

如果你想要的是XSD,SurvivXML有一个XSDS的免费版本,它有一个GUI,所以你可以调整XSD,如果你喜欢的话。不管怎样,现在我用手写我自己的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:]
C:\ProgramFiles\Microsoft Visual Studio 8\VC>xsd
Microsoft(R)Xml架构/数据类型支持实用程序
[Microsoft(R).NET Framework,版本2.0.50727.42]
版权所有(C)微软公司。版权所有。
xsd.exe-
从给定源生成架构或类文件的实用工具。
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(或CS)将XSD文件推回到工具中/o:
标记以获取我可以在日常.Net项目中导入和使用的类

如果您在java世界工作-intelliJ idea还具有广泛的xml支持,包括xsd生成和xsd生成的samle xml,并且通过插件可以获得xslt调试器。-如果您计划在以后使用jaxb之类的工具,这尤其好。

您可以使用开源和跨平台选项:inst2xsd from。我觉得它很有用,也很简单

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

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

从Trang网站:

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

  • RELAXNG(XML语法)
  • RELAXNG紧凑语法
  • XML 1.0 DTD
  • W3CXML模式
以任何受支持的模式语言编写的模式都可以转换为任何其他受支持的模式语言,但W3C XML模式仅支持输出,不支持输入

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

还有一个在上提供的


它可以在VS2010中获取多个xml文件,并从所有这些文件中提取一个公共XSD。如果您将xml文件加载到编辑器中,请单击xml菜单>>创建模式。

这是一个旧线程,但我认为发布此链接可能有用:刚刚找到此工具:


它正好满足了我的需要。

哇,几个月后,你给我指出了一个伟大的解决方案,可以快速将XDR转换为XSD!谢谢我很难找到此工具(xsd.exe)的下载,但它已经在我的系统中的C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin中。我只是想分享一下,以防对任何人都有帮助。如果某人没有安装Visual Studio,这里有一个下载xsd的替代链接:Windows 7上的目录似乎已更改。我在许多
Microsoft SDK
目录中都有它(因此它似乎不再需要依赖Visual Studio了?),其中有一个:
C:\Program Files(x86)\Microsoft SDK\Windows\v7.0A\Bin\NETFX 4.0 Tools
。我必须在包含xml的目录中运行它,以防止出现“路径中的非法字符”错误,但这可能是由于我的文件名太长。还有谁在使用MS XSD推断工具时遇到问题,为一个200 MB的xml文件引发OutOfMemoryException,但仍然有超过8 GB的可用RAM?很好的提示,这真的帮了我大忙,thx!天哪,这比那些电力地狱的废话好多了!尤其是因为我没有XSD文件!工作起来很有魅力::cd/inst2xsd-design ss-simple content types smart-enumerations 4-outDir注意到XMLBeans已经迁移到退休的Apache项目所在地。换句话说,它自2012年以来就没有更新过。Trang也是集成到OxygenXML中的工具,用于从一个或多个XMl文档进行XSD推断。第一次尝试时,它似乎工作得很好。如果您只需要从xml文件生成xsd,trang是最好、最快和最简单的IMHO。trang文档有点薄。要生成模式,请运行
$trang file.xml schema.xsd
。在windows上运行:java-jar trang.jar file.xml schema.xsdHad子结构,这些子结构以相同的形式出现在xml示例的不同位置,trang在检测重复和生成最小xsd方面做得非常好,这正是我所需要的。很不错的!请注意,此工具是用php编写的,因此安装并不简单。@79E09796使用
sudo apt get install php5 cli
安装cli php并运行
/learn--help
--我真的看不出它与用java、python或java编写的工具有什么区别