1

After initially loading a completed project into eclipse for a change I'm getting an error on 3 components within a contained WSDL.

Error

"src-resolve: Cannot resolve the name 'tns:AEExceptionBO' to a(n) 'type >definition' component."


The three elements
*submitCallFault1_submitCallFault
*getOutageStatusFault1_getOutageStatusFault
*getOutageCircuitFault1_getOutageCircuitFault

As far as I can tell the import that currently exists (line 8 of wsdl) should load the xsd file correctly, no other errors exist in the project. Does anyone know why eclipse isn't able to process this wsdl?

WSDL (relevant parts)

<wsdl:definitions name="AEAdmsAecServiceDelegate"
    targetNamespace="http://www.orgname.com/esd/adms/aecall/V1"
    xmlns:tns="http://www.orgname.com/esd/adms/aecall/V1" 
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <wsdl:types>
        <xsd:schema targetNamespace="http://www.orgname.com/esd/adms/aecall/V1">
            <xsd:import namespace="http://www.orgname.com/esd/aeservices/lib/V1"
                schemaLocation="wsdl/AEAdmsAecService/AEExceptionBO.xsd" />
            <xsd:element name="submitCallFault1_submitCallFault"
                nillable="true" type="bons0:AEExceptionBO" />
            <xsd:element name="getOutageStatusFault1_getOutageStatusFault"
                nillable="true" type="bons0:AEExceptionBO" />
            <xsd:element name="getOutageCircuitFault1_getOutageCircuitFault"
                nillable="true" type="bons0:AEExceptionBO" />
         </xsd:schema targetNamespace>

XSD (in a subdirectory, imported by the WSDL)

<xsd:schema targetNamespace="http://www.orgname.com/esd/aeservices/lib/V1"
    xmlns:bons0="http://www.orgname.com/esd/aeservices/lib/V1"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <xsd:include schemaLocation="NameValueBO.xsd" />
    <xsd:complexType name="AEExceptionBO">
        <xsd:sequence>
            <xsd:element minOccurs="1" name="appName" type="xsd:string" />
            <xsd:element minOccurs="0" name="moduleName" type="xsd:string" />
            <xsd:element minOccurs="1" name="errorCode" type="xsd:string">
            </xsd:element>
            <xsd:element minOccurs="1" name="message" type="xsd:string" />
            <xsd:element minOccurs="1" name="exceptionTime" type="xsd:dateTime">
            </xsd:element>
            <xsd:element maxOccurs="unbounded" minOccurs="0" name="nameValues"
                type="bons0:NameValueBO">
            </xsd:element>
        </xsd:sequence>
    </xsd:complexType>
</xsd:schema>

Irrelevant parts of the WSDL and other loaded xsd files have been omitted.

user1854496
  • 622
  • 1
  • 8
  • 22

1 Answers1

1

Typically this can be caused by importing more than one schema into the same namespace. I notice that the WSDL schema is in targetNamespace of http://www.orgname.com/esd/aeservices/lib/V1 but then the first action underneath it is to import this other xsd into the same namespace. I think what's happening here is that eclipse may be taking one or the other, and then failing to find the proper type definition in that namespace.

Consider de-conflicting those two namespaces so you're using one namespace per file. Read this related question -- it might help with understanding here. Import is supposed to be used to pull in another namespace, and include is supposed to be used to make several different files all together collectively define a single namespace.

FrobberOfBits
  • 17,634
  • 4
  • 52
  • 86