如何给XML Schema增加Annotations标记

日期: 2010-01-10 作者:Matthias NicolaPav Kumar-Chatterjee翻译:冯昀晖 来源:TechTarget中国 英文

本文讲述了把XML文档分割为关系型表的另一种方法。该方法叫做annotated schema分割法,或者叫annotated schema解构法,因为它是基于XML schema中的annotations标记实现的。这些annotations标记定义了你XML数据中的XML元素和属性如何映射到关系表中列。   要想执行annotated schema分割,需要执行以下步骤:   确认或者创建要保存分割数据的目标关系表。

  给XML Schema中增加Annotations标记,定义从XML数据到关系型表的映射。  在DB2 XML Schema资源库中注册该XML Schema。  使用命令行……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

本文讲述了把XML文档分割为关系型表的另一种方法。该方法叫做annotated schema分割法,或者叫annotated schema解构法,因为它是基于XML schema中的annotations标记实现的。这些annotations标记定义了你XML数据中的XML元素和属性如何映射到关系表中列。

  要想执行annotated schema分割,需要执行以下步骤:

  •   确认或者创建要保存分割数据的目标关系表。
  •   给XML Schema中增加Annotations标记,定义从XML数据到关系型表的映射。
  •   在DB2 XML Schema资源库中注册该XML Schema。
  •   使用命令行处理器(CLP)命令或者内建存储过程分割XML文档。

  假定你已经定义了你想存储分割数据的关系表,我们看看如何给XML Schema增加Annotations标记。

  Schema Annotations标记是XML Schema中附加的元素和属性,用来提供映射信息。DB2可以使用该信息把XML文档分割为关系表。Annotations标记中的内容不会改变原始XML模式的语义。如果Annotations Schema的文档是有效的,那么它对原始Schema也是有效的,反之亦然。你可以使用增加了Annotations标记的Schema验证XML文档,就像使用原来的XML Schema文档一样。

  下面一行来自于XML Schema:

  该行内容定义了叫做“street”的XML元素,并且声明了它的数据类型是“xs:string”,而且该元素必须至少出现一次。你可以给该元素定义添加一个简单的Annotations标记,以表明该元素应该被分割到表“ADDRESS”的列“STREET”中。该Annotations标记由该元素定义中的两个附加属性组成,如下所示:

  db2-xdb:rowSet="ADDRESS" db2-xdb:column="STREET"/>

  相同的Annotations标记还可以被提供为schema元素,而不是属性,如下面所示。你会在后面的图11.8中明白为什么这一点很有用。

  < xs:element name="street" type="xs:string" minOccurs="1" >
  < xs:annotation >
  < xs:appinfo >
  < db2-xdb:rowSetMapping >
  < db2-xdb:rowSet >ADDRESS< /db2-xdb:rowSet >
  STREET< /db2-xdb:column >
  < /db2-xdb:rowSetMapping >
  < /xs:appinfo >
  < /xs:annotation >
  < xs:element/ >

  前缀“xs”对属于XML Schema的所有结构都有用,而前缀“db2-xdb”只对所有DB2专用schema注释有用。这就提供了一个清晰的区分,确保增加了Annotations标记的schema可以验证它与原来的XML文档是同样的文档。

  有十四种不同类型的Annotations标记。它们支持你指定分割什么,在哪里分割,如何过滤或者转换分割的数据,以及以什么样的顺序向目标表执行插入。表11.4提供了一个可用Annotations标记概览,根据用户任务进行了逻辑分组。部分Annotations标记在表11.5中有进一步阐述。

  表11.4 Schema Annotations标记概览和功能分组。

  表 11.5 XML Schema Annotations标记功能表

  为了演示增加了Annotations标记的schema分解过程,我们采用图11.1为例介绍它。假定目标表已经按图11.1定义好了。带Annotations标记的schema如图11.8,其中定义了期望的映射。第一行黑体字定义了命名空间前缀“db2-xdb”,它用在整个schema中,用来将DB2专用的Annotations标记和常规XML Schema Annotations标记进行区分。Annotations标记中第一次使用该前缀的是“db2-xdb:defaultSQLSchema”,它定义了目标表的关系模式。下一个出现的Annotations标记是原始名称的定义。这两个注释属性【db2-xdb:rowSet=“ADDRESS”】和【db2-xdb:column=“NAME”】给该名称元素定义了该目标表和列。同样,街道和城市元素也映射到了“ADDRESS”表的相应字段。接下来两个Annotations标记把电话号码和类别属性映射到“PHONE”表的列中。最后的Annotations标记段属于XML Schema的Cid属性定义。因为Cid属性值变成了表“ADDRESS”和表“PHONE”的关联键,这要求使用“annotation”元素,而不是“annotations”属性。第一个“db2-xdb:rowSetMapping”把Cid属性映射到了表“ADDRESS”的列“CID”上。第二个“db2-xdb:rowSet”映射把Cid属性赋值到表“PHONE”的列“CID”上。

  图11.8 在图11.1中实现分割用的带有Annotations标记的Schema。

相关推荐

  • 数据库产品巡礼:IBM DB2概览

    IBM DB2关系型数据库管理系统提供了支持多平台系统的关键技术,它具备较高的可用性和良好的性能。

  • 如何进行分布式大数据应用调优

    分布式环境通常是与数据库服务器相分离的。而DBA的工作就是监视这些环境并配置和优化数据库服务器以满足多种需求。大数据的出现加剧了DBA的问题。

  • IBM DB2将迎来30岁“生日”

    再过几天,主流数据库产品DB2就将迎来它30岁的“生日”。作为关系型数据库技术的标志性产品,DB2在过去的30年中也在伴随用户需求的变化不断地发展。

  • SQL调优之“忧”:如何进行SQL调优

    DBA们应该将自己从“我要对什么调优?”的老路上解放出来,而在指标、配置和成本方面花费一定的时间。