BUG: Pesan kesalahan "Tidak dapat impor mengikat dari Namespace" terjadi ketika Anda mencoba untuk membuat Web layanan Proxy File XML dengan menggunakan alat bahasa deskripsi layanan Web

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 820122 - Melihat produk di mana artikel ini berlaku.
Perbesar semua | Perkecil semua

Pada Halaman ini

GEJALA

Anda dapat mencoba menggunakan alat WSDL (Dateipfade) untuk membuat XML Web layanan proxy file untuk layanan Web Deskripsi bahasa (WSDL) dokumen. Namun, jika menggunakan dokumen WSDL skema yang didefinisikan dalam skema XML eksternal (.xsd file) yang menggunakan termasuk elemen (<include>) untuk memperoleh jenis informasi, Anda akan menerima pesan galat berikut:</include>

Kesalahan: Tidak dapat Impor mengikat 'Service1Soap' dari namespace 'http://tempuri.org/'.
- Tidak dapat impor operasi 'HelloWorld'.
-Unsur 'http://tempuri.org/XMLSchema.xsd:element1' hilang.

PENYEBAB

Anda akan menerima galat yang disebutkan di dalam Bagian "Gejala" ketika Dateipfade tidak dapat memperoleh informasi lengkap tentang elemen yang dinyatakan dalam skema XML eksternal. Dateipfade tidak dapat proses meliputi unsur (<include>) kecuali elemen termasuk terkandung dalam elemen skema (<schema>) yang termuat dalam jenis bagian (<types>) dari dokumen WSDL. Oleh karena itu, ketika skema XML yang berisi informasi tentang sebuah elemen yang didefinisikan dalam skema XML eksternal menggunakan elemen termasuk untuk memperoleh informasi tambahan dari skema XML eksternal, masalah terjadi.</types> </schema> </include>

TEKNIK PEMECAHAN MASALAH

Untuk mengatasi masalah ini, Anda harus memodifikasi dokumen WSDL atau skema XML, atau keduanya, sehingga skema XML tidak menggunakan termasuk unsur-unsur. Untuk melakukannya, ikuti langkah-langkah berikut:
  1. Buka Service1.wsdl. Paste kode berikut setelah jenis elemen (<types>):</types>

    Catatan Ini akan memastikan bahwa Anda menggunakan penyertaan unsur dalam Service1.wsdl bukan dalam skema XML.
        <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 sekarang berisi kode berikut:
    <?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. Pindah ke Visual Studio.NET prompt perintah. Ubah untuk jalur direktori dari Service1.wsdl.
  3. Jalankan perintah berikut dari perintah prompt:

    WSDL Service1.wsdl

    Catatan Dalam kasus ini, Anda tidak harus memberikan Dateipfade dengan XMLSchema1.xsd sebagai parameter baris perintah. Anda sudah menggunakan termasuk elemen di Service1.wsdl.

    Anda mungkin menerima pesan yang sama dengan berikut:

    Menulis file '% File Jalan %\Service1.cs'.


    % File Jalan % merupakan tempat bagi lokasi Service1.WSDL.

    Juga, XML Web layanan proxy berkas yang bernama Service1.cs dibuat.
Catatan Langkah-langkah ini didasarkan pada contoh dari bagian "Informasi selengkapnya" dari artikel ini. Oleh karena itu, kode dan nama file dalam langkah berikut mungkin berbeda dari kode Anda dan file Anda nama.

STATUS

Microsoft telah mengkonfirmasi bahwa ini adalah bug dalam produk Microsoft yang terdaftar pada awal artikel ini.

INFORMASI LEBIH LANJUT

Langkah-langkah untuk Mereproduksi Masalah

  1. Jalankan Notepad, dan kemudian paste kode WSDL berikut di Notepad:
    <?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. Simpan dokumen sebagaiService1.WSDL.
  3. Buka Notepad, dan kemudian paste kode berikut di Notepad:
    <?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. Simpan dokumen sebagai XMLSchema1.xsddalam folder yang sama di mana Anda dibuat Service1.wsdl pada langkah 2.
  5. Paste kode berikut di Notepad:
    <?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. Simpan dokumen sebagai XMLSchema2.xsddalam folder yang sama di mana Anda dibuat Service1.wsdl pada langkah 2.
  7. Pindah ke Visual Studio.NET prompt perintah. Ubah untuk jalur direktori dari Service1.wsdl.
  8. Jalankan perintah berikut dari perintah prompt:

    WSDL Service1.wsdl XMLSchema1.xsd

    Anda menerima kesalahan dalam "Gejala" bagian dari artikel ini.

REFERENSI

Untuk informasi lebih lanjut tentang menciptakan layanan XML Web proxy, WSDL alat (Dateipfade), dan skema XML, kunjungi Web site Microsoft berikut:

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

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



Untuk informasi lebih lanjut tentang Web layanan deskripsi bahasa (WSDL) 1.1, kunjungi W3C Website berikut:

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

Properti

ID Artikel: 820122 - Kajian Terakhir: 04 Oktober 2011 - Revisi: 2.0
Berlaku bagi:
  • Microsoft Web Services Enhancements for Microsoft .NET 1.1
Kata kunci: 
kbclient kbproxydev kbmisctools kbcodegen kbxml kbschema kbcommandline kbwebservices kbcompiler kberrmsg kbbug kbmt KB820122 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:820122
Sanggahan Konten KB yang Tidak Lagi Diperbarui
Artikel ini berisi tentang produk yang tidak lagi didukung oleh Microsoft. Oleh karena itu, artikel ini disajikan ?sebagaimana adanya? dan tidak akan diperbarui.

Berikan Masukan

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com