是否有任何工具可以从 XML 实例文档生成 XSD 架构?[关闭]

StackOverflow https://stackoverflow.com/questions/74879

  •  09-06-2019
  •  | 
  •  

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

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

有帮助吗?

解决方案

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

编辑:我刚刚发现.net XmlSchema推断 类,所以如果您使用 .net,您应该考虑这一点

其他提示

您可以使用开源和跨平台选项:inst2xsd 来自 Apache 的 XMLBean. 。我发现它非常有用且简单。

只需下载、解压并播放(需要 Java)。

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

来自庄网站:

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

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

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

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

下载链接

在 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,但这一切都归功于这个应用程序。

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

如果您在 Java 世界工作 - 智慧理念 还具有广泛的 xml 支持,包括 xsd 生成和 xsd 生成的样本 xml,并且通过插件您可以获得 xslt 调试器。- 如果您打算随后使用 jaxb 等工具,那就特别好。

Altova XmlSpy 做得很好 - 您可以找到概述 这里

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

它正好满足了我的需要。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top