Domanda

Sto cercando di generare la classe Apex dal file WSDL ma sto ottenendo sotto errore:

Generazione Apex non è riuscita Impossibile trovare schema per elemento;{ http://www.w3.org/2001/xmlschema } String

Qualsiasi aiuto su questo è molto apprezzato. Grazie in anticipo

Vedi sotto il file WSDL:

<?xml version="1.0" encoding="UTF-8"?>
<!--Created by TIBCO WSDL-->
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"    xmlns:tns="http://xmlns.example.com/1393912810519" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:ns0="http://www.tibco.com/schemas/vendorInterface/SharedResource/Schema/Schema.xsd2" xmlns:ns1="http://www.tibco.com/schemas/vendorInterface/SharedResource/Schema/Schema.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" name="Untitled" targetNamespace="http://xmlns.example.com/1393912810519">
    <wsdl:types>
        <xs:schema xmlns="http://www.tibco.com/schemas/vendorInterface/SharedResource/Schema/Schema.xsd" targetNamespace="http://www.tibco.com/schemas/vendorInterface/SharedResource/Schema/Schema.xsd" elementFormDefault="qualified" attributeFormDefault="unqualified">
            <xs:element name="VendorInterface">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="Vendor_main">
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element name="LIFNR" type="xs:string"/>
                                    <xs:element name="NAME1" type="xs:string"/>
                                    <xs:element name="SORTL" type="xs:string"/>
                                    <xs:element name="BUS_TYPE" type="xs:string"/>
                                    <xs:element name="ROUTE_CODE" type="xs:string"/>
                                    <xs:element name="VESTYR" type="xs:string" minOccurs="0"/>
                                    <xs:element name="VESTYB" type="xs:string"/>
                                    <xs:element name="ZTERM" type="xs:string"/>
                                    <xs:element name="ZWELS" type="xs:string"/>
                                    <xs:element name="SPERM" type="xs:string"/>
                                    <xs:element name="REPRF" type="xs:string"/>
                                    <xs:element name="WAERS" type="xs:string"/>
                                    <xs:element name="ZAHLS" type="xs:string"/>
                                    <xs:element name="SPRAS" type="xs:string"/>
                                    <xs:element name="ZZ_ACTION" type="xs:string"/>
                                    <xs:element name="STATUS" type="xs:string"/>
                                  </xs:sequence>
                             </xs:complexType>
                        </xs:element>
                        <xs:element name="Vendor_User">
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element name="LIFNR" type="xs:string"/>
                                    <xs:element name="NAME1" type="xs:string"/>
                                    <xs:element name="NAME2" type="xs:string" minOccurs="0"/>
                                   <xs:element name="ZZ_ACTION" type="xs:string"/>
                                    <xs:element name="STATUS" type="xs:string" minOccurs="0"/>
                                </xs:sequence>
                            </xs:complexType>
                        </xs:element>
                        <xs:element name="Vendor_Tax">
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element name="LIFNR" type="xs:string"/>
                                    <xs:element name="LAND1" type="xs:string"/>
                                    <xs:element name="STCEG" type="xs:string" minOccurs="0"/>
                                    <xs:element name="ITTXAC" type="xs:string"/>
                                    <xs:element name="STENR" type="xs:string"/>
                                    <xs:element name="ITRCVR" type="xs:string"/>
                                    <xs:element name="ZZ_ACTION" type="xs:string"/>
                                    <xs:element name="STATUS" type="xs:string"/>
                                </xs:sequence>
                            </xs:complexType>
                        </xs:element>
                        <xs:element name="Vendor_Address">
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element name="LIFNR" type="xs:string"/>
                                    <xs:element name="VASTYP" type="xs:string"/>
                                    <xs:element name="VABFRT" type="xs:string"/>
                                    <xs:element name="STREET1" type="xs:string"/>
                                    <xs:element name="STREET2" type="xs:string"/>
                                    <xs:element name="STREET3" type="xs:string"/>
                                    <xs:element name="STREET4" type="xs:string"/>
                                    <xs:element name="ORT01" type="xs:string"/>
                                    <xs:element name="LAND1" type="xs:string"/>
                                    <xs:element name="WAERS" type="xs:string"/>
                                    <xs:element name="SPRAS" type="xs:string"/>
                                    <xs:element name="PSTLZ" type="xs:string"/>
                                    <xs:element name="SMTP_ADDR" type="xs:string"/>
                                    <xs:element name="KOINH" type="xs:string"/>
                                    <xs:element name="INTAD" type="xs:string"/>
                                    <xs:element name="ZZ_ACTION" type="xs:string"/>
                                    <xs:element name="STATUS" type="xs:string"/>
                                </xs:sequence>
                            </xs:complexType>
                        </xs:element>
                        <xs:element name="Vendor_Paymen_Methods">
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element name="LIFNR" type="xs:string"/>
                                    <xs:element name="ZWELS" type="xs:string"/>
                                    <xs:element name="KOINH" type="xs:string"/>
                                    <xs:element name="REMARK" type="xs:string"/>
                                    <xs:element name="BANKA" type="xs:string"/>
                                    <xs:element name="ZZ_ACTION" type="xs:string"/>
                                    <xs:element name="STATUS" type="xs:string" minOccurs="0"/>
                                </xs:sequence>
                            </xs:complexType>
                        </xs:element>
                        <xs:element name="Vendor_ContactPerson">
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element name="LIFNR" type="xs:string"/>
                                    <xs:element name="CNTTYP" type="xs:string"/>
                                    <xs:element name="NAMEV" type="xs:string"/>
                                    <xs:element name="NAME1" type="xs:string"/>
                                    <xs:element name="CNSTYP" type="xs:string"/>
                                    <xs:element name="TEL_NUMBER" type="xs:string"/>
                                    <xs:element name="TEL_EXTENS" type="xs:string"/>
                                    <xs:element name="FAX_NUMBER" type="xs:string"/>
                                    <xs:element name="TEL_NUMBER2" type="xs:string"/>
                                    <xs:element name="TEL_EXTENS2" type="xs:string"/>
                                    <xs:element name="FAX_NUMBER2" type="xs:string"/>
                                    <xs:element name="ZZ_ACTION" type="xs:string"/>
                                    <xs:element name="STATUS" type="xs:string" minOccurs="0"/>
                                </xs:sequence>
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:schema>
        <xs:schema xmlns="http://www.tibco.com/schemas/vendorInterface/SharedResource/Schema/Schema.xsd2" targetNamespace="http://www.tibco.com/schemas/vendorInterface/SharedResource/Schema/Schema.xsd2" elementFormDefault="qualified" attributeFormDefault="unqualified">
            <xs:element name="VendorDetails" type="xs:string"/>
        </xs:schema>
    </wsdl:types>
    <wsdl:service name="VendorInterface">
        <wsdl:port name="VendorInfoEndpoint" binding="tns:VendorInfoEndpointBinding">
            <soap:address location="http://localhost:8050/BusinessProcess/InterfaceImplementation/VendorInterface.serviceagent/VendorInfoEndpoint"/>
        </wsdl:port>
    </wsdl:service>
    <wsdl:portType name="PortType">
        <wsdl:operation name="GetVendorInfo">
            <wsdl:input message="tns:GetVendorInfo_Request"/>
            <wsdl:output message="tns:GetVendorInfo_Respone"/>
            <wsdl:fault name="fault1" message="tns:GetVendorInfo_Fault"/>
        </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="VendorInfoEndpointBinding" type="tns:PortType">
        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
        <wsdl:operation name="GetVendorInfo">
            <soap:operation style="document" soapAction="/BusinessProcess/InterfaceImplementation/VendorInterface.serviceagent/VendorInfoEndpoint/GetVendorInfo"/>
            <wsdl:input>
                <soap:body use="literal" parts="Request"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal" parts="Response"/>
            </wsdl:output>
            <wsdl:fault name="fault1">
                <soap:fault use="literal" name="fault1"/>
            </wsdl:fault>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:message name="GetVendorInfo_Request">
       <wsdl:part name="Request" element="ns0:VendorDetails"/>
    </wsdl:message>
   <wsdl:message name="GetVendorInfo_Respone">
        <wsdl:part name="Response" element="ns1:VendorInterface"/>
    </wsdl:message>
    <wsdl:message name="GetVendorInfo_Fault">
        <wsdl:part name="fault" type="xs:string"/>
    </wsdl:message>
</wsdl:definitions>
.

È stato utile?

Soluzione

Il tipo per getvendorinfo_request . Questo ha:

<xs:element name="VendorDetails" type="xs:string"/>
.

WSDL2APEX non supporta richieste o risposte dirette di tipo singolo. Invece avrebbe bisogno di essere annidati in un tipo complesso all'interno di una sequenza. Ad esempio.

<xs:schema xmlns="http://www.tibco.com/schemas/vendorInterface/SharedResource/Schema/Schema.xsd2" targetNamespace="http://www.tibco.com/schemas/vendorInterface/SharedResource/Schema/Schema.xsd2" elementFormDefault="qualified" attributeFormDefault="unqualified">
    <!--
        This isn't supported by wsdl2Apex
        <xs:element name="VendorDetails" type="xs:string"/>
    -->

    <xs:element name="VendorDetails">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="inputParam" type="xs:string"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

</xs:schema>
.

Se non si è in grado di modificare il WSDL, è possibile effettuare la richiesta direttamente utilizzando un httpRequestere costruendo il carico utile del sapone richiesto. Ho lavorato con uno stagista su uno strumento per automatizzare questo. Sfortunatamente non supporta direttamente le singole richieste di tipo standard / risposte ancora. Se sei interessato, vedere wsdl parser e apice generator (Disclaimer: lavoro per la società che crea questo strumento. È gratuito).

Vedi anche: Errore Parse wsdl2apex - Impossibile trovare schema per elemento; {http://www.w3.org/2001/XMLSCHEMALINSSCINGING

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top