Skip to Main Content

Database Software

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

XML validation with xsd doesn't work with dates

Ants HindpereApr 7 2022

Oracle version 19.11
Simple xsd

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>                       
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
  <xs:element name="test" type="ISODate"/>
    <xs:simpleType name="ISODate">
    <xs:restriction base="xs:date">
      <xs:pattern value="[0-9]{4,4}\-[0-9]{2,2}\-[0-9]{2,2}"/>
    </xs:restriction>
    </xs:simpleType>
    </xs:schema>

When xml is

<test>10-JAN-10</test>

schemavalidate doesn't raise an error that it's invalid value.
Full example:

--exec dbms_xmlschema.deleteschema('test.xsd', 3);


declare
    l_content clob:= '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>                                             
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
    <xs:element name="test" type="ISODate"/>
        <xs:simpleType name="ISODate">
        <xs:restriction base="xs:date">
            <xs:pattern value="[0-9]{4,4}\-[0-9]{2,2}\-[0-9]{2,2}"/>
        </xs:restriction>
        </xs:simpleType>
        </xs:schema>
';
begin
    dbms_xmlschema.registerschema(
        schemaurl => 'test.xsd'
      , schemadoc => l_content
      , local => true
      , gentypes => false
      , gentables => false
      , genbean => false
      , force => false
    );
end;
/


declare
    l_test xmltype :=xmltype('<test>10-JAN-10</test>');
    l_xml xmltype;
begin
    l_xml:=l_test.createSchemaBasedXML('test.xsd');
    l_xml.schemaValidate();
end;
/

However using xmlint

<test>10-JAN-10</test>
test.xml:1: element test: Schemas validity error : Element 'test': '10-JAN-10' is not a valid value of the atomic type 'ISODate'.
test.xml fails to validate

What is missing to validate the xml correctly?

This post has been answered by odie_63 on Apr 20 2022
Jump to Answer
Comments
Post Details
Added on Apr 7 2022
5 comments
954 views