Не импортируется xsd в wsdl
От: ruffini  
Дата: 29.09.13 05:24
Оценка:
Доброе утро!
Хочу по wsdl и xsd файлам с помощью wsdl.exe сгенерить cs-код.
Моя цель — сделать серверную реализацию по предоставленному wsdl файлу (с клиентской проблем нет — VS все успешно генерит).
Но постоянно получаю ошибку:

E:\ref\wsdl4test>wsdl webservice.wsdl
Microsoft (R) Web Services Description Language Utility
[Microsoft (R) .NET Framework, Version 2.0.50727.42]
Copyright (C) Microsoft Corporation. All rights reserved.
Error: Не удается импортировать привязку "MemberWebServiceSoap" из пространства
имен "http://www.services.ru/IntegrationServices/MemberServices/".
  - Не удается импортировать операцию "CreateNewUser".
  - Отсутствует элемент "http://www.services.ru/IntegrationServices/MemberServic
esSchema:NewMemberProfileRequest".


Как будто утилита wsdl.exe не делает команды import. Visual Studio же спокойно подключает этот wsdl, затем можно пользоваться сгенеренными объектами с параметрами из xsd.
Не поможете разобраться в чем может быть дело?

Вот WebService.wsdl:

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions 
    targetNamespace="http://www.services.ru/IntegrationServices/MemberServices/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
    xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
    xmlns:tns="http://www.services.ru/IntegrationServices/MemberServices/"
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    
    xmlns:member="http://www.services.ru/IntegrationServices/MemberServicesSchema">

    <wsdl:types>
        <xsd:schema xmlns:member="http://www.services.ru/IntegrationServices/MemberServicesSchema" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
            <xsd:import namespace="http://www.services.ru/IntegrationServices/MemberServicesSchema" schemaLocation="WebService.xsd" />
        </xsd:schema>
    </wsdl:types>

    <wsdl:message name="CreateNewUserSoapIn">
        <wsdl:part name="parameters" element="member:NewMemberProfileRequest" />
    </wsdl:message>
    <wsdl:message name="CreateNewUserSoapOut">
        <wsdl:part name="parameters" element="member:NewMemberProfileResponse" />
    </wsdl:message>
    <wsdl:message name="UpdateExistingUserSoapIn">
        <wsdl:part name="parameters" element="member:UpdateMemberProfileRequest" />
    </wsdl:message>
    <wsdl:message name="UpdateExistingUserSoapOut">
        <wsdl:part name="parameters" element="member:UpdateMemberProfileResponse" />
    </wsdl:message>

    <wsdl:portType name="MemberWebServiceSoap">
        <wsdl:operation name="CreateNewUser">
            <wsdl:input message="tns:CreateNewUserSoapIn" />
            <wsdl:output message="tns:CreateNewUserSoapOut" />
        </wsdl:operation>
        <wsdl:operation name="UpdateExistingUser">
            <wsdl:input message="tns:UpdateExistingUserSoapIn" />
            <wsdl:output message="tns:UpdateExistingUserSoapOut" />
        </wsdl:operation>
    </wsdl:portType>

    <wsdl:binding name="MemberWebServiceSoap" type="tns:MemberWebServiceSoap">
        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
        <wsdl:operation name="CreateNewUser">
            <soap:operation soapAction="http://www.services.ru/IntegrationServices/MemberServices/CreateNewUser" />
            <wsdl:input>
                <soap:body use="literal" />
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal" />
            </wsdl:output>
        </wsdl:operation>
        <wsdl:operation name="UpdateExistingUser">
            <soap:operation soapAction="http://www.services.ru/IntegrationServices/MemberServices/UpdateExistingUser" />
            <wsdl:input>
                <soap:body use="literal" />
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal" />
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="MemberWebService">
        <wsdl:port binding="tns:MemberWebServiceSoap" name="MemberWebServiceSoap">
            <soap:address location="https://localhost/webapp/wcs/services/MemberWebService" />
        </wsdl:port>
    </wsdl:service>
</wsdl:definitions>


Вот WebService.xsd:


<?xml version="1.0" encoding="UTF-8"?>
<xs:schema attributeFormDefault="unqualified"
    elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://www.services.ru/IntegrationServices/MemberServicesSchema"
    xmlns:tns="http://www.services.ru/IntegrationServices/MemberServicesSchema">
    
    <xs:element name="NewMemberProfileRequest" type="tns:MemberProfileDetails" />
    <xs:element name="NewMemberProfileResponse" type="tns:MemberProfileServiceResponse" />
    
    <xs:element name="UpdateMemberProfileRequest" type="tns:MemberProfileDetails" />
    <xs:element name="UpdateMemberProfileResponse" type="tns:MemberProfileServiceResponse"/>
    
    
    <xs:complexType name="MemberProfileDetails">
        <xs:sequence>
            <xs:element name="LogonId" minOccurs="1" maxOccurs="1" type="xs:string"/>
            <xs:element name="FirstName" minOccurs="1" maxOccurs="1" type="xs:string"/>
            <xs:element name="LastName" minOccurs="1" maxOccurs="1" type="xs:string"/>
            <xs:element name="PhoneNumber" minOccurs="1" maxOccurs="1" type="xs:string"/>
            <xs:element name="Email" minOccurs="1" maxOccurs="1" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
    
    <xs:complexType name="MemberProfileServiceResponse">
        <xs:sequence>
            <xs:element minOccurs="1" maxOccurs="1" name="OperationStatus" type="tns:OperationStatusType"/>
            <xs:element minOccurs="0" maxOccurs="1" name="Error" type="tns:ErrorType"/>
        </xs:sequence>
    </xs:complexType>
    
    <xs:simpleType name="OperationStatusType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="SUCCESS"/>
            <xs:enumeration value="FAILURE"/>
        </xs:restriction>
    </xs:simpleType>
    
    <xs:complexType name="ErrorType">
        <xs:sequence>
            <xs:element maxOccurs="1" minOccurs="1" name="ErrorCode" type="xs:string"/>
            <xs:element maxOccurs="1" minOccurs="1" name="ErrorDescription" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
    
</xs:schema>


Утилита wsdl я нашел у себя в C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin
Re: Не импортируется xsd в wsdl
От: ruffini  
Дата: 29.09.13 05:37
Оценка:
Файлы:
wsdl.exe
webService.wsdl
webService.xsd
Re: Не импортируется xsd в wsdl
От: Neco  
Дата: 29.09.13 06:51
Оценка: 3 (1)
wsdl.exe myWebService.wsdl myXsd1.xsd myType1.xsd myXsd2.xsd
всю ночь не ем, весь день не сплю — устаю
Re[2]: Не импортируется xsd в wsdl
От: ruffini  
Дата: 29.09.13 07:18
Оценка:
Здравствуйте, Neco, Вы писали:

N>wsdl.exe myWebService.wsdl myXsd1.xsd myType1.xsd myXsd2.xsd


Большое Вам Спасибо!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.