aelena.com

15 April 2010

WSDL de sistemas SAP

Filed under: .NET, Servicios Web — admin @ 15:41

Hoy he podido pasar un “agradable” rato buscando un problema en un WSDL de 3200 lineas para conectarme a un servicio web de SAP. Este pequeño post es más que nada un recordatorio. Al intentar generar un proxy tanto desde Visual Studio como desde las herramientas wsdl.exe o svcutil.exe, obtenía mensajes de error un tanto crípticos.

Corriendo esta linea


wsdl “D:\WSDLs\Vendor Exists\XI_VENDOR_EXISTS.wsdl” /l:c# /v /o:proxy.cs /parsableerrors

obtenia esto

Error: There is an error in XML document (3170, 16).
- Value cannot be null.
Parameter name: name

Bonito eh? Lo mismo con

svcutil “D:\WSDLs\Vendor Exists\XI_VENDOR_EXISTS.wsdl” /out:proxy.cs

y desde Visual Studio

The document at the url file:///D:/Projects/Tests/ConsoleApplication1/ConsoleApplication1/MI_Vendor_Exists.wsdl was not recognized as a known document type.
The error message from each known type may help you fix the problem:
- Report from ‘DISCO Document’ is ‘Discovery document at the URL file:///D:/Projects/Tests/ConsoleApplication1/ConsoleApplication1/MI_Vendor_Exists.wsdl could not be found.’.
- The document format is not recognized.
- Report from ‘WSDL Document’ is ‘There is an error in XML document (2, 80660).’.
- Value cannot be null.
Parameter name: name
- Report from ‘XML Schema’ is ‘The root element of a W3C XML Schema should be and its namespace should be ‘http://www.w3.org/2001/XMLSchema’.’.

Al final, nada que ver con las lineas indicadas ni con el discovery ni nada. Simeplemente un par de espacios en dos lineas como esta

<xsd:union memberTypes=" xsd:time genericTime" ...
El espacio entre la comilla y xsd es el culpable. Viendolo en retrospectiva parece fácil entender el mensaje de error de “value cannot be null,” pero hasta que se da con ello y se te ocurre buscar anomalías…. Incluso XML Spy no supo tampoco hacer nada. El caso es que creo que esto ya me ha pasado alguna vez, pero ya se sabe, dos veces la misma piedra, y tres y cuatro.

Saludos