Svcutil from wsdl file: Schema error with target namespace not found

On my machine, I have a WSDL file and all the necessary schema files. I am trying to use svcutil to generate client proxy from WSDL. Command:

svcutil myfile.wsdl 

I keep getting an error when using svcutil, but have no problem loading wsdl using soapUI if that means anything.

I keep getting this error:

 Error: Cannot import wsdl:portType Detail: An exception was thrown while running a WSDL import extension: System.ServiceModel.Description.DataContractSerializerMessageContractImporter Error: Schema with target namespace 'http://www.crsoftwareinc.com/xml/ns/titanium/event/areventservice/v1_0' could not be found. XPath to Error Source: //wsdl:definitions[@targetNamespace='http://www.crsoftwareinc.com/xml/ns/titanium/event/areventservice/v1_0']/wsdl:portType[@name='areventservice'] 

Here is the WSDL:

 <?xml version="1.0" encoding="UTF-8"?> <wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="areventservice" targetNamespace="http://www.crsoftwareinc.com/xml/ns/titanium/event/areventservice/v1_0" xmlns:tns="http://www.crsoftwareinc.com/xml/ns/titanium/event/areventservice/v1_0" xmlns:es="http://www.crsoftwareinc.com/xml/ns/titanium/event/areventservice/v1_0"> <wsdl:types> <xsd:schema targetNamespace="http://www.crsoftwareinc.com/xml/ns/titanium/event/areventservice/v1_0" xmlns:tns="http://www.crsoftwareinc.com/xml/ns/titanium/event/areventservice/v1_0" xmlns:es="http://www.crsoftwareinc.com/xml/ns/titanium/event/areventservice/v1_0"> <xsd:include schemaLocation="arevent-service.xsd"/> </xsd:schema> </wsdl:types> <wsdl:message name="SaveAREventWithShortNames"> <wsdl:part element="es:save-arevent-with-shortnames" name="SaveAREventWithShortNames"/> </wsdl:message> <wsdl:message name="RetrieveAREventByConsumerIdentifier"> <wsdl:part element="es:retrieve-arevent-by-consumer-agency-identifier" name="RetrieveAREventByConsumerIdentifier"/> </wsdl:message> <wsdl:message name="RetrieveAREventByConsumerAccountIdentifier"> <wsdl:part element="es:retrieve-arevent-by-consumer-account-agency-identifier" name="RetrieveAREventByConsumerAccountIdentifier"/> </wsdl:message> <wsdl:message name="RetrieveAREventResponse"> <wsdl:part element="es:retrieve-arevent-response" name="RetrieveAREventResponse"/> </wsdl:message> <wsdl:message name="SaveAREventResponse"> <wsdl:part element="es:save-arevent-response" name="SaveAREventResponse"/> </wsdl:message> <wsdl:portType name="areventservice"> <wsdl:operation name="SaveAREventWithShortNames"> <wsdl:input message="tns:SaveAREventWithShortNames" name="SaveAREventWithShortNames"/> <wsdl:output message="tns:SaveAREventResponse" name="SaveAREventResponse"/> </wsdl:operation> <wsdl:operation name="RetrieveAREventByConsumerIdentifier"> <wsdl:input message="tns:RetrieveAREventByConsumerIdentifier" name="RetrieveAREventByConsumerIdentifier"/> <wsdl:output message="tns:RetrieveAREventResponse" name="RetrieveAREventResponse"/> </wsdl:operation> <wsdl:operation name="RetrieveAREventByConsumerAccountIdentifier"> <wsdl:input message="tns:RetrieveAREventByConsumerAccountIdentifier" name="RetrieveAREventByConsumerAccountIdentifier"/> <wsdl:output message="tns:RetrieveAREventResponse" name="RetrieveAREventResponseByAccountIdentifier"/> </wsdl:operation> </wsdl:portType> 

Here is the isvent-service.xsd schema file (located in the same directory as WSDL):

 <?xml version="1.0" encoding="UTF-8"?> <!-- (C)opyright 2004-2009 by CR Software, LLC - All Rights Reserved --> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:as="http://www.crsoftwareinc.com/xml/ns/titanium/event/areventservice/v1_0" targetNamespace="http://www.crsoftwareinc.com/xml/ns/titanium/event/areventservice/v1_0" xmlns:common="http://www.crsoftwareinc.com/xml/ns/titanium/common/v1_0" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:import schemaLocation="arevent-service-common.xsd" namespace="http://www.crsoftwareinc.com/xml/ns/titanium/common/v1_0"/> <xs:element name="save-arevent-with-shortnames" type="common:save-areventType" /> <xs:element name="retrieve-arevent-by-consumer-agency-identifier" type="common:retrieve-by-consumer-agency-idType" /> <xs:element name="retrieve-arevent-by-consumer-account-agency-identifier" type="common:retrieve-by-consumer-account-agency-idType" /> <xs:element name="retrieve-arevent-response" type="as:retrieve-arevent-responseType" /> <xs:complexType name="retrieve-arevent-responseType"> <xs:sequence> <xs:element name="arevent-page-results" type="common:arevent-page-resultsType" minOccurs="1" maxOccurs="1" > <xs:annotation> <xs:documentation> arevent page results type </xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> <xs:element name="save-arevent-response" type="as:save-arevent-responseType" /> <xs:complexType name="save-arevent-responseType"> <xs:sequence> <xs:element name="arevent" type="common:areventType" minOccurs="1" maxOccurs="1" > <xs:annotation> <xs:documentation> arevent type </xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> </xs:schema> 

Target namespaces look like they match me. As I said, soapUI has no problem loading wsdl.

I have no idea what to do.

+6
source share
1 answer

Either specify the paths to all the WSDL and schema files on the command line, or use the "Add service link", which will do this for you.

Please note that β€œAdd Service Link” works with files on your local system - not just files with a URL.

+12
source

Source: https://habr.com/ru/post/893709/


All Articles