2011-07-27 20 views
6

在我的机器上,我有一个WSDL文件和所有必需的模式文件。 我正在尝试使用svcutil从WSDL创建客户端代理代码。 命令:来自wsdl文件的svcutil:无法找到包含目标名称空间的模式

svcutil myfile.wsdl 

我继续使用SvcUtil工具时得到一个错误,但不会有任何问题与装载在soapUI的WSDL时,如果这意味着什么。

我不断收到此错误:

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

这里是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> 

这里是架构文件arevent-service.xsd(位于同一目录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> 

目标名称空间都看起来像他们匹配我。 就像我说的,soapUI没有加载wsdl的问题。

我不知道该怎么做。

+0

尝试在WSDL路径之后指定所有模式的路径。这就是你必须使用旧的WSDL.EXE。 –

+1

我有约40个引用模式的人。我尝试了前几个,似乎至少会生成新的错误消息。你是否说有一个新的改进版本,不需要指定全部40!? –

+1

不需要。您必须指定所有这些,否则使用“添加服务参考”,它将为您完成所有操作。 –

回答

12

要么在命令行中指定所有WSDL和模式文件的路径,要么使用“添加服务引用”,这将为您执行此操作。

请注意,“添加服务引用”不适用于本地系统上的文件 - 不仅适用于URL中的文件。

+5

有一个类似的问题,并且可以确认将XSD文件添加到SvcUtil调用中可以解决问题。命令行如下所示:'SvcUtil/t:code WsdlFile.wsdl FirstSchemaFile.xsd SecondSchemaFile.xsd ThirdSchemaFile.xsd/l:cs' –

+0

显式传递所有XSD文件而不是使用* .XSD也适用于我。 –

+0

添加服务引用没有解决我的问题http://stackoverflow.com/questions/15815095/cannot-load-xml-types。任何想法为什么? – Lijo

相关问题