WSDL에서 생성이 실패합니다
-
21-12-2019 - |
문제
WSDL 파일에서 Apex 클래스를 생성하려고하지만 아래의 오류가 발생합니다.
Apex 생성에 실패했습니다 요소에 스키마를 찾을 수 없습니다.{ "Nofollow"> http://www.w3.org/2001/xmlschema } 문자열
이에 대한 도움이 많이 많이 감사합니다. 미리 감사드립니다
아래 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을 수정할 수없는 경우 필요한 SOAP XML 페이로드를 직접 구축하여 HTTPRequest를 사용하여 요청을 직접 사용할 수 있습니다. 나는 이것을 자동화하기위한 도구에서 인턴과 함께 일해 왔습니다. 불행하게도 그것은 아직 단일 표준 유형 요청 / 응답을 직접 지원하지 않습니다. 관심이 있으시면 WSDL 파서 및 Apex 생성기 (Disclaimer :이 도구를 만드는 회사에서 작동합니다. 무료입니다.
참조 : WSDL2Apex Parse 오류 - 요소에 스키마를 찾을 수 없습니다. {http://www.w3.org/2001/xmlschema} string
제휴하지 않습니다 StackOverflow