【发布时间】:2022-01-07 16:01:14
【问题描述】:
我参考了该指南,基于现有的 wsdl 文件重新创建了一个 SOAP 网络服务: https://www.baeldung.com/spring-boot-soap-web-service。 原始 wsdl 驻留在 .NET 环境中,而我需要使用 spring-boot web-service 从 Java 环境中重现相同的响应。
对于返回简单数据类型(例如 int)的简单响应,我没有任何问题。但是对于返回 DataSet(来自 .NET)的复杂响应,我无法重新创建正确的类。它可能与eclipse工作区中遇到的以下错误有关:
在这一行找到多个注释: - src-resolve:无法将名称“xs:schema”解析为(n)“元素声明”组件。 - src-resolve.4.2:解析组件“xs:schema”时出错。检测到“xs:schema”在命名空间“http://www.w3.org/2001/XMLSchema”中,但其中的组件 命名空间不可从模式文档“file:///C:/03_PROJECTS/ws/src/main/resources/schema/abc.xsd”中引用。如果这是不正确的 命名空间,可能需要更改“xs:schema”的前缀。如果这是正确的命名空间,则应将适当的“import”标签添加到“file:///C:/03_PROJECTS/ws/src/main/resources/schema/abc.xsd”。
以下是 xsd 文件的架构详细信息:
<xs:schema elementFormDefault="qualified" targetNamespace="http://www.example.net/abc/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
下面是出现错误的示例截图元素:
<xs:element name="GetProdItemDescriptionsResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1"
name="GetProdItemDescriptionsResult">
<xs:complexType>
<xs:sequence>
<xs:element ref="xs:schema"/>
<xs:any />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
请告知为什么引用另一个架构会引发错误。我相信对此的响应应该是之前提到的 DataSet。只是想知道 xsd 文件是否存在问题,或者这在 Java 中是否可行,或者是否有可能的解决方法。
【问题讨论】:
标签: java spring-boot soap xsd