您的位置:首页 > 其它

DB2 9 使用启示(733 检验)认证指南,第 3 部分: XML 数据把持(5)

2011-03-06 23:50 627 查看
经过议定使用法式存储和检索 XML









XML 文档的验证

概念

XML 文档在机关上比关系表要灵活得多。关系表有结实的机关,
SELECT
语句正是寄予于如许的结实机关。关系表有实在数量的列,每个列有特定的数据类型。而 XML 文档则的确完全反过去。它在每个细节方面都是可变的 -- 节点称号、条理深度、数据类型、属性等等。盘问编写者需求知道 XML 数据的机关。在 XML 中,为了整洁地供应数据,有一个验证(validation) 的概念,这个概念由 XML 方式 供应。

XML 方式就像是其余 XML 文档的划定规矩书。它注重描绘 XML 文档中什么是答应的 —— 节点称号、节点次序、属性、数据类型、可选还是必需等等。DB2 关系数据库中与之对应的是
SYSCAT.COLUMNS
。 XML 方式自己也是 XML 文档,其机关有专门的规矩。 顺服 XML 方式的划定规矩的 XML 文档称为可经过议定验证的(validated)合理的(valid)









回页首

若何验证

在 XML 类型的一个数据库列中,每一行包括一个一切的 XML 文档(大概一个 null 值)。谁人文档要么是合理的,要么不是合理的。验证经过议定函数
XMLVALIDATE()
来施行。为了施行验证,必需起首在数据库中注册适当的 XML Schema Documents (XSD)。然后才可以运用
XMLVALIDATE()
函数。该函数接受一个 XML 文档作为输出,其余还接受适当 XML 方式的标识,然后前往一个经过议定验证的 XML 文档。

验证 XML 列中的 XML 文档的方法(留心没有 网罗
LOAD
):

INSERT
语句: 运用
XMLVALIDATE()

UPDATE
语句: 运用
XMLVALIDATE()

IMPORT
语句: 有用于验证的语法

文章 "Get off to a fast start with DB2 Viper" (developerWorks,2006 年 3 月)中有一个一切的例子演示了若何注册一个 XML 方式并运用
XMLVALIDATE()










回页首

用于验证的测试

可以用谓词
VALIDATED
对 XML 列中断测试,以确定它能否包括合理的 XML 文档。

例 1: 假定列 XMLCOL 定义在表 T1 中。面前目今当今只检索能经过议定任何 XML 方式验证的 XML 值。

SELECT xmlcol
FROM
t1
WHERE
xmlcol IS VALIDATED


例 2: 假定列 XMLCOL 定义在表 T1 中。面前目今当今对其施加划定规矩,规矩只能拔出或更新已经过议定验证的值。

ALTER TABLE t1
ADD CONSTRAINT ck_validated
CHECK (xmlcol IS VALIDATED)


留心,该束缚用随便 XML 方式搜检 XML 列能否合理。 不能规矩用一个特定的方式中断验证。

为了发现运用了哪个特定的 XML 方式来验证 XML 文档,可以运用
XMLXSROBJECTID()
函数。它前往
SYSCAT.XSROBJECTS
表中一行的键。

版权声明:
原创作品,答应转载,转载时请务必以超链接方式标明文章 原始出处 、作者信息和本声明。否则将追查法律责任。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐