Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2015.10.18;
Скачать: CL | DM;

Вниз

soap, как должен выглядеть "множественный нод"?   Найти похожие ветки 

 
ВладОшин ©   (2015-02-20 10:20) [0]

Есть присланный wsdl, где, в частности, написано

  <xs:complexType name="item">
   <xs:sequence>
    <xs:element name="id"
      type="xs:int"/>
......

и т.п., определялка item

и есть
  <xs:complexType name="order">
   <xs:sequence>
    <xs:element name="id"
      type="xs:int"/>
и т.п., определялка order
и последний элемент у него
    <xs:element name="items"
      type="tns:item"
      maxOccurs="unbounded"/>


запускаю мастера, получаю типы
 
item = class(TRemotable)
 private
   Fid: Integer;
и тп

 order = class(TRemotable)
 private
   Fid: Integer;
и тп
   Fitems: item;


соответственно, пишу

 
 order1 := order.Create;
 order1.id := 1;
...
 item1 := item.Create;
 item1.id := 11;
...
 order1.items := item1;
 AddOrder(order1)


и уходит, и принимается нормально xml вида
<order>
<id>1</id>
..
  <item>
    <id> 11</id>
Как сказано в определении - так и сгенерировано, так и работает. Правильно

но это не правильно.
потому что надо
<order>
<id>1</id>
..
<items>
  <item>
    <id> 11</id>  

вопрос: Что надо сделать и где - в WSDL, или мне генерацию поправить (переделать в  аля items[index:integer]: item с соотв. геттером


 
ВладОшин ©   (2015-02-20 10:39) [1]

уточню -
<xs:element name="items"
     type="tns:item"
     maxOccurs="unbounded"/>
смущает это.
т.е. вроде как допускается множественность?
Может тогда это мастер delphi неправильно сгенерировал?

С другой стороны - тестовый обмен состоялся, та сторона приняла и поняла отправленное.
Может все -таки ошибка в wsdl?
Потому что тз явно от нас предполагает обмен множественными нодами типа Item
Но как их впихнуть при этом - при таких типах - непонятно.


 
junglecat ©   (2015-02-20 11:35) [2]

ну, поскольку complexType name="item", то он тебе и сгенерил item
в мастере нету галки типа "pluralize ..."?


 
ухты ©   (2015-02-20 13:38) [3]

не видно указания массива


 
junglecat ©   (2015-02-20 15:29) [4]

как-то так?

<xs:complexType name="ItemArray">
<xs:sequence>
 <xs:element minOccurs="0" maxOccurs="unbounded" name="Item" nillable="true" type="tns:item"/>
</xs:sequence>
</xs:complexType>

<xs:element name="ItemArray" nillable="true" type="tns:ItemArray"/>


 
ВладОшин ©   (2015-02-20 17:42) [5]


> junglecat ©

да, спасибо!

  <xs:complexType name="Items">
   <xs:sequence>
    <xs:element name="Item"
      type="tns:item"
      maxOccurs="unbounded"/>
   </xs:sequence>
  </xs:complexType>

  <xs:complexType name="item">
   <xs:sequence>
    <xs:element name="id"
      type="xs:int"/>
........
   </xs:sequence>
  </xs:complexType>

  <xs:complexType name="order">
   <xs:sequence>
    <xs:element name="id"
      type="xs:int"/>
...............
    <xs:element name="items"
      type="tns:Items"/>
   </xs:sequence>
  </xs:complexType>

зы:
"что за собачий язык" (с)
меня так и подмывало взять инди_http1, и сказать ему .Put(s: string)
но надо же по-взрослому :)


 
virex(home) ©   (2015-02-24 19:03) [6]

>ВладОшин ©   (20.02.15 10:20) [0]

ничего не понял, но осуждаю


 
ВладОшин ©   (2015-03-03 13:44) [7]


> virex(home) ©   (24.02.15 19:03) [6]

ничего, такая же ерунда :)

ps
wsdl создан с помощью 1С v8.3
- чего там тыкать что бы создалось все правильно - нашлось методом тыка
(а обязательно надо там, потому что тогда оно понимает, ну ибо само и сделало. Что-то руками править - наверное можно, но надо знать чуть больше про 1С, что совсем не вариант, некогда)
В общем работает и хорошо



Страницы: 1 вся ветка

Текущий архив: 2015.10.18;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.003 c
2-1400900914
mfender
2014-05-24 07:08
2015.10.18
Вопрос по теории. Нетипизированные параметры в методах.


1-1333648639
Дмитрий Белькевич
2012-04-05 21:57
2015.10.18
сконвертироать содержимое буфера обмена wmf > bmp


2-1400912873
nitrolon
2014-05-24 10:27
2015.10.18
Delphi TSocket, контроль переполнения


15-1425072602
Юрий
2015-02-28 00:30
2015.10.18
С днем рождения ! 28 февраля 2015 суббота


15-1425450814
junglecat
2015-03-04 09:33
2015.10.18
Странный формат mht