Вопрос

Я пытаюсь сгенерировать класс Apex из файла WSDL, но я получаю ниже ошибки:

Создание Apex не удалось Невозможно найти схему для элемента;{ http://www.w3.org/2001/xmlschema } string

Любая помощь по этому признателю. Спасибо заранее

См. Ниже файл 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>
.

Это было полезно?

Решение

Тип для getvendorinfo_request . Это имеет:

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

WSDL2APEX не поддерживает прямые запросы или ответы на один стандартный тип. Вместо этого нужно будет вложить в комплексный тип в последовательности. Например.

<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>
.

Если вы не можете изменить WSDL, то вы можете сделать запрос непосредственно с помощью HTTPREQUEST, создавая необходимое SOAP XML полезную нагрузку самостоятельно. Я работаю со стажером на инструменте, чтобы автоматизировать это. К сожалению, он не напрямую поддерживает одно стандартные запросы / ответы / ответы. Если вы заинтересованы, посмотрите Parser WSDL и генератор APEX (Отказ от ответственности: Я работаю для компании, которая создает этот инструмент. Это бесплатно).

Смотрите также: wsdl2apex Ошибка разбора - невозможно найти схему для элемента; {http://www.w3.org/2001/xmlschemaugeString

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top