2008年8月5日星期二

ORACLE XML DB 系列(3)

从存储SCHEMA开始

要在数据库中使用XML DB,CONNECT,RESOURCE和XDBADMIN角色是必须的,除此之外根据自己应用程序的不同,可能还需要赋予别的权限,比如XML WEB SERVICE角色是在数据中建立WEB SERVICE的必须角色。
在数据库中存储XML数据,绝大多数都是基于SCHEMA的应用,因此如何在数据库中注册SCHEMA就是至关重要的问题了。我们可以通过MS_XMLSCHEMA.registerSchema来注册SCHEMA。

BEGIN
dbms_xmlschema.registerSchema
(
mdstdidin,xsddoc,
true,TRUE,false,false,false
);

其中mdstdidin是schema在数据库中的id。xsddoc是schema的文档内容,可以是VARCHAR也可以是CLOB型的数据。第三个参数表示是否将这篇schema注册为本地的schema,第四个参数表示是否生成对应的对象,第五个和第六参数是表示是否声称javabean和 table。使用上面的代码就是将一篇SCHEMA注册成为当前用户自己所有的SCHEMA并且自动声称对应对象。


注册了SCHEMA之后,接着就查询已经注册的SCHEMA了。我们可以从DBA,ALL,USER_xml_schemas视图中查到相应的 schema的具体内容。其中schema字段以XMLTYPE类型存储了schema的具体内容,我们可以使用select schema.getclob() from
user_xml_schemas来查询。如果不getclob()的话,那么结果集中schema字段会显示sys.xmltype。

没有评论: