powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Oracle [игнор отключен] [закрыт для гостей] / XMLTYPE.toObject() / DBMS_XMLSCHEMA.registerSchema неудачные типы
1 сообщений из 1, страница 1 из 1
XMLTYPE.toObject() / DBMS_XMLSCHEMA.registerSchema неудачные типы
    #39967806
qlost
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зарегал XSD-схему. Вот часть содержимого.
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.NewAthena.ru/NA5/IntegrationAdapter" targetNamespace="http://www.NewAthena.ru/NA5/IntegrationAdapter" xmlns:xdb="http://xmlns.oracle.com/xdb" elementFormDefault="qualified" attributeFormDefault="qualified" version="4_21324_1">
  <xsd:complexType name="T_REQUEST_BASEType" xdb:SQLType="T_REQUEST_BASEType">
...
      <xsd:element name="RATRANSPROPS" type="T_PROPERTIESType" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>Секция значений транспортных атрибутов (для целей маршрутизации и т.п. ).                        Возвращается в неизменном виде в response-е.        </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
...
  <xsd:complexType name="T_PROPERTIESType" xdb:SQLType="T_PROPERTIESType">
    <xsd:sequence>
      <xsd:element name="T_PROPERTY" type="T_PROPERTYType" minOccurs="0" maxOccurs="1000"/>
    </xsd:sequence>
  </xsd:complexType>


DBMS_XMLSCHEMA.registerSchema() создал такие типы:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
CREATE OR REPLACE TYPE "T_REQUEST_BASEType" AS OBJECT ("SYS_XDBPD$" "XDB"."XDB$RAW_LIST_T",
...
"RATRANSPROPS" "T_PROPERTIESType",
...
)NOT FINAL INSTANTIABLE
/

CREATE OR REPLACE TYPE "T_PROPERTIESType" AS OBJECT ("SYS_XDBPD$" "XDB"."XDB$RAW_LIST_T",
"T_PROPERTY" "T_PROPERTY10064_COLL")NOT FINAL INSTANTIABLE
/

CREATE OR REPLACE TYPE "T_PROPERTY10064_COLL" AS VARRAY(1000) OF "T_PROPERTYType"
/



пробую создать из xml-ки объекты
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
DECLARE
  v "T_REQUEST_BASEType";
BEGIN
  SYS.XmlType('
  <T_REQUEST_BASE>
  <RATRANSPROPS>
  <T_PROPERTY>
      <SNAME>sname-text</SNAME>
      <SVALUE>svalue-text</SVALUE>
    </T_PROPERTY>
    </RATRANSPROPS>
    </T_REQUEST_BASE>
').toObject(v);
END;
/


получаю ошибку
Код: plaintext
ORA-19031: XML element or attribute SNAME does not match any in type T_PROPERTYType
Подозреваю, что дело в типе-прокладке T_PROPERTIESType, т.к. если в первом типе сразу написать
Код: plsql
1.
"RATRANSPROPS" "T_PROPERTY10064_COLL"


то должно быть нормально.

Может быть, кто подскажет, как решить проблему? Возможно, xdb: атрибуты какие-то это позволяют?
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / XMLTYPE.toObject() / DBMS_XMLSCHEMA.registerSchema неудачные типы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]