1

请用幼稚的术语解释。

XML 验证实际上是什么意思?

“XML 数据的验证”、“XML 文档的验证”和“XML 模式的验证”是同一个意思吗?

XSD 文档如何帮助验证 XML 文档/数据/架构?

注意:有很多关于 XML 验证的文章。但是,这些都是令人费解的。讨论使用行话,因此难以理解。

4

3 回答 3

2

也许这个简单的解释会有所帮助:

XML 文档有不同级别的“正确性”。

首先是良构。如果文档符合为 XML 文件制定的句法规则,例如标签正确嵌套和闭合、遵循命名规则等,则该文档是格式良好的。

完全基于 XML 标准可以检查 XML 文档的格式是否正确。您无需了解有关 XML 文档中包含的数据及其结构的任何信息。

这就是验证的用武之地:

DTD(文档类型定义)或 XSD 指定了如何构建某种类型的 XML 文档的规则,例如,在哪些上下文中允许哪些标签,每个标签可能有哪些属性和值,以及标签之间是否可以交叉引用正确处理。

例如,如果您将标签定义为 ID 字段,则其值可能仅在 XML 文件中出现一次。


将此与编程语言进行比较:

在 Python 中,以下将是SyntaxError

f("Hello)        # not "well-formed"

以下在语法上是正确的,但仍然失败,因为函数使用 不正确:

def f(a):
    return a+1

f("Hello")       # "well-formed" but invalid (TypeError)
于 2012-09-15T08:28:41.610 回答
0

简单来说,模式(例如 XSD、RelaxNG 等文档)定义了 XML 文档的语法。

处理器应该能够解析 XML 文件并检查它是否对模式中定义的语法有效。

模式通常指定(除其他外)元素的层次结构、属性类和属性值的数据类型。

w3schools 的介绍对 IMO 很有帮助:http ://www.w3schools.com/schema/schema_intro.asp

虽然您可能想在某个时候查看 RelaxNG:http ://relaxng.org/tutorial-20011203.html

于 2012-09-15T08:17:36.087 回答
0

模式是一组区分“有效”和“无效”文档的规则。针对特定模式验证文档是确定文档是否满足该模式中规则的过程。

于 2012-09-15T18:23:31.977 回答