许多工具可以从 XML 示例生成 XSD 语法。
通常必须手动调整此类工具的输出。
我的问题是是否可以以迭代方式完成此过程。 我的意思是,不是给出 1 个 XML 示例,而是给出一堆示例,并且在每次迭代之后,XSD 架构都会得到完善。
我不知道有哪个系统具有此功能。
这可能吗?
谢谢!
编辑:我想我必须澄清一些观点。我知道 XMLspy 可以从示例生成语法。我正在使用它。 (实际上,在旧的 SGML 时代,一个名为 Fred 的系统可以做到这一点)。通常,尽管 XMLspy 为您提供了用于创建的所有选项,但这种语法相当原始。我有数千个机器生成的 xml 文件,它们都非常相似。也就是说,它们都具有相同的结构。如果你可以定义它们之间的“距离”是最小的。 我正在寻找一个能够生成独特(最小)语法的系统,该语法接受我为其生成而提供的每个文件。 我可以想象这样的系统可以采用第一个示例,生成语法,采用第二个示例,细化前一个示例生成的语法,依此类推,直到最后一个 XML 输入文件。
最佳答案
QTAssistant (我与它相关)能够接收多个 XML 文件,并从中生成 XSD。
v4.x
v5.x
注意事项:
您需要注册才能下载免费评估版。
工具通过推理机制生成的 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/