Форум: "Прочее";
Текущий архив: 2015.10.18;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.002 c