在 DB2 中管理 XML Schemas,第 2 部分: XML Schemas 演变和 XML 数据管理
2010-04-12 00:00:00 来源:WEB开发网ID 为 1、2 和 22 的 XML 数据遵守 清单 3中的 XML schema cust2.xsd。(关系 ID 为 SAMPLE2.CUST1 的 XML schema 被 清单 3中的 cust2.xsd 替换,cust2.xsd 被注册为 schema 位置 cust1.xsd。)那些 XML 数据集需要按如下方式更改以适合 cust3.xsd。
home和 cell元素需要被添加到 /customer/phone下面。
/customer/phone的值被移动到 /customer/phone/home。
如果定义了 /customer/cell-phone,那么它被移动到 /customer/phone/cell,并且 /customer/cell-phone被删除。
xsi:noNamespaceSchemaLocation属性的值被更改为 cust3.xsd。(如果验证 XML 数据时使用的是关系 ID,那么这个步骤不是必要的。)
发出以下 SQL 语句将更改应用到 XML 数据(这个 XML 数据已经通过使用关系 ID SAMPLE2.CUST1 的 XML schema 的验证),然后使用 schema 位置为 cust3.xsd 的 XML schema 验证更改后的 XML 数据。
UPDATE T1
SET XMLDATA=XMLVALIDATE(XMLQUERY(
'declare namespace xsi="http://www.w3.org/2001/XMLSchema-instance";
copy $new := $XMLDATA
modify (
do replace $new/customer/phone with
<phone>
<home>{$new/customer/phone/text()}</home>
<cell>{$new/customer/cell-phone/text()}</cell>
</phone>,
do replace value of $new/customer/@xsi:noNamespaceSchemaLocation with "cust3.xsd",
do delete $new/customer/cell-phone )
return $new'))
WHERE XMLXSROBJECTID(XMLDATA)=(SELECT OBJECTID FROM SYSCAT.XSROBJECTS WHERE
OBJECTSCHEMA='SAMPLE2' AND OBJECTNAME='CUST1')
- ››db2 对float类型取char后显示科学计数法
- ››DB2中出现SQL1032N错误现象时的解决办法
- ››DB2 锁升级示例
- ››db2诊断系列之---定位锁等待问题
- ››db2 命令选项解释
- ››管理/var/spool/clientmqueue/下的大文件
- ››XML 转成 数组对象
- ››XML注意的转义字符
- ››xml文件正确性验证类实现
- ››DB2 最佳实践: 使用 DB2 pureXML 管理 XML 数据的...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
- ››DB2 9.5 SQL Procedure Developer 认证考试 735 准...
更多精彩
赞助商链接