BUG: Foutbericht 'Kan geen Binding importeren uit de naamruimte' treedt op wanneer u probeert te maken van een XML-bestand voor Proxy Web Service met het hulpprogramma Web Services-beschrijving taal

Vertaalde artikelen Vertaalde artikelen
Artikel ID: 820122 - Bekijk de producten waarop dit artikel van toepassing is.
Alles uitklappen | Alles samenvouwen

Op deze pagina

Symptomen

U kunt het hulpprogramma Web Services Description Language (Wsdl.exe) gebruiken voor het maken van een XML-webservice-proxy-bestand voor een document beschrijving taal WSDL (Web Services). Als het WSDL-document een schema dat is gedefinieerd in een extern XML-Schema (XSD-bestand) wordt gebruikt die wordt echter een element opnemen (<include>) voor informatie over het type, verschijnt het volgende foutbericht weergegeven:</include>

Fout: Kan geen binding 'Service1Soap' uit 'http://tempuri.org/' naamruimte importeren.
-Kan geen importbewerking 'Hallo wereld'.
-Het element 'http://tempuri.org/XMLSchema.xsd:element1' ontbreekt.

Oorzaak

Het kan foutbericht dat wordt vermeld in de sectie 'Symptomen' wanneer Wsdl.exe volledige informatie over een element dat wordt gedefinieerd in een extern XML-Schema niet verkrijgen. WSDL.exe kan opnemen elementen (<include>) verwerken als de elementen opnemen in een schema-element (<schema>) die is opgenomen in de sectie soorten (<types>) van het WSDL-document zijn opgenomen. Dus wanneer het XML-Schema dat informatie bevat over een element dat is gedefinieerd in een extern XML-Schema een element opnemen voor aanvullende informatie van het externe XML-Schema gebruikt, wordt het probleem optreedt.</types> </schema> </include>

Workaround

U kunt dit probleem omzeilen, moet u het WSDL-document of het XML-schema's of beide wijzigen, zodat het XML-schema's gebruik geen elementen bevatten. Voer de volgende stappen uit:
  1. Open Service1.wsdl. Plak de volgende code na thetypes element (<types>):

    Opmerking Dit zorgt ervoor dat u de includeelement in Service1.wsdl in plaats van in een XML-Schema gebruiken.</types>
        <xs:schema targetNamespace="http://tempuri.org/XMLSchema.xsd" elementFormDefault="qualified"
          xmlns="http://tempuri.org/XMLSchema.xsd"
          xmlns:xs="http://www.w3.org/2001/XMLSchema">
          <xs:include schemaLocation="XMLSchema2.xsd" />
          <xs:element name="element1" type="MyTyp1"></xs:element>
        </xs:schema>
    Service1.WSDL bevat nu de volgende code:
    <?xml version="1.0" encoding="utf-8"?>
    <definitions xmlns:s1="http://tempuri.org/XMLSchema.xsd"
       xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
       xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
       xmlns:s="http://www.w3.org/2001/XMLSchema"
       xmlns:s0="http://tempuri.org/"
       xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
       xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/"
       xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
       targetNamespace="http://tempuri.org/"
       xmlns="http://schemas.xmlsoap.org/wsdl/">
      <types>
        <xs:schema targetNamespace="http://tempuri.org/XMLSchema.xsd" elementFormDefault="qualified"
          xmlns="http://tempuri.org/XMLSchema.xsd"
          xmlns:xs="http://www.w3.org/2001/XMLSchema">
          <xs:include schemaLocation="XMLSchema2.xsd" />
          <xs:element name="element1" type="MyTyp1"></xs:element>
        </xs:schema>
        <s:schema elementFormDefault="qualified" targetNamespace="http://tempuri.org/">
          <s:import namespace="http://tempuri.org/XMLSchema.xsd" />
          <s:element name="HelloWorld">
            <s:complexType>
              <s:sequence>
                <s:element minOccurs="0" maxOccurs="1" ref="s1:element1" />
              </s:sequence>
            </s:complexType>
          </s:element>
          <s:element name="HelloWorldResponse">
            <s:complexType>
              <s:sequence>
                <s:element minOccurs="0" maxOccurs="1" name="HelloWorldResult" type="s:string" />
              </s:sequence>
            </s:complexType>
          </s:element>
        </s:schema>
      </types>
      <message name="HelloWorldSoapIn">
        <part name="parameters" element="s0:HelloWorld" />
      </message>
      <message name="HelloWorldSoapOut">
        <part name="parameters" element="s0:HelloWorldResponse" />
      </message>
      <portType name="Service1Soap">
        <operation name="HelloWorld">
          <input message="s0:HelloWorldSoapIn" />
          <output message="s0:HelloWorldSoapOut" />
        </operation>
      </portType>
      <portType name="Service1HttpGet" />
      <portType name="Service1HttpPost" />
      <binding name="Service1Soap" type="s0:Service1Soap">
        <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
        <operation name="HelloWorld">
          <soap:operation soapAction="http://tempuri.org/HelloWorld" style="document" />
          <input>
            <soap:body use="literal" />
          </input>
          <output>
            <soap:body use="literal" />
          </output>
        </operation>
      </binding>
      <binding name="Service1HttpGet" type="s0:Service1HttpGet">
        <http:binding verb="GET" />
      </binding>
      <binding name="Service1HttpPost" type="s0:Service1HttpPost">
        <http:binding verb="POST" />
      </binding>
      <service name="Service1">
        <port name="Service1Soap" binding="s0:Service1Soap">
          <soap:address location="http://localhost/820122/New3/WebService1/Service1.asmx" />
        </port>
        <port name="Service1HttpGet" binding="s0:Service1HttpGet">
          <http:address location="http://localhost/820122/New3/WebService1/Service1.asmx" />
        </port>
        <port name="Service1HttpPost" binding="s0:Service1HttpPost">
          <http:address location="http://localhost/820122/New3/WebService1/Service1.asmx" />
        </port>
      </service>
    </definitions>
  2. Verplaatsen naar de opdrachtprompt van Visual Studio .NET. Thedirectory pad van de Service1.wsdl wijzigen.
  3. De volgende opdracht uitvoeren vanaf de commandprompt:

    WSDL-Service1.wsdl

    Opmerking In dit geval hoeft u te bieden Wsdl.exe withXMLSchema1.xsd als opdrachtregelparameter. Al u theinclude element in Service1.wsdl.

    Er wordt een bericht dat lijkt op thefollowing:

    Schrijven van bestand 'Bestandspad %\Service1.cs.


    Bestandspad % is een tijdelijke aanduiding voor de locatie ofService1.wsdl.

    Bovendien wordt een XML-webservice service proxy-bestand met de naam Service1.cs gemaakt.
Opmerking Deze stappen zijn gebaseerd op het monster uit de sectie 'Meer informatie' van dit artikel. Daarom kunnen de code en de namen van de bestanden in deze stappen afwijken van uw code en de bestandsnamen.

Status

Microsoft heeft bevestigd dat dit een fout is in de Microsoft-producten die aan het begin van dit artikel worden vermeld.

Meer informatie

Stappen om het probleem te reproduceren

  1. Start Kladblok en plak de volgende code in de WSDL in Kladblok:
    <?xml version="1.0" encoding="utf-8"?>
    <definitions xmlns:s1="http://tempuri.org/XMLSchema.xsd"
       xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
       xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
       xmlns:s="http://www.w3.org/2001/XMLSchema"
       xmlns:s0="http://tempuri.org/"
       xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
       xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/"
       xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
       targetNamespace="http://tempuri.org/"
       xmlns="http://schemas.xmlsoap.org/wsdl/">
      <types>
        <s:schema elementFormDefault="qualified" targetNamespace="http://tempuri.org/">
          <s:import namespace="http://tempuri.org/XMLSchema.xsd" />
          <s:element name="HelloWorld">
            <s:complexType>
              <s:sequence>
                <s:element minOccurs="0" maxOccurs="1" ref="s1:element1" />
              </s:sequence>
            </s:complexType>
          </s:element>
          <s:element name="HelloWorldResponse">
            <s:complexType>
              <s:sequence>
                <s:element minOccurs="0" maxOccurs="1" name="HelloWorldResult" type="s:string" />
              </s:sequence>
            </s:complexType>
          </s:element>
        </s:schema>
      </types>
      <message name="HelloWorldSoapIn">
        <part name="parameters" element="s0:HelloWorld" />
      </message>
      <message name="HelloWorldSoapOut">
        <part name="parameters" element="s0:HelloWorldResponse" />
      </message>
      <portType name="Service1Soap">
        <operation name="HelloWorld">
          <input message="s0:HelloWorldSoapIn" />
          <output message="s0:HelloWorldSoapOut" />
        </operation>
      </portType>
      <portType name="Service1HttpGet" />
      <portType name="Service1HttpPost" />
      <binding name="Service1Soap" type="s0:Service1Soap">
        <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
        <operation name="HelloWorld">
          <soap:operation soapAction="http://tempuri.org/HelloWorld" style="document" />
          <input>
            <soap:body use="literal" />
          </input>
          <output>
            <soap:body use="literal" />
          </output>
        </operation>
      </binding>
      <binding name="Service1HttpGet" type="s0:Service1HttpGet">
        <http:binding verb="GET" />
      </binding>
      <binding name="Service1HttpPost" type="s0:Service1HttpPost">
        <http:binding verb="POST" />
      </binding>
      <service name="Service1">
        <port name="Service1Soap" binding="s0:Service1Soap">
          <soap:address location="http://localhost/820122/New3/WebService1/Service1.asmx" />
        </port>
        <port name="Service1HttpGet" binding="s0:Service1HttpGet">
          <http:address location="http://localhost/820122/New3/WebService1/Service1.asmx" />
        </port>
        <port name="Service1HttpPost" binding="s0:Service1HttpPost">
          <http:address location="http://localhost/820122/New3/WebService1/Service1.asmx" />
        </port>
      </service>
    </definitions>
  2. Het document opslaan alsService1.WSDL.
  3. Open Kladblok en plak de volgende code in Kladblok:
    <?xml version="1.0" encoding="utf-8" ?>
    <xs:schema targetNamespace="http://tempuri.org/XMLSchema.xsd" elementFormDefault="qualified"
       xmlns="http://tempuri.org/XMLSchema.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema">
       <xs:include schemaLocation="XMLSchema2.xsd" />
       <xs:element name="element1" type="MyTyp1"></xs:element>
    </xs:schema>
  4. Het document opslaan als XMLSchema1.xsdin dezelfde map waarin u Service1.wsdl hebt gemaakt in stap 2.
  5. Plak de volgende code in Kladblok:
    <?xml version="1.0" encoding="utf-8" ?>
    <xs:schema targetNamespace="http://tempuri.org/XMLSchema.xsd" elementFormDefault="qualified"
       xmlns="http://tempuri.org/XMLSchema.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema">
       <xs:complexType name="MyTyp1">
          <xs:sequence>
             <xs:element name="element1" type="xs:string" />
             <xs:element name="element2" type="xs:int" />
          </xs:sequence>
       </xs:complexType>
    </xs:schema>
  6. Het document opslaan als XMLSchema2.xsdin dezelfde map waarin u Service1.wsdl hebt gemaakt in stap 2.
  7. Verplaatsen naar de opdrachtprompt van Visual Studio .NET. Thedirectory pad van de Service1.wsdl wijzigen.
  8. De volgende opdracht uitvoeren vanaf de commandprompt:

    WSDL-Service1.wsdlXMLSchema1.xsd

    Het foutbericht in de sectie 'Symptomen' van dit artikel.

Referenties

Ga naar de volgende Microsoft-websites voor meer informatie over het maken van een XML-Web proxy-service, het hulpprogramma Web Services Description Language (Wsdl.exe) en XML-schema's:

http://msdn2.Microsoft.com/en-us/library/d2s8y7bs (vs.71).aspx

http://msdn2.Microsoft.com/en-us/library/7h3ystb6 (vs.71).aspx



Ga naar de volgende W3C-website voor meer informatie over beschrijving taal WSDL (Web Services) 1.1:

http://www.w3.org/TR/WSDL

Eigenschappen

Artikel ID: 820122 - Laatste beoordeling: dinsdag 3 september 2013 - Wijziging: 3.0
De informatie in dit artikel is van toepassing op:
  • Microsoft Web Services Enhancements for Microsoft .NET 1.1
Trefwoorden: 
kbclient kbproxydev kbmisctools kbcodegen kbxml kbschema kbcommandline kbwebservices kbcompiler kberrmsg kbbug kbmt KB820122 KbMtnl
Automatisch vertaald artikel
BELANGRIJK: Dit artikel is vertaald door middel van automatische vertalingssoftware van Microsoft en is mogelijk nabewerkt door de Microsoft Community via CTF-technologie (Community Translation Framework) of door een menselijke vertaler. Microsoft biedt zowel automatisch vertaalde, door mensen vertaalde en door de community nabewerkte artikelen aan, zodat er in meerdere talen toegang is tot alle artikelen in onze Knowledge Base. Een vertaald of bewerkt artikel kan fouten bevatten in vocabulaire, syntaxis of grammatica.. Microsoft is niet verantwoordelijk voor eventuele onjuistheden, fouten of schade ten gevolge van een foute vertaling van de inhoud van een bericht of het gebruik van deze vertaalde berichten door onze klanten.
De Engelstalige versie van dit artikel is de volgende: 820122
Vrijwaring inhoud KB-artikelen over niet langer ondersteunde producten
Dit artikel heeft betrekking op producten waarvoor Microsoft geen ondersteuning meer biedt. Daarom wordt dit artikel alleen in de huidige vorm aangeboden en wordt het niet meer bijgewerkt.

Geef ons feedback