src-resolve.4.2:解析组件 'xs:name' 时出错。检测到 'xs:name' 在命名空间 'http://www.w3.org/2001/XMLSchema' 中

src-resolve.4.2: Error resolving component 'xs:name'. It was detected that 'xs:name' is in namespace 'http://www.w3.org/2001/XMLSchema'

我正在创建一个基于 Spring 的 SOAP Web 服务,我正在尝试 return 一个名为 AVAILABLE_PACKAGES 的自定义列表,其中包含多个 PACKAGE_ITEM 元素。这些 PACKAGE_ITEM 元素中的每一个都由两个字符串构成,PACKAGE_NAME 和 PACKAGE_PRICE.

我尝试了多种配置,但我一直收到在线错误

<xs:element name="availablePackagesList" type="xs:AvailablePackagesList" />

错误如下:

Multiple annotations found at this line:

  • src-resolve: Cannot resolve the name 'xs:AvailablePackagesList' to a(n) 'type definition' component.
  • src-resolve.4.2: Error resolving component 'xs:AvailablePackagesList'. It was detected that
    'xs:AvailablePackagesList' is in namespace 'http://www.w3.org/2001/XMLSchema', but components from this
    namespace are not referenceable from schema document...

这是我的 .xsd 文件中的代码片段

<?xml version="1.0" encoding="UTF-8"?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http:/hello.com/queries"
    xmlns:tns="http:/hello.com/queries"
    elementFormDefault="qualified">

<!--GetSubscriberAvailablePackages -->

<xs:element
    name="MobileGetSubscriberAvailablePackagesRequest">
    <xs:complexType>
        <xs:sequence>
            <xs:element name="network" type="xs:string" />
            <xs:element name="username" type="xs:string" />
            <xs:element name="password" type="xs:string" />
            <xs:element name="subscriberData" type="xs:string" />
            <xs:element name="subscriberDataType" type="xs:string" />
        </xs:sequence>
    </xs:complexType>
</xs:element>

<xs:element
    name="MobileGetSubscriberAvailablePackagesResponse">
    <xs:complexType>
        <xs:sequence>
            <xs:element name="network" type="xs:string" />
            <xs:element name="subscriberData" type="xs:string" />
            <xs:element name="subscriberDataType" type="xs:string" />
            <xs:element name="response" type="xs:string" />
            <xs:element name="responseDetails" type="xs:string" />
            <xs:element name="availablePackagesList"
                type="xs:AvailablePackagesList" />
        </xs:sequence>
    </xs:complexType>
</xs:element>


<xs:complexType name="AvailablePackagesList">
    <xs:sequence>
        <xs:element name="AvaillablePackage"
            type="xs:AvaillablePackageItem" maxOccurs="unbounded" />
    </xs:sequence>
</xs:complexType>


<xs:complexType name="AvaillablePackageItem">
    <xs:attribute name="packageName" type="xs:integer"
        use="required" />
    <xs:attribute name="packagePrice" type="xs:integer"
        use="required" />
</xs:complexType>

为了消除您的直接错误和一个后续错误,

  1. type="xs:AvailablePackagesList"更改为type="tns:AvailablePackagesList",并且

  2. type="xs:AvaillablePackageItem"更改为type="tns:AvaillablePackageItem"

因为两者都在 http:/yobitelecom.com/queries 命名空间中,而不是 http://www.w3.org/2001/XMLSchema 命名空间中。