Как определить массив пользовательских типов в WSDL?

Я очень новичок в WSDL, но то, что я пытаюсь сделать, очень просто. Я получил веб-сервис, работающий с библиотекой ZSI python, но застрял в определении службы, которая возвращает массив настраиваемого типа.

В моем WSDL у меня есть следующее:

<xsd:element name="ArtPiece"> <xsd:complexType> <xsd:sequence> <xsd:element name="title" type="xsd:string" /> <xsd:element name="year" type="xsd:string" /> <xsd:element name="imageId" type="xsd:int" minOccurs="0" /> <xsd:element name="image" type="xsd:base64Binary" minOccurs="0" /> </xsd:sequence> </xsd:complexType> </xsd:element> 

Если я попытаюсь добавить еще один элемент, такой как ArtPieceArray, который определяется неограниченным количеством типов ArtPiece, это кажется недействительным.

Если, когда я определяю свое сообщение, я пытаюсь использовать ArtPiece [], что также кажется недействительным.

Я использую ZSI для веб-службы и C # для клиента. Код веб-службы клиента генерируется wsdl.exe

Какие-либо предложения?

One Solution collect form web for “Как определить массив пользовательских типов в WSDL?”

 <xs:schema elementFormDefault="qualified" targetNamespace="http://schemas.datacontract.org/2004/07/Foo" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://schemas.datacontract.org/2004/07/Foo"> <xs:complexType name="ArtPiece"> <xs:sequence> <xs:element minOccurs="0" name="image" nillable="true" type="xs:base64Binary"/> <xs:element minOccurs="0" name="imageId" type="xs:int"/> <xs:element minOccurs="0" name="title" nillable="true" type="xs:string"/> <xs:element minOccurs="0" name="year" nillable="true" type="xs:string"/> </xs:sequence> </xs:complexType> <xs:element name="ArtPiece" nillable="true" type="tns:ArtPiece"/> <xs:complexType name="ArrayOfArtPiece"> <xs:sequence> <xs:element minOccurs="0" maxOccurs="unbounded" name="ArtPiece" nillable="true" type="tns:ArtPiece"/> </xs:sequence> </xs:complexType> <xs:element name="ArrayOfArtPiece" nillable="true" type="tns:ArrayOfArtPiece"/> </xs:schema> пространство <xs:schema elementFormDefault="qualified" targetNamespace="http://schemas.datacontract.org/2004/07/Foo" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://schemas.datacontract.org/2004/07/Foo"> <xs:complexType name="ArtPiece"> <xs:sequence> <xs:element minOccurs="0" name="image" nillable="true" type="xs:base64Binary"/> <xs:element minOccurs="0" name="imageId" type="xs:int"/> <xs:element minOccurs="0" name="title" nillable="true" type="xs:string"/> <xs:element minOccurs="0" name="year" nillable="true" type="xs:string"/> </xs:sequence> </xs:complexType> <xs:element name="ArtPiece" nillable="true" type="tns:ArtPiece"/> <xs:complexType name="ArrayOfArtPiece"> <xs:sequence> <xs:element minOccurs="0" maxOccurs="unbounded" name="ArtPiece" nillable="true" type="tns:ArtPiece"/> </xs:sequence> </xs:complexType> <xs:element name="ArrayOfArtPiece" nillable="true" type="tns:ArrayOfArtPiece"/> </xs:schema> 
  • Создание WSDL с использованием Python и SOAPpy
  • Создайте papon soap-сервер на основе wsdl
  • Ладон контролирует порядок элементов внутри LadonType
  • Клиент SOAP Python с пространством имён импорта Zeep
  • Как я могу использовать wsdl url в python
  • Python - лучший язык программирования в мире.