作爲導入Web服務以與其系統進行互操作的一部分,我從客戶端收到了一個WSDL。他們發送了兩個文件:一個WSDL和一個模式。當我運行WSDL導入程序時,得到的輸出如下所示:如何導入此WSDL?
type
// ************************************************************************ //
// The following types, referred to in the WSDL document are not being represented
// in this file. They are either aliases[@] of other types represented or were referred
// to but never[!] declared in the document. The types from the latter category
// typically map to predefined/known XML or Embarcadero types; however, they could also
// indicate incorrect WSDL documents that failed to declare or import a schema type.
// ************************************************************************ //
// !:LoadData - "http://client.com/"[Lit][]
// !:LoadDataResponse - "http://client.com/"[Lit][]
// ************************************************************************ //
// Namespace : http://client.com/
// transport : http://schemas.xmlsoap.org/soap/http
// style : document
// binding : ClientPortBinding
// service : ClientService
// port : ClientPort
// URL : http://localhost:8080/ClientService
// ************************************************************************ //
IClientLoad = interface(IInvokable)
['{8DC02C6F-78D3-E09A-FE43-EE5211DB188D}']
// Cannot unwrap:
// - Input part does not refer to an element
// - Output part does not refer to an element
function LoadDataBatch(const parameters: LoadData): LoadDataResponse; stdcall;
end;
缺少的類型在它們發送的模式文件中定義。我試圖改變WSDL的進口線看起來是這樣,但它並沒有改變什麼:
<xsd:import namespace="http://client.com/" schemaLocation="file://C:/Users/mwheeler/Documents/WSDL/ClientLoadData Schema.xml"></xsd:import>
如何設置這種不當使德爾福的WSDL導入嚮導會檢查我的本地系統上的模式文件並從中讀取類型定義?
我還沒有嘗試過,但在WSDL導入程序中有一個選項。 '包含進程和導入模式'。聽起來像你需要的東西。默認打開,所以你可能已經有了。 – 2011-03-14 18:48:37
在使用我們自己的服務和客戶時,我們在工作中遇到了這樣的麻煩。這與D2010導入拒絕非標準類型的元素有關,即使它們在名稱空間中被明確定義。我認爲他們通過在soap界面中使用標準數據類型來解決這個問題。如果您明天早上(UTC + 1)還沒有找到答案,我會與同事覈對。 – 2011-03-14 18:49:56
@duffymo:請仔細閱讀問題。我沒有在問題中包含WSDL,只是(輸出的匿名版本)。這特別是一個Delphi WSDL Importer問題;不是WSDL/XML問題。 – 2011-03-14 18:52:18