评估生成的XML Schema的准确性

时间:2009-04-15 02:39:54

标签: xml xsd

我在网上找到了一些工具,它们为给定的XML数据实例生成XML Schema。像 - link text

之类的东西

我也在考虑开发一个,但是我对生成的模式的评估感到困惑。

如何评估生成的模式,即生成的模式是否确认给定数据?是否有任何方法可以制定某种精确度量,表明生成的XML模式对于给定的XML数据是正确的80%或90%是正确的?

请帮我解决任何问题。

欢呼声

2 个答案:

答案 0 :(得分:2)

我相信你要求的是不可能的。自动生成的模式(我使用Examplotron)永远不会完全准确,因为生成工具没有足够的信息。

例如,如果XML文档中存在元素<foobar>,那么生成工具如何知道它是否是强制性的?如果接受多个值?在不知道原始模式的情况下,您无法说明生成的模式是否准确。 (Examplotron通过允许作者将结构化注释放入XML文件来解决问题,以指导程序。)

这是一个例子。使用此XML文件:

<data>
<foo>1</foo>
<bar>text</bar>
<baz/>
</data>

Examplotron生成了这个模式(有点编辑):

start =
  element data {
    element foo { xsd:integer },
    element bar { text },
    element baz { empty }
  }

请注意元素xsd:integer中的<foo>。不错的推论但是,它准确吗?可能<foo>应该是更常规的类型,例如xsd:any ...

答案 1 :(得分:-1)

从现有XML文档生成的模式只能与原始XML一样好。如果您的示例XML是将要使用的XML的完整示例,则生成的架构将起作用。如果它不完整或形成不良,则不会。