[英]Get XML scheme from XML file using PL/SQL
我有pl / sql过程,该过程分析xml文件并将其导入到不同的表中。 但是这个xml来自外部系统,所以当他们更改方案时很难理解。 我需要从新文件中获取XML方案,并将其与以前使用PL / SQL导入的方案进行比较。
您只需要使用dbms_xmlschema.registerSchema
在数据库中注册外部xml模式,然后使用XmlType.isSchemaValid
通过此模式检查外部XmlType.isSchemaValid
SQL> begin
2 dbms_xmlschema.registerSchema('test',
3 '<?xml version="1.0" encoding="UTF-8"?>
4 <xs:schema xmlns="test"
5 xmlns:xs="http://www.w3.org/2001/XMLSchema"
6 elementFormDefault="qualified"
7 attributeFormDefault="unqualified">
8 <xs:element name="root">
9 <xs:complexType>
10 <xs:sequence>
11 <xs:element name="name"/>
12 <xs:element name="lastName"/>
13 </xs:sequence>
14 </xs:complexType>
15 </xs:element>
16 </xs:schema>');
17 end;
18 /
PL/SQL procedure successfully completed.
SQL> declare
2 xml XmlType := XmlType('<root><name>John</name><lastName>Johanson</lastName></root>');
3 xml2 XmlType := XmlType('<root><name>John</name></root>');
4 begin
5 if xml.isSchemaValid('test') = 1 then
6 dbms_output.put_line('xml valid');
7 else
8 dbms_output.put_line('xml not valid');
9 end if;
10 if xml2.isSchemaValid('test') = 1 then
11 dbms_output.put_line('xml2 valid');
12 else
13 dbms_output.put_line('xml2 not valid');
14 end if;
15 end;
16 /
xml valid
xml2 not valid
PL/SQL procedure successfully completed.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.