注册XML Schema到ORACLE XDB可以方便生成XML的验证。

What is an XML Schema?

An XML Schema is a language for expressing constraints about XML documents. There are several different schema languages in widespread use, but the main ones are Document Type Definitions (DTDs), Relax-NG, Schematron and W3C XSD (XML Schema Definitions). From this page you can find out more about DTDs and W3C XSD, since those are the primary schema languages defined at W3C.

the schema file ("shiporder.xsd"):

解锁xdb帐号,在xdb下注册xsd:

SQL> conn / as sysdba

Connected as SYS

SQL> alter user xdb account unlock identified by ******;

User altered

SQL> conn xdb/oracle;

Connected as xdb

使用DBMS_XMLSCHEMA.REGISTERSCHEMA注册xsd注册到xdb:

SQL> begin

dbms_xmlschema.registerschema(schemaurl => 'shiporder.xsd'

,schemadoc => bfilename('XMLDIR', 'shiporder.xsd')

,local => false

,gentypes => true

,genbean => false

,gentables => false

,force => false

,owner => 'XDB');

end;

/

PL/SQL procedure successfully completed

其中'XMLDIR'是ORACLE目录对象名,shiporder.xsd文件在这个目录下。

查看注册对象状态:

SQL> select s.schema_url, o.object_type, o.status

from user_xml_schemas s, user_objects o

where s.int_objname = o.object_name;

SCHEMA_URL OBJECT_TYPE STATUS

-------------------------------------------------- ------------------- -------

shiporder.xsd XML SCHEMA VALID

对于一些schema定义有递归引用,可能报错不能注册成功。参数force设为true强制注册,然后再进行编译。

SQL> DBMS_XMLSCHEMA.COMPILESCHEMA(schemaurl => 'shiporder.xsd');

DBMS_XMLSCHEMA.REGISTERSCHEMA有多种实现,详细说明参见官方文档。

注册之后可以验证xml文件了:

SQL> declare

v_xmldoc xmltype;

v_valid number;

begin

v_xmldoc := xmltype('<?xml version="1.0" encoding="UTF-8"?>

String

String

String

String

String

String

2

0.0

');

select v_xmldoc.isschemavalid('shiporder.xsd', 'shiporder') into v_valid from dual;

dbms_output.put_line('validate result is :' || v_valid);

if (v_valid <> 1) then

v_xmldoc.schemavalidate;

end if;

end;

/

validate result is :1

v_xmldoc.schemavalidate对于验证失败的结果抛出异常。

oracle xdb插件报错,注册XML Schema到ORACLE XDB并对XML进行验证相关推荐

  1. windows Server 2008 R2安装Oracle 12c R2 报错:Failed to Create oracle Oracle Home User的解决方案。

    1.打开域安全策略(secpol.msc)-安全设置-账户策略-密码策略-密码必须符合复杂性要求.定义这个策略设置为:已禁用. 2.最后cmd运行刷新组策略命令为:gpupdate /force 3. ...

  2. oracle netca注册,oracle 使用netca报错

    at oracle.ewt.lwAWT.BufferedApplet.(Unknown Source) at oracle.net.ca.NetCA.(NetCA.java:443) at oracl ...

  3. Oracle OEM 配置报错: No value was set for the parameter DBCONTROL_HTTP_PORT 解决方法

    这几天经常与OEM 顶上,前几天刚解决一个OEM问题,今天又遇到了. Oracle 安装OEM 报错: 无法对所有EM 相关账户解锁 解决方法 http://blog.csdn.net/tianles ...

  4. Eclipse 安装插件报错:An error occurred while collecting items to be installed session context was...解决方法汇总

    文章目录 前言 一.产生错误的场景 二.错误信息描述 三.出错原因分析 3.1.错误原因定位 3.2.Eclipse 的更新管理 P2 出错 四.解决方式 4.1.进入 Eclipse 的安装根目录 ...

  5. The command (dfs.browser.action.delete) is undefined 解决Hadoop Eclipse插件报错

    Hadoop Eclipse插件 报错. 使用 hadoop-eclipse-kepler-plugin-2.2.0.jar 如下所示 Error Log 强迫症看了 受不了 The command ...

  6. Oracle 备份失败报错ORA-04063: view SYS.KU_RADM_FPTM_VIEW has errors

    Oracle备份过程中报错如下, Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Pro ...

  7. maven插件报错之解决

    maven插件报错之解决 用m2eclipse创建Maven项目时报错 maveneclipsebuilddependenciesauthorizationplugins 用m2eclipse创建 ...

  8. oracle log block size,案例:Oracle无法启动报错ORA-00218: block size 0 重建控制文件

    天萃荷净 oracle数据库无法启动报错ORA-00218故障,通过重建控制文件解决文件损坏问题 遇到一个案例在数据库启动的时候报ORA-00218错误,而这个故障的引起原因是因为重建控制文件的时候, ...

  9. webpack 采坑(CleanWebpackPlugin 插件报错: CleanWebpackPlugin is not a constructor ;)

    坑一: CleanWebpackPlugin 插件报错: CleanWebpackPlugin is not a constructor : webpack.config.js配置如下: const ...

最新文章

  1. mysql 慢日志 作用_MySQL慢查询日志的作用和开启
  2. CF448C Painting Fence(分治递归/DFS)难度⭐⭐⭐
  3. 一文读懂对抗生成网络的3种模型
  4. RHEL-5搭建SSH服务器
  5. 学好python工资一般多少钱-Python工资多少?就业发展前景怎么样?
  6. java 多线程输出_[Java多线程]ABC三个线程顺序输出的问题
  7. 安装后添加没有class library_Catalina的L/E Kext驱动安装方式
  8. 为Sublime Text 3的C++编译器(g++)添加C++11标准的方法
  9. 使用libhybris库linux调用android库
  10. 真实网络环境下使用易邮搭建网络邮件服务器并测试通过
  11. win7 SP1 64位 原版 百度网盘下载
  12. 用计算机完成韩信点兵,韩信点兵问题.PPT
  13. 史记花絮(四)——宋微子世家
  14. 中国文化产业基地(园区)前景预测和发展战略规划建议报告2021年版
  15. Springboot奶茶店点餐系统vtj89计算机毕业设计-课程设计-期末作业-毕设程序代做
  16. 区块链技术在软件开发中的应用
  17. 主机地址、网络地址、主机路由、网络路由
  18. 牛客 换钱的最少货币数
  19. 八大防火墙评测 谁才是真“金钟罩”
  20. 如何应对高并发问题?

热门文章

  1. kettle 的表输出 table output
  2. 页面间传输中文的乱码解决方法
  3. 【PL/SQL】Excel批量往数据库中插入数据:
  4. 文件上传下载—servlet API实现
  5. L309 单音节词读音规则(一)-辅音字母发音规则
  6. 微信小程序自定义组件实现
  7. 50行代码搞定无限滑动幻灯片
  8. 优化PHP程序的方法(温故知新)
  9. Node.JS 学习路线图
  10. Android一个ListView列表之中插入两种不同的数据