LỖI: "Không thể chuyển nhập ràng buộc không gian tên" thông báo lỗi xảy ra khi bạn cố gắng tạo một tệp XML Web dịch vụ Proxy bằng cách sử dụng công cụ ngôn ngữ mô tả dịch vụ Web

QUAN TRỌNG: Bài viết này được dịch bằng phần mềm dịch máy của Microsoft chứ không phải do con người dịch. Microsoft cung cấp các bài viết do con người dịch và cả các bài viết do máy dịch để bạn có thể truy cập vào tất cả các bài viết trong Cơ sở Kiến thức của chúng tôi bằng ngôn ngữ của bạn. Tuy nhiên, bài viết do máy dịch không phải lúc nào cũng hoàn hảo. Loại bài viết này có thể chứa các sai sót về từ vựng, cú pháp hoặc ngữ pháp, giống như một người nước ngoài có thể mắc sai sót khi nói ngôn ngữ của bạn. Microsoft không chịu trách nhiệm về bất kỳ sự thiếu chính xác, sai sót hoặc thiệt hại nào do việc dịch sai nội dung hoặc do hoạt động sử dụng của khách hàng gây ra. Microsoft cũng thường xuyên cập nhật phần mềm dịch máy này.

Nhấp chuột vào đây để xem bản tiếng Anh của bài viết này:820122
Bài viết này đã được lưu trữ. Bài viết được cung cấp "nguyên trạng" và sẽ không còn được cập nhật nữa.
TRIỆU CHỨNG
Bạn có thể thử sử dụng công cụ ngôn ngữ mô tả dịch vụ Web (Wsdl.exe) để tạo một tệp XML Web dịch vụ ủy quyền cho một dịch vụ Web Mô tả tài liệu ngôn ngữ (WSDL). Tuy nhiên, nếu tài liệu WSDL sử dụng một giản đồ được xác định trong một ngoài XML Schema (.xsd tập tin) mà sử dụng một bao gồm các yếu tố (<include>) để có được loại thông tin, bạn có thể nhận thông báo lỗi sau:</include>

Lỗi: Không thể chuyển nhập tính ràng buộc 'Service1Soap' không gian tên 'http://tempuri.org/'.
- Không thể chuyển nhập hoạt động 'HelloWorld'.
-Nguyên tố 'http://tempuri.org/XMLSchema.xsd:element1' là mất tích.
NGUYÊN NHÂN
Bạn có thể nhận được lỗi được đề cập trong các "Triệu chứng" phần khi Wsdl.exe không thể có được thông tin đầy đủ về một phần tử được khai báo trong một lược đồ XML bên ngoài. WSDL.exe không thể xử lý bao gồm các yếu tố (<include>), trừ khi các yếu tố bao gồm chứa trong một yếu tố giản đồ (<schema>) được chứa trong các loại phần (<types>) của một tài liệu WSDL. Vì vậy, khi giản đồ XML chứa thông tin về một phần tử được định nghĩa trong một lược đồ XML bên ngoài sử dụng một phần tử bao gồm để có được thông tin bổ sung từ lược đồ XML bên ngoài, vấn đề occurs.</types> </schema> </include>
CÁCH GIẢI QUYẾT KHÁC
Để làm việc xung quanh vấn đề này, bạn phải sửa đổi tài liệu WSDL hoặc các lược đồ XML, hoặc cả hai, do đó các lược đồ XML không sử dụng bao gồm các yếu tố. Để thực hiện việc này, hãy làm theo những bước sau:
  1. Mở Service1.wsdl. Dán mã sau đây sau khi các các loại nguyên tố (<types>):</types>

    Chú ý Điều này làm cho chắc chắn rằng bạn sử dụng bao gồm yếu tố trong Service1.wsdl thay vì trong một lược đồ 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 bây giờ chứa mã sau đây:
    <?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. Di chuyển đến phòng thu trực quan.NET dấu nhắc lệnh. Thay đổi để các đường dẫn thư mục của Service1.wsdl.
  3. Chạy lệnh sau từ lệnh dấu nhắc:

    WSDL Service1.wsdl

    Chú ý Trong trường hợp này, bạn không phải cung cấp Wsdl.exe với XMLSchema1.xsd như một tham số dòng lệnh. Bạn đã sử dụng các bao gồm các phần tử trong Service1.wsdl.

    Bạn có thể nhận được một tin nhắn tương tự như các sau:

    Tập tin văn bản 'Tập tin % Đường dẫn %\Service1.CS'.


    Tập tin % Đường dẫn % là một giữ chỗ cho vị trí của Service1.WSDL.

    Ngoài ra, một XML Web dịch vụ tệp ủy quyền được đặt tên Service1.CS được tạo ra.
Chú ý Những bước này được dựa trên các mẫu từ phần "Thông tin thêm" bài viết này. Vì vậy, các mã và các tên tập tin trong những bước này có thể khác với mã của bạn và tập tin của bạn tên.
TÌNH TRẠNG
Microsoft đã xác nhận rằng đây là một lỗi trong các sản phẩm Microsoft có liệt kê ở đầu bài viết này.
THÔNG TIN THÊM

Các bước để tạo lại vấn đề

  1. Bắt đầu Notepad, và sau đó dán mã WSDL sau đây trong 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. Lưu tài liệu nhưService1.WSDL.
  3. Mở Notepad và sau đó dán mã sau đây trong 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. Lưu tài liệu như XMLSchema1.xsdtrong cùng một thư mục mà bạn tạo ra Service1.wsdl trong bước 2.
  5. Dán mã sau đây trong 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. Lưu tài liệu như XMLSchema2.xsdtrong cùng một thư mục mà bạn tạo ra Service1.wsdl trong bước 2.
  7. Di chuyển đến phòng thu trực quan.NET dấu nhắc lệnh. Thay đổi để các đường dẫn thư mục của Service1.wsdl.
  8. Chạy lệnh sau từ lệnh dấu nhắc:

    WSDL Service1.wsdl XMLSchema1.xsd

    Bạn nhận được báo lỗi "Triệu chứng" phần của bài viết này.
THAM KHẢO
Để biết thêm về việc tạo ra một dịch vụ XML Web ủy quyền, công cụ ngôn ngữ mô tả dịch vụ Web (Wsdl.exe) và lược đồ XML, truy cập vào trang Web Microsoft sau đây:

http://msdn2.Microsoft.com/en-US/Library/d2s8y7bs (vs.71) .aspx

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



Cho biết thêm thông tin về Web dịch vụ mô tả ngôn ngữ (WSDL) 1.1, truy cập vào các W3C Web site sau:

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

Cảnh báo: Bài viết này được dịch tự động

Thuộc tính

ID Bài viết: 820122 - Xem lại Lần cuối: 12/08/2015 02:40:43 - Bản sửa đổi: 2.0

Microsoft Web Services Enhancements for Microsoft .NET 1.1

  • kbnosurvey kbarchive kbclient kbproxydev kbmisctools kbcodegen kbxml kbschema kbcommandline kbwebservices kbcompiler kberrmsg kbbug kbmt KB820122 KbMtvi
Phản hồi