9

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

svcutil myfile.wsdl

I keep getting an error when using svcutil, but have no problems when loading the wsdl with 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 schema file arevent-service.xsd (located in 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>

The target namespaces all look like they match to me. Like I said, soapUI has not problem loading the wsdl.

I have no idea what to do.

4
  • Try specifying the paths to all the schemas after the path to the WSDL. That's what you have to do with the older WSDL.EXE. Commented Jul 27, 2011 at 18:49
  • 1
    man i have about 40 referenced schemas. I tried the first few and it seems to be at least generating new error messages. are you saying that there is a new improved version that doesn't require specifying all 40!? Commented Jul 27, 2011 at 18:58
  • 1
    No. You'll have to specify all of them, or else use "Add Service Reference", which will do it all for you. Commented Jul 27, 2011 at 18:59
  • @John Saunders - For some reason it didn't register with me that "Add Service Reference" would work with a local file path. Thanks a bunch for you help! Commented Jul 27, 2011 at 19:06

1 Answer 1

15

Either specify the paths to all of the WSDL and schema files on the command line, or else use "Add Service Reference", which will do that for you.

Note that "Add Service Reference" does work with files on your local system - not just for files at a URL.

Sign up to request clarification or add additional context in comments.

4 Comments

Had a similar problem and can confirm that adding the XSD files to the SvcUtil call fixed the problem. The command-line looked like: SvcUtil /t:code WsdlFile.wsdl FirstSchemaFile.xsd SecondSchemaFile.xsd ThirdSchemaFile.xsd /l:cs
Explicitly passing in all the XSD files instead of using *.XSD also worked for me.
Add Service Reference did not resolve my problem stackoverflow.com/questions/15815095/cannot-load-xml-types. Any idea why?
I had the exact same errors. The wsdl and all of the xsds where in same folder. svcutil subscriptions.wsdl *.xsd /l:c# /o:proxy.cs We had a client provide a wsdl with more than 15 xsd files. So this approach worked for us.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.