Oracle 11g XMLType对象关系存储 - > XML Schema验证

时间:2012-01-21 15:25:20

标签: oracle validation schema oracle11g xmltype

我遇到了以下问题。每次我尝试通过JDBC在我的Oracle DB中加载XML文件时,我都会收到ORA-19007错误:文档架构与架构http://myServerURL/mondial.xsd不匹配

在Oxygen中,我验证了mondial.xml和mondial.xsd,所以我不知道Oracle对文件的问题是什么。

我的XML

<mondial  xmlns:xdb="http://xmlns.oracle.com/xdb"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:noNamespaceSchemaLocation="http://myServerURL/mondial.xsd">

我的架构

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
       xmlns:xdb="http://xmlns.oracle.com/xdb" 
       elementFormDefault="qualified">

注册成功

BEGIN DBMS_XMLSCHEMA.registerSchema(
                   SCHEMAURL  => 'http://myServerURL/mondial.xsd'
                   SCHEMADOC  => HTTPURIType('http://myServerURL/mondial.xsd').getClob()
                   LOCAL      => false,     -- local
                   GENTYPES   => false,     -- generate object types
                   GENBEAN    => false,     -- no java beans
                   GENTABLES  => false,     -- generate object tables
                   FORCE      => true
                   OWNER      => USER)
                   END;

表创建查询

create Table MYTABLE (id Number, mondial XMLTYPE) XMLTYPE Column mondial
                          XMLSCHEMA "http://myServerURL/mondial.xsd"
                              ELEMENT "mondial";

如果有人能指出我正确的方向,会很棒。

1 个答案:

答案 0 :(得分:0)

在尝试将数据插入XMLTYPE列之前,我假设您正在从文本源创建XMLType对象。执行此操作时,是否在XMLType函数的schema参数中包含命名空间模式? 11g中的更改是在创建XMLType对象时根据其架构验证名称空间,并且必须指定这些名称空间。