2015-04-20 139 views
0

我遇到了一個我導入的WSDL文件的問題。 在這個文件中,地圖類型是從命名空間中使用的:xmlns:apachesoap =「http://xml.apache.org/xml-soap」類型映射apachesoap無法解析

但它沒有解決......當我嘗試去這個URL,我得到一個「404錯誤未找到」

任何想法?

預先感謝您。

+0

'namespace'值不一定文檔。帶有命名空間元素的文檔可以在導入/包含過程中或者使用屬性'schemaLocation'參數給出。 http://www.w3.org/TR/REC-xml-names/#sec-namespaces – csauvanet

+0

我同意你的意見,但我不知道你爲什麼這麼說:/? – Ranpie49

+0

此WSDL文件必須自己導入其他文件,其中一個文件定義了「http:// xml.apache.org/xml-soap」命名空間。你能找到這個文件嗎?在其模式標籤中定義'targetnamespace =「http://xml.apache.org/xml-soap」「的文件 – csauvanet

回答

0

在我已經導入了WSDL,我們可以讀到:

<schema targetNamespace="http://xml.apache.org/xml-soap" xmlns="http://www.w3.org/2001/XMLSchema"> 
    <import namespace="http://exception.metier.framework.civitas.fr" /> 
    <import namespace="Boite_A_Tache" /> 
    <import namespace="http://srvcegid01:8080/gfprod/services/Boite_A_Tache" /> 
    <import namespace="http://schemas.xmlsoap.org/soap/encoding/" /> 
    <complexType name="mapItem"> 
     <sequence> 
      <element name="key" nillable="true" type="xsd:anyType" /> 
      <element name="value" nillable="true" type="xsd:anyType" /> 
     </sequence> 
    </complexType> 
    <complexType name="Map"> 
     <sequence> 
      <element maxOccurs="unbounded" minOccurs="0" name="item" type="apachesoap:mapItem" /> 
     </sequence> 
    </complexType> 
</schema> 

類型「地圖」中明確界定。不過,我正在使用的軟件(Websphere Message Broker d'IBM)對WSDL文件進行了一些轉換。

你可以看到「修改」的WSDL的一小部分:

<wsdl:documentation> 
    <wsdl:appinfo source="WMQI_APPINFO"> 
     <MRWSDLAppInfo imported="true"> 
      <generatedXSD location="blablabla_1_InlineSchema1.xsd"/> 
      <generatedXSD location="blablabla_1_InlineSchema2.xsd"/> 
      <generatedXSD location="blablabla_1_InlineSchema3.xsd"/> 
      <generatedXSD location="blablabla_1_InlineSchema4.xsd"/> 
      <binding hasEncoding="true" imported="true" name="BlablaSoapBinding" originalBindingStyle="rpc"/> 
      <generatedXSD location="blablabla_1.wsdl"/> 
     </MRWSDLAppInfo> 
    </wsdl:appinfo> 
</wsdl:documentation> 

<wsdl:types> 
    <schema targetNamespace="http://xml.apache.org/xml-soap" xmlns="http://www.w3.org/2001/XMLSchema"> 
     <import namespace="http://bla.bla.bla.fr"/> 
     <import namespace="blabla"/> 
     <import namespace="http://blabla:8080/blabla/blabla/blabla"/> 
     <xsd:include schemaLocation="blabla1_InlineSchema1.xsd"/> 
    </schema> 
    .... 
    (autres schemas) 
<wsdl:types>