xml - 是否可以通过迭代的方式逼近语法?

标签 xml xsd grammar

许多工具可以从 XML 示例生成 XSD 语法。

通常必须手动调整此类工具的输出。

我的问题是是否可以以迭代方式完成此过程。 我的意思是,不是给出 1 个 XML 示例,而是给出一堆示例,并且在每次迭代之后,XSD 架构都会得到完善。

我不知道有哪个系统具有此功能。

这可能吗?

谢谢!

编辑:我想我必须澄清一些观点。我知道 XMLspy 可以从示例生成语法。我正在使用它。 (实际上,在旧的 SGML 时代,一个名为 Fred 的系统可以做到这一点)。通常,尽管 XMLspy 为您提供了用于创建的所有选项,但这种语法相当原始。我有数千个机器生成的 xml 文件,它们都非常相似。也就是说,它们都具有相同的结构。如果你可以定义它们之间的“距离”是最小的。 我正在寻找一个能够生成独特(最小)语法的系统,该语法接受我为其生成而提供的每个文件。 我可以想象这样的系统可以采用第一个示例,生成语法,采用第二个示例,细化前一个示例生成的语法,依此类推,直到最后一个 XML 输入文件。

最佳答案

QTAssistant (我与它相关)能够接收多个 XML 文件,并从中生成 XSD。

v4.x

enter image description here

v5.x

enter image description here

注意事项:

  • 您需要注册才能下载免费评估版。

  • 工具通过推理机制生成的 XSD 必然需要人工干预。对于大型 XSD,我们通常至少重构类型定义和/或元素,具体取决于客户的偏好:创作样式(基于类型与基于元素),因为输出往往相当嵌套。

  • 我有点不清楚你的 to give a bunch of examples and after each iteration the XSD schema is refined 的意思。 ;我将解释它是如何工作的,您可以从那里开始...调用该命令后,您将看到一个标准的打开文件对话框,您可以在其中选择一个或多个 XML 文件。选择后,系统会提示您输入将在其中生成 XSD 文件(可能不止一个)的文件夹。结果是一组 XSD 文件,这些文件将成功验证您作为输入提供的所有 XML 文件。

如果通过 iteration您的意思是采用现有(模型)XSD 的方法,然后对其进行扩展/更改以符合所选的 XML,基本上是一个接一个或成组地提供 XML 文件,那么该工具将不起作用;该工具仅根据选定的 XML 从头开始​​重新创建 XSD。

关于xml - 是否可以通过迭代的方式逼近语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20705164/

相关文章:

xml - 自定义 SOAP 1.1 header 和 mustUnderstand 属性

compiler-construction - F#中的属性语法系统

c# - 如果内部标记与 C# 中的 Linq 值匹配,则删除 XML 节点

java - 如何从 xml 响应中检索字段

xml - 基于xsd/wsdl生成随机xml/web服务响应

xml - 我可以使用模式强制执行 XML 属性的顺序吗?

python - 属性错误: 'MuParser' object has no attribute 'startRule'

ruby - 学习树顶

javascript - jQuery 和 AJAX

c# - 如何在网页中显示和编辑 XML?