2012-01-21 39 views
2

我遇到了以下問題。每次我嘗試在我的Oracle數據庫中通過JDBC加載XML文件時,我得到一個ORA-19007錯誤:文檔模式與模式不匹配http://myServerURL/mondial.xsdOracle 11g XMLType對象關係存儲 - > XML模式驗證

在氧氣中,但是我驗證了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"; 

如果有人能指出我正確的方向,那將會很棒。

+0

你能分享你的mondial.xml/xsd文件嗎? – collapsar

回答

0

在嘗試將數據插入到XMLTYPE列之前,我假設您正在從文本源創建XMLType對象。當你這樣做的時候,你是否在XMLType函數的schema參數中包含名稱空間模式? 11g中的一個變化是,僅在創建XMLType對象時纔對其模式驗證名稱空間,並且必須指定這些名稱空間。