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

经过议定使用法式存储和检索 XML
developerWorks








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 表中一行的键。




版权声明: 原创作品,答应转载,转载时请务必以超链接方式标明文章 原始出处 、作者信息和本声明。否则将追查法律责任。

原文地址:https://www.cnblogs.com/zgqjymx/p/1972860.html