【问题标题】:Oracle 11g XMLType object relational Storage -> XML Schema validationOracle 11g XMLType 对象关系存储 -> XML 模式验证
【发布时间】:2012-02-15 18:28:16
【问题描述】:

我遇到了以下问题。每次我尝试在我的 Oracle DB 中通过 JDBC 加载 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";

如果有人能指出我正确的方向,那就太好了。

【问题讨论】:

  • 你能分享你的 mondial.xml/xsd 文件吗?

标签: oracle validation schema oracle11g xmltype


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2014-09-06
    • 1970-01-01
    • 2013-12-28
    • 1970-01-01
    • 1970-01-01
    • 2017-11-07
    • 2011-01-17
    • 2021-07-30
    • 1970-01-01
    相关资源
    最近更新 更多