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

Mat*_*ard 146 xml xsd

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

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

Dan*_*mal 65

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

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

  • 我很难找到这个工具的下载(xsd.exe),但它已经在我的系统中的C:\ Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin中.只是想我会分享以帮助任何人. (6认同)
  • 该目录在Windows 7上似乎已经改变了`xsd.exe`.我在许多`Microsoft SDKs`目录中都有它(因此它似乎不再依赖于Visual Studio?),其中一个:`C:\程序文件(x86)\ Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools`.我必须在包含xml的目录中运行它,以防止出现"路径中的非法字符"错误,但这可能是由于我拥有的长文件名. (5认同)
  • 如果有人没有安装Visual Studio,这里有一个下载xsd的替代链接:http://juliankay.com/development/download-xsd-exe/ (2认同)

Dar*_*rio 54

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

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

  • 像魅力一样工作:: cd <xml_bean_bin_directory>; ./inst2xsd -design ss -simple-content-types smart -enumerations 4 <input_file.xml> -outDir <output_Directory> (3认同)
  • 请注意,XMLBeans已移至http://attic.apache.org/,这是退役Apache项目的所在地.换句话说,它自2012年以来一直没有更新. (3认同)
  • OMG这比所有Powershell废话都要好得多!特别是因为我没有XSD文件! (2认同)

小智 51

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

来自Trang网站:

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

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

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

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

下载链接

  • 如果您只需要从xml文件生成xsd,那么trang是最好,最快和最简单的恕我直言. (4认同)
  • Trang 也是集成到 OxygenXML 中的工具,用于根据一个或多个 XMl 文档进行 XSD 推断。第一次尝试这里似乎效果很好。 (2认同)
  • trang文档有点薄.要生成模式,请运行`$ trang file.xml schema.xsd`. (2认同)

Nat*_*lan 16

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

  • 并在更高版本 (2认同)

edo*_*ian 11

还有GithubXML schema learner上有的.

它可以采用多个xml文件,从所有这些文件中提取通用XSD.

  • @ 79E09796使用`sudo apt-get install php5-cli`安装cli php并运行`./learn --help` ---我真的看不出它与用java,python或ruby编写的工具之间的区别:) (5认同)

Pat*_*ens 10

如果安装了.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:]
Run Code Online (Sandbox Code Playgroud)

通常,此工具生成的类和模式工作得相当好,特别是如果您要使用.Net语言来使用它们

我通常使用我正在使用的XML文档,通过带有/o:<your path>标志的XSD工具将其推送到生成模式(xsd)然后使用/classes /L:VB (or CS) /o:<your path>标志将xsd文件推回到工具中以获取我可以导入和使用的类在我的日常.Net项目


Rob*_*uld 6

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

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


And*_*son 5

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

  • 这也可以在 Idea 的免费社区版中使用。 (2认同)