Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 XSD валидация даты  [new]
xsd
Guest
procedure test_reg
is
 l_xsd_test varchar2(4000) :=    
  '<xsd:schema targetNamespace="urn:TEST" 
  xmlns="urn:TEST" 
  xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
  xmlns:xdb="http://xmlns.oracle.com/xdb">      
          <xsd:element name="issueDate" type="xsd:dateTime" xdb:SQLType="TIMESTAMP WITH TIME ZONE" form="qualified"/>[
   </xsd:schema>';
BEGIN

DBMS_XMLSCHEMA.registerSchema (
     SCHEMAURL => 'http://test.com/xsd/TEST.xsd'
    ,SCHEMADOC => l_xsd_test
  );
END;

procedure test_validate
is
  l_xml xmltype;                                                                  
  l_txt clob := '<?xml version="1.0" encoding="UTF-8"?>   
   <ns0:issueDate xmlns:ns0="urn:TEST">2018-02-06T12:07:25.141+03:00</ns0:issueDate>';
begin

  l_xml := xmltype(xmlData => l_txt, schema => 'http://test.com/xsd/TEST.xsd');

  l_xml.schemavalidate();
exception
when OTHERS then
  log(sqlerrm);
end;


пытаюсь валидировать дату в формате 2018-02-06T12:07:25.141+03:00
выдает ошибку

ORA-30992: возникла ошибка на Xpath /issueDate[@SYS_XDBBODY$]
ORA-01858: вместо ожидаемой цифры обнаружен нецифровой символ

 type="xsd:dateTime" xdb:SQLType="TIMESTAMP WITH TIME ZONE" 
есть

чего ей еще не хватает ?
8 фев 18, 09:17    [21175153]     Ответить | Цитировать Сообщить модератору
 Re: XSD валидация даты  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 6725
xsd,

TIME ZONE" form="qualified"/> [

так задумано?
8 фев 18, 12:37    [21175933]     Ответить | Цитировать Сообщить модератору
 Re: XSD валидация даты  [new]
xsd
Guest
env
xsd,

TIME ZONE" form="qualified"/> [

так задумано?


нет, это опечатка не в исходном коде, а при постинге на сей форум
просто пытался докинуть тегов, но не вышло, удалил, но один символ затерялся
так что проблема не в этом
8 фев 18, 13:01    [21176026]     Ответить | Цитировать Сообщить модератору
 Re: XSD валидация даты  [new]
merch
Member

Откуда:
Сообщений: 170
xsd, возьми свой xml, xsd, открой ресурс "валидация xml по xsd online" и посмотри, ок или нет.
Если нет - то тебе явно не на эту ветку форума.
8 фев 18, 13:57    [21176281]     Ответить | Цитировать Сообщить модератору
 Re: XSD валидация даты  [new]
xsd
Guest
merch
xsd, возьми свой xml, xsd, открой ресурс "валидация xml по xsd online" и посмотри, ок или нет.
Если нет - то тебе явно не на эту ветку форума.


в джаве у меня всё валидируется отлично
8 фев 18, 15:10    [21176641]     Ответить | Цитировать Сообщить модератору
 Re: XSD валидация даты  [new]
xsd
Guest
опа....

таки решение само нашлось
https://www.eehelp.com/question/validate-the-xml-datetime-ora-01830-01858/

ALTER SESSION SET nls_numeric_characters = '.,'


и всё валидируется

я подозревал что дело в параметрах, но чтобы nls_numeric_characters....
8 фев 18, 15:33    [21176774]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить