function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
cchangcchang 

Hoovers WSDLtoApex error:Unable to find schema for element;

Has anyone been able to parse the hoovers WSDL to the apex? Below is the shortened WSDL file. It is getting the error "

Apex Generation Failed  Unable to find schema for element; {http://www.w3.org/2001/XMLSchema}string"

  

If it is too much work to modify the below WSDL, what is the alternative way to integrate to force.com. Sample code is appreciated.

 

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:sch="http://applications.dnb.com/webservice/schema/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://applications.dnb.com/webservice/schema/" targetNamespace="http://applications.dnb.com/webservice/schema/">
<wsdl:types>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ns10="http://applications.dnb.com/webservice/schema/" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://applications.dnb.com/webservice/schema/">
<xs:element name="API-KEY" nillable="true" type="xs:string"/>
<xs:element name="companyId" nillable="true" type="xs:long"/>
<xs:element name="duns" nillable="true" type="xs:string"/>
<xs:element name="parentDuns" nillable="true" type="xs:string"/>
<xs:element name="ultimateParentDuns" nillable="true" type="xs:string"/>
<xs:element name="uniqueId" type="xs:long"/>
<xs:element name="coOfficialId" nillable="true" type="xs:long"/>
<xs:element default="0" name="hitOffset">
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:minInclusive value="0"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:complexType name="BaseSearchRequest">
<xs:sequence>
<xs:element minOccurs="0" ref="ns10:maxRecords"/>
<xs:element minOccurs="0" ref="ns10:hitOffset"/>
<xs:element default="Ascending" minOccurs="0" name="sortDirection" type="ns10:SortDirectionTypes"/>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="SortDirectionTypes">
<xs:restriction base="xs:string">
<xs:enumeration value="Ascending"/>
<xs:enumeration value="Descending"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="BaseOrderByTypes">
<xs:restriction base="xs:string">
<xs:enumeration value="CompanyName"/>
<xs:enumeration value="CompanyType"/>
<xs:enumeration value="CountryName"/>
<xs:enumeration value="CityName"/>
<xs:enumeration value="StateName"/>
<xs:enumeration value="PhoneNumber"/>
<xs:enumeration value="FaxNumber"/>
<xs:enumeration value="SalesGrowth12Mon"/>
<xs:enumeration value="TotalAssets"/>
<xs:enumeration value="SalesUS"/>
<xs:enumeration value="EmployeesTotal"/>
<xs:enumeration value="EmployeesHere"/>
<xs:enumeration value="FiscalYearEndMonth"/>
<xs:enumeration value="MarketCap"/>
<xs:enumeration value="NetIncomeGrowth12Mon"/>
<xs:enumeration value="EmployeeGrowth12Mon"/>
<xs:enumeration value="ROE"/>
<xs:enumeration value="ROA"/>
<xs:enumeration value="EarningsComparison"/>
<xs:enumeration value="BookValueComparison"/>
<xs:enumeration value="NetIncome"/>
<xs:enumeration value="PersonFirstName"/>
<xs:enumeration value="PersonLastName"/>
<xs:enumeration value="PersonTitle"/>
</xs:restriction>
</xs:simpleType>

<xs:complexType name="Dbas">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="dba" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="CompanySearchResult">
<xs:sequence>
<xs:element minOccurs="0" name="resultSet" nillable="true" type="ns10:CompanySearchResultSet"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="NonMarketableReasons">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="reason">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Invalid address"/>
<xs:enumeration value="Out of business"/>
<xs:enumeration value="Key data missing/needing revision"/>
<xs:enumeration value="Requested no marketing contact"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:element default="20" name="maxRecords">
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:minInclusive value="1"/>
<xs:maxInclusive value="200"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:complexType name="SearchNavigation">
<xs:sequence>
<xs:element minOccurs="0" name="employeeSearchNavigation" nillable="true" type="ns10:EmployeeSearchNavigation"/>
<xs:element minOccurs="0" name="ownershipTypeSearchNavigation" nillable="true" type="ns10:OwnershipTypeSearchNavigation"/>
<xs:element minOccurs="0" name="locationTypeSearchNavigation" nillable="true" type="ns10:LocationTypeSearchNavigation"/>
<xs:element minOccurs="0" name="salesSearchNavigation" nillable="true" type="ns10:SalesSearchNavigation"/>
<xs:element minOccurs="0" name="locationSearchNavigation" nillable="true" type="ns10:LocationSearchNavigation"/>
<xs:element minOccurs="0" name="industrySearchNavigation" nillable="true" type="ns10:IndustrySearchNavigation"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="SalesSearchNavigation">
<xs:sequence>
<xs:element maxOccurs="unbounded" name="salesSearchNavigationValue" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="EmployeeSearchNavigation">
<xs:sequence>
<xs:element maxOccurs="unbounded" name="employeeSearchNavigationValue" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="OwnershipTypeSearchNavigation">
<xs:sequence>
<xs:element maxOccurs="unbounded" name="ownershipTypeSearchNavigationValue" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="LocationTypeSearchNavigation">
<xs:sequence>
<xs:element maxOccurs="unbounded" name="locationTypeSearchNavigationValue" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="LocationNavigators">
<xs:sequence>
<xs:element minOccurs="0" name="countryNavigators" nillable="true" type="ns10:CountryNavigators"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="CountryNavigators">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="countryNavigator" nillable="true" type="ns10:CountryNavigator"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="CountryNavigator">
<xs:sequence>
<xs:element name="countryNavigatorValue" nillable="true" type="xs:string"/>
<xs:element name="countryNavigatorDescription" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="stateProvinceNavigators" nillable="true" type="ns10:StateProvinceNavigators"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="StateProvinceNavigators">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="stateProvinceNavigator" nillable="true" type="ns10:StateProvinceNavigator"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="StateProvinceNavigator">
<xs:sequence>
<xs:element name="stateProvinceNavigatorValue" nillable="true" type="xs:string"/>
<xs:element name="stateProvinceNavigatorDescription" nillable="true" type="xs:string"/>
<xs:element minOccurs="0" name="cityNavigators" nillable="true" type="ns10:CityNavigators"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="CityNavigators">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="cityNavigator" nillable="true" type="ns10:CityNavigator"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="CityNavigator">
<xs:sequence>
<xs:element name="cityNavigatorValue" nillable="true" type="xs:string"/>
<xs:element name="cityNavigatorDescription" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="CompanyNavigators">
<xs:sequence>
<xs:element minOccurs="0" name="employeeNavigators" nillable="true" type="ns10:EmployeeNavigators"/>
<xs:element minOccurs="0" name="locationTypeNavigators" nillable="true" type="ns10:LocationTypeNavigators"/>
<xs:element minOccurs="0" name="ownershipTypeNavigators" nillable="true" type="ns10:OwnershipTypeNavigators"/>
<xs:element minOccurs="0" name="salesNavigators" nillable="true" type="ns10:SalesNavigators"/>
<xs:element minOccurs="0" name="locationNavigators" nillable="true" type="ns10:LocationNavigators"/>
<xs:element minOccurs="0" name="industryNavigators" nillable="true" type="ns10:IndustryNavigators"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="EmployeeNavigators">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="employeeNavigator" nillable="true" type="ns10:EmployeeNavigator"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="EmployeeNavigator">
<xs:sequence>
<xs:element name="employeeNavigatorValue" nillable="true" type="xs:string"/>
<xs:element name="employeeNavigatorDescription" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="OwnershipTypeNavigators">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="ownershipTypeNavigator" nillable="true" type="ns10:OwnershipTypeNavigator"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="OwnershipTypeNavigator">
<xs:sequence>
<xs:element name="ownershipTypeNavigatorValue" nillable="true" type="xs:string"/>
<xs:element name="ownershipTypeNavigatorDescription" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="SalesNavigators">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="salesNavigator" nillable="true" type="ns10:SalesNavigator"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="SalesNavigator">
<xs:sequence>
<xs:element name="salesNavigatorValue" nillable="true" type="xs:string"/>
<xs:element name="salesNavigatorDescription" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="LocationTypeNavigators">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="locationTypeNavigator" nillable="true" type="ns10:LocationTypeNavigator"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="LocationTypeNavigator">
<xs:sequence>
<xs:element name="locationTypeNavigatorValue" nillable="true" type="xs:string"/>
<xs:element name="locationTypeNavigatorDescription" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="LocationSearchNavigation">
<xs:choice>
<xs:element maxOccurs="unbounded" name="countryNavigation" type="ns10:CountryNavigation"/>
</xs:choice>
</xs:complexType>
<xs:complexType name="CountryNavigation">
<xs:sequence>
<xs:element name="countryNavigationValue" type="xs:string"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="stateNavigation" nillable="true" type="ns10:StateNavigation"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="StateNavigation">
<xs:sequence>
<xs:element name="stateNavigationValue" type="xs:string"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="cityNavigation" type="ns10:CityNavigation"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="CityNavigation">
<xs:sequence>
<xs:element name="cityNavigationValue" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="IndustryNavigators">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="industryNavigator" nillable="true" type="ns10:IndustryNavigator"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="ussicNavigator" nillable="true" type="ns10:UsSicNavigator"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="naicsNavigator" nillable="true" type="ns10:NaicsNavigator"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="IndustryNavigator">
<xs:sequence>
<xs:element name="industryNavigatorValue" nillable="true" type="xs:string"/>
<xs:element name="industryNavigatorDescription" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="UsSicNavigator">
<xs:sequence>
<xs:element name="ussicNavigatorValue" nillable="true" type="xs:string"/>
<xs:element name="ussicNavigatorDescription" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="NaicsNavigator">
<xs:sequence>
<xs:element name="naicsNavigatorValue" nillable="true" type="xs:string"/>
<xs:element name="naicsNavigatorDescription" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="IndustrySearchNavigation">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="industrySearchNavigationValue" type="xs:string"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="ussicSearchNavigationValue" type="xs:string"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="naicsSearchNavigationValue" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
</wsdl:types>
<wsdl:message name="FindCompanyByKeywordResponse">
<wsdl:part name="FindCompanyByKeywordResponse" element="tns:FindCompanyByKeywordResponse"/>
</wsdl:message>
<wsdl:message name="ApiKeyHeader">
<wsdl:part name="parameters" element="tns:API-KEY"/>
</wsdl:message>
<wsdl:message name="FindCompanyByKeywordRequest">
<wsdl:part name="FindCompanyByKeywordRequest" element="tns:FindCompanyByKeywordRequest"/>
</wsdl:message>
<wsdl:portType name="HooversAPI-40">
<wsdl:operation name="FindCompanyByKeyword">
<wsdl:input name="FindCompanyByKeywordRequest" message="sch:FindCompanyByKeywordRequest"/>
<wsdl:output name="FindCompanyByKeywordResponse" message="sch:FindCompanyByKeywordResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="HooversAPI-40Soap11" type="tns:HooversAPI-40">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="FindCompanyByKeyword">
<soap:operation soapAction=""/>
<wsdl:input name="FindCompanyByKeywordRequest">
<soap:body use="literal"/>
<soap:header message="tns:ApiKeyHeader" part="parameters" use="literal" wsdl:required="true"/>
</wsdl:input>
<wsdl:output name="FindCompanyByKeywordResponse">
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="HooversAPI-40">
<wsdl:port name="HooversAPI-40Soap11" binding="tns:HooversAPI-40Soap11">
<soap:address location="http://hapi.hoovers.com/HooversAPI-40"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>

cchangcchang

Thanks for the old posts. I passed the raw soap message as the http request. Then response has status 200.

The rest of the issue is to parse the returned XML. Any sample apex code to process the soap XML message? Thanks a lot.

UVUV

Use XML DOM Parser to parse the response.

May be this toolkit can give you idea of how to parse the soap response.

http://techsahre.blogspot.com/2011/07/apex-toolkit-for-salesforce.html

JitendraJitendra

Hi cchang,

So finaly what you come up with ? How you solved the WSDL to Apex problem?

 

Please suggest the workaround if any.

 

Thanks in advance.

cchangcchang

I finally did it by raw SOAP request and response.

There is no support to WSDLToApex from Hoovers.