2010-02-19 7 views
8

Ich bin sehr neu in WSDL, aber was ich versuche zu tun ist sehr einfach. Ich habe einen Webdienst bekommen, der mit der ZSI-Bibliothek von Python arbeitet, aber ich definiere einen Dienst, der ein Array eines benutzerdefinierten Typs zurückgibt.Wie definiere ich ein Array von benutzerdefinierten Typen in WSDL?

In meinem WSDL Ich habe folgende:

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

Wenn ich versuche, ein anderes Element wie ArtPieceArray hinzufügen, indem er eine unbegrenzte Anzahl von artpiece Typen definiert ist, die ungültig zu sein scheint.

Wenn ich meine Nachricht definiere, versuche ich ArtPiece [] zu benutzen, das scheint auch ungültig zu sein.

Ich verwende ZSI für den Webdienst und C# für den Client. Der Client-Webservice-Code wird von wsdl.exe generiert.

Irgendwelche Vorschläge?

Antwort

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