我对WSDL很新,但我想要做的很简单.我已经得到了一个使用
python的ZSI库的Web服务,但我很难定义一个返回自定义类型数组的服务.
在我的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作为Web服务,而使用C#作为客户端.客户端Web服务代码由wsdl.exe生成
有什么建议?
解决方法
<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>