暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 验证XML文件问题

askTom 2017-03-30
282

问题描述

你好,

我有一个验证xml文件的问题。
要验证的所有XSD文件和xml文件的链接在这里:
https://www.vmi.lt/cms/documents/10162/6703244/SPECIFIKACIJA_MAI_55.zip/c86d3e1d-b081-47d6-a9a1-b021f6dcc85c

我已经在Oracle中注册了架构并检查了结果0 (架构不匹配XSD)
然后我使用XMLSPY和记事本插件来检查,结果是文件有效。
唯一需要做的就是替换M55TypesSti_v0。1。xsd与M55TypesSti_v0。2。xsd

我使用Oracle的代码 (文件中的数据要粘贴到这里很大,但是很容易从上面的链接直接从zip文件中粘贴)
DECLARE
  l_Clob CLOB;
  l_Xml XMLTYPE := XMLTYPE(...); -- Copied file from /XML pavyzdžiai/MAI55_SLIK_XML_v01.xml
-- !!! M55TypesSti_v0.1。xsd inside this file was changed to M55TypesSti_v0.2。xsd
BEGIN
-- Because file file /MAI_55_LT_XSD-v0.2/M55TypesSti_v0.2。xsd is to big for VARCHAR2 datatype so I used
-- Dbms_Lob.Append(l_Clob, ...) But maybe will be easier for you to load file from disk...

  Dbms_XmlSchema.RegisterSchema('CommonTypesSti_v0.2。xsd', ...); -- Copied file body from /MAI_55_LT_XSD-v0.2/CommonTypesSti_v0.2。xsd
  Dbms_XmlSchema.RegisterSchema('IsoTypesSti_v0.2。xsd', ...); -- Copied file body from /MAI_55_LT_XSD-v0.2/IsoTypesSti_v0.2。xsd
  Dbms_XmlSchema.RegisterSchema('M55TypesSti_v0.2。xsd', l_Clob);
  Dbms_XmlSchema.RegisterSchema('CommonTypesSti_v0.2。xsd', ...); -- Copied file body from /MAI_55_LT_XSD-v0.2/CommonTypesSti_v0.2。xsd

  Dbms_Output.Put_Line(l_Xml.isSchemaValid('M55slik_v0.2')); -- returns 0
END;
复制

专家解答

您的代码没有显示M55slik_v0.2的注册。所以没有要验证的模式!

您对l_Xml.isSchemaValid的调用应该引用您在此之前注册的xsd之一...
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论