2009-06-25 6 views
0

Il semble que l'élément imbriqué avec un type défini personnalisé ne fonctionne pas en studio visuel 2008. Je le fichier wsdl suivant:wsdl: Type * non déclaré

<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
xmlns:ns1="http://org.apache.axis2/xsd" 
xmlns:wsaw="http://www.w3.org/2006/05/addressing/wsdl" 
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" 
xmlns:ns0="http://processmaker.com" 
xmlns:xs="http://www.w3.org/2001/XMLSchema" 
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" 
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" 
targetNamespace="http://processmaker.com"> 
    <wsdl:types> 
    <xs:element name="processListStruct" > 
     <xs:complexType > 
      <xs:sequence > 
      <xs:element name="guid" type="xs:string"/> 
      <xs:element name="name" type="xs:string"/> 
      </xs:sequence> 
     </xs:complexType> 
     </xs:element> 
    <xs:element name="processListResponse" > 
     <xs:complexType > 
      <xs:sequence > 
      <xs:element name="processes" maxOccurs="unbounded" type="ns0:processListStruct"/> 
      </xs:sequence> 
     </xs:complexType> 
     </xs:element> 
</wsdl:types> 
<!-- snip other definition --> 
</wsdl:definitions> 

Cependant dans Visual Studio je suis arrivé un "type processListStruct non déclaré erreur" lorsque j'ai navigué le curseur de ma souris sur la ligne <xs:element name="processes" maxOccurs="unbounded" type="ns0:processListStruct"/>. Et comme je voulais générer la classe proxy à l'aide de la commande suivante,

wsdl /out:mycsclass.cs blahblah.wsdl 

Je suis une erreur en disant que

The datatype 'http://processmaker.com:processListStruct' is missing. 

Comment résoudre ce problème, et est-il un autre outil en plus wsdl qui peuvent avec succès transformer l'élément ci-dessus?

Répondre

0

Comme Microsoft a répondu, il n'y a pas un bug wsdl.exe, il est un bug dans le schéma:

<xs:element name="processes" maxOccurs="unbounded" type="ns0:processListStruct"/> 

Cependant, comme on peut le voir:

<xs:element name="processListStruct" > 

processListStruct est un élément, non un type.

+0

Mais le wsdl devrait être capable de distinguer entre élément et type, même s'ils ont le même nom. – Graviton

+0

Non. Ce n'est pas le WSDL qui pose problème. Le schéma XML est simplement mauvais. Vous avez dit type =, mais c'est un élément. Ce n'est pas la même chose. –

Questions connexes