ITPub博客

关于AXSD和SQLXML BULK LOAD

原创 作者:kitesky 时间:2007-02-15 10:21:23 0 删除 编辑
SQLXML是SQL SERVER对XML支持组件。通过它,我们可以快速的把XML读取到数据库表中;在这个过程开始前,我们需要使用AXSD来为XML和表之间定义mapping,这个过程叫做为表定义了XML视图。[@more@]

一 AXSD
1. 一定要在子表上定义和父表的relationship;如果没有指定,则错误提示子表Schema上需要relationship而未指定;
2. complexType相当于子表。当不能直接在complexType上添加relationship批注(annotation)。应该将这个批注添加在使用这个complexType的地方;
3. 在XSD中,属性和元素有什么区别吗?
属性是单值;而元素如果放在sequence中,它将表示子表的列;与其上级节点形成了父子表的关系;
4. 命名空间
声明命名空间:xmlns:<prefix>="<name space identifier>"
QName:限定名称;
默认命名空间:
命名空间的指定仅对本元素起作用;
若不为元素指定命名空间,则使用默认命名空间;
若不为属性制定命名空间,则属性不属于命名空间;
将默认命名空间标识符设置为空字符串,则取消本元素使用默认的命名空间;但带前缀的命名空间不可取消;
5. 主从表的分解
主表不变,子表上增加主表的PK做FK;
二 SQLXML BULK LOAD
SchemaGen: generate table;
SGDropTables: re-create Table;
CheckConstraints: check constraints;
XMLFragment: declare it's a fragment;

XML和AXSD要么同时定义targetNamesapce,或者都不定义。这样才能将数据导入到表中。否则,只能自动建立表结构而数据无法导入;

请登录后发表评论 登录
全部评论

注册时间:2009-04-22

  • 博文量
    272
  • 访问量
    2161582