词汇空间与价值空间的区别

时间:2014-02-21 09:19:06

标签: xml

在阅读W3C关于XML Schema的文档时,我遇到了两个术语“值空间”和“词汇空间”,它们看起来非常相似。

This thread表示值空间是抽象定义,而词汇空间是指该数据类型的特定内容。

作为类比,可以公平地说值空间可以是正则表达式,而词汇空间可以是与正则表达式匹配的任何字符串吗?

2 个答案:

答案 0 :(得分:6)

值空间是给定类型的值范围,而词汇空间是表示的范围。

因此,例如,double类型的值空间包含可以用64位IEEE 754浮点数表示的所有值;即一组数字,以及∞,-∞和非数字。

它有一个词汇空间,包括表示所涵盖数字的各种方式,以及INF-INFNaN

因此,字符串INF对应值∞。

字符串12.5对应值12.5。

字符串12.000121.2E112.0E012.0都与值12相对应。

因此,对于某些值类型,词法空间和值空间之间的映射可以是多对一的。

使用字符串类型以及通过限制基于它的任何类型,映射是一对一的。

请注意,词法空间是指处理XML后生成的字符串,因此对于包含文本12的XML文档,我们会处理实体以在词法中生成字符串12双倍空间(对应12)。或者换句话说,虽然12也是表示12的一种方式以及我给出的其他示例,但它处于比处理XML模式更低的级别;在该级别,我们将其视为字符串12,因为12只是在XML文档中表示该字符串的另一种方式。

答案 1 :(得分:0)

乔恩·汉纳(Jon Hanna)已经很好地回答了。

我的2美分是这样的:

XML模式中的所有数据类型都由三种类型组成

值空间:一组不同且有效的值,每个值对应一个或多个字符串表示形式(例如,数字72是单个值)

词汇空间:一组词汇表示形式,即表示值的字符串文字(例如,任何字符串“ 72”或“七十二”或“ 0.72E2”都可以表示值72) )

一组方面:值空间的属性,可以是单个值或词汇术语

考虑以下示例:

printgraph

在“名称”空间中,字符串的值与其词法表示相同。

在以XML表示但它的值是数学结构(例如XML)的“人口”元素中。 “五百”。以上代码段中的字符串500只是一种可能的词汇表示形式。也可以使用诸如500.00或500.0