DB2 9 使用启示(733 检验)认证指南,第 3 部分: XML 数据把持(5)
经过议定使用法式存储和检索 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
表中一行的键。
版权声明:
原创作品,答应转载,转载时请务必以超链接方式标明文章 原始出处 、作者信息和本声明。否则将追查法律责任。