2010-02-19 14 views
8

Soy nuevo en WSDL, pero lo que trato de hacer es muy simple. Obtuve un servicio web que trabajaba con la biblioteca ZSI de python, pero estoy atascado definiendo un servicio que devuelve una matriz de un tipo personalizado.¿Cómo puedo definir una matriz de tipos personalizados en WSDL?

En mi WSDL Tengo el siguiente:

<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> 

Si trato de agregar otro elemento como el ArtPieceArray que se define por tener un número ilimitado de tipos artpieces, que parece no ser válida.

Si, cuando estoy definiendo mi mensaje, intento utilizar artpieces [], que también parece ser válido.

estoy usando ZSI para el servicio web, y C# para el cliente. El código de cliente de servicio web es generado por wsdl.exe

¿Alguna sugerencia?

Respuesta

21
<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> 
Cuestiones relacionadas