svcutil aus der wsdl-Datei: Fehler-Schema mit Ziel-Namensraum konnte nicht gefunden werden
Auf meinem Rechner habe ich eine WSDL-Datei und alle notwendigen schema-Dateien.
Ich bin versucht, svcutil zu erstellen, die client-proxy-code aus der WSDL.
Befehl:
svcutil myfile.wsdl
Ich immer eine Fehlermeldung, wenn mit svcutil, haben aber keine Probleme beim laden der wsdl-mit soapUI, wenn das bedeutet nichts.
Ich bekomme immer diese Fehlermeldung:
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']
Hier ist die 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>
Hier ist die schema-Datei arevent-service.xsd (befindet sich im gleichen Verzeichnis wie 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>
Den target-namespaces werden alle schauen, wie Sie passen zu mir.
Wie ich schon sagte, soapUI hat keine problem beim laden der wsdl.
Ich habe keine Ahnung, was zu tun ist.
Versuchen Sie, die Wege, um alle schemas nach dem Pfad zur WSDL. Das ist, was Sie zu tun haben, mit den älteren WSDL.EXE.
Mann ich habe über 40 referenzierten schemas. Ich habe versucht, die ersten paar und es scheint zumindest die Generierung neuen Fehlermeldungen. sagen Sie, dass es eine neue, verbesserte version, die nicht erforderlich ist die Angabe aller 40!?
Nein. Sie müssen angeben, alle von Ihnen, oder sonst mit "Add Service Reference", die alles für Sie tun.
Saunders - Für einige Grund, warum Sie nicht bei mir melden, dass "Add Service Reference" würde die Arbeit mit einer lokalen Dateipfad. Tausend Dank für Euch Hilfe!!!
Mann ich habe über 40 referenzierten schemas. Ich habe versucht, die ersten paar und es scheint zumindest die Generierung neuen Fehlermeldungen. sagen Sie, dass es eine neue, verbesserte version, die nicht erforderlich ist die Angabe aller 40!?
Nein. Sie müssen angeben, alle von Ihnen, oder sonst mit "Add Service Reference", die alles für Sie tun.
Saunders - Für einige Grund, warum Sie nicht bei mir melden, dass "Add Service Reference" würde die Arbeit mit einer lokalen Dateipfad. Tausend Dank für Euch Hilfe!!!
InformationsquelleAutor J Cooper | 2011-07-27
Du musst angemeldet sein, um einen Kommentar abzugeben.
Entweder geben Sie die Pfade zu allen von der WSDL-und schema-Dateien auf der Kommandozeile, oder anders, verwenden Sie "Add Service Reference", die das für Sie tun.
Beachten Sie, dass "Add Service Reference" macht die Arbeit mit Dateien auf Ihrem lokalen system - und nicht nur für Dateien, die an eine URL.
SvcUtil /t:code WsdlFile.wsdl FirstSchemaFile.xsd SecondSchemaFile.xsd ThirdSchemaFile.xsd /l:cs
Explizit übergeben alle XSD-Dateien anstelle von *.XSD-auch für mich gearbeitet.
Add Service Reference nicht beheben mein problem stackoverflow.com/questions/15815095/cannot-load-xml-types. Irgendeine Idee warum?
Ich hatte das exakt gleiche Fehler. Die wsdl-und alle die xsds, wo im gleichen Ordner.
svcutil subscriptions.wsdl *.xsd /l:c# /o:proxy.cs
Wir hatten ein client eine wsdl-mit mehr als 15 xsd-Dateien. Dieser Ansatz deshalb für uns gearbeitet.InformationsquelleAutor John Saunders