Загрузить XML в DATASET

Обсуждение вопросов по разработке программ в среде продуктов копорации "Progress Software"
Аватара пользователя
dmikai
Старожил
Сообщения: 516
Зарегистрирован: 20 сен 2006, 23:19
Откуда: Рига, Латвия
Контактная информация:

Загрузить XML в DATASET

Сообщение dmikai » 23 авг 2017, 17:14

Добрый день

Никак не получается загрузить данные в DATASET.
Вот программа:

Код: Выделить всё

DEFINE TEMP-TABLE requestResult NO-UNDO
    SERIALIZE-NAME "MultiRef"
    FIELD errorText AS CHARACTER
    FIELD requestId AS CHARACTER
    FIELD returnValue AS INTEGER.

DEFINE DATASET requestResultDset
    XML-NODE-TYPE "HIDDEN"
    FOR requestResult.

DATASET requestResultDset:read-xml("file","result1.txt", ?, ?, ?).


Вот сам XML:

Код: Выделить всё

<multiRef xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
          xmlns:ns2="urn:server.transaction.gramm"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xmlns:xsd="http://www.w3.org/2001/XMLSchema"
          xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
          id="id0"
          soapenc:root="0"
          soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
          xsi:type="ns2:RequestResult">
    <errorText xsi:type="xsd:string"></errorText>
    <requestId xsi:type="xsd:string">BBD-0023JJK</requestId>
    <returnValue xsi:type="xsd:int">1</returnValue>
</multiRef>


Вот ошибка при загрузке:

Код: Выделить всё

Dataset name 'requestResultDset' in namespace '' not found in XML Document. (13514)


Однако в TEMP-TABLE загружается. Но нужен именно DATASET.

Код: Выделить всё

TEMP-TABLE requestResult:read-xml("file","result1.txt", ?, ?, ?).


Если же попробовать в первом примере создать запись и выгрузить DATASET как XML, то структура очень похожая:

Код: Выделить всё

<MultiRef xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <errorText>Test error</errorText>
  <requestId>RequestID</requestId>
  <returnValue>100</returnValue>
</MultiRef>

Аватара пользователя
Arelav
Администратор
Сообщения: 1880
Зарегистрирован: 25 мар 2005, 17:05
Откуда: Progress Technologies
Контактная информация:

Re: Загрузить XML в DATASET

Сообщение Arelav » 25 авг 2017, 11:51

Привет!

Заменил в твоём примере multiRef на MultiRef, основываясь на том, в каком виде был выгружен XML из DATASET - это единственное отличие.
И загрузка в DATASET прошла без ошибок.

Код: Выделить всё

<MultiRef xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
          xmlns:ns2="urn:server.transaction.gramm"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xmlns:xsd="http://www.w3.org/2001/XMLSchema"
          xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
          id="id0"
          soapenc:root="0"
          soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
          xsi:type="ns2:RequestResult">
    <errorText xsi:type="xsd:string"></errorText>
    <requestId xsi:type="xsd:string">BBD-0023JJK</requestId>
    <returnValue xsi:type="xsd:int">1</returnValue>
</MultiRef>


Возможно имеет смысл открыть официальный кейс в саппорте: https://support.progress-tech.ru/

Аватара пользователя
dmikai
Старожил
Сообщения: 516
Зарегистрирован: 20 сен 2006, 23:19
Откуда: Рига, Латвия
Контактная информация:

Re: Загрузить XML в DATASET

Сообщение dmikai » 27 авг 2017, 08:57

Arelav писал(а):Привет!

Заменил в твоём примере multiRef на MultiRef, основываясь на том, в каком виде был выгружен XML из DATASET - это единственное отличие.

Возможно имеет смысл открыть официальный кейс в саппорте: https://support.progress-tech.ru/


Спасибо!

Помогло. И сразу вспомнил, что неделю обратно читал пост про регистр в XML тэгах.
То есть еэто не баг!

Аватара пользователя
Arelav
Администратор
Сообщения: 1880
Зарегистрирован: 25 мар 2005, 17:05
Откуда: Progress Technologies
Контактная информация:

Re: Загрузить XML в DATASET

Сообщение Arelav » 28 авг 2017, 14:22

Ок. Пожалуйста!

P.S.
Меня просто смутило то, что в примерах из сети написание как multiRef распространённое явление.