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

问题描述

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

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

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

错误如下:

在这一行找到多个注释:

  • src-resolve:无法将名称“xs:AvailablePackagesList”解析为 (n)“类型定义”组件。
  • src-resolve.4.2:解析组件“xs:AvailablePackagesList”时出错。检测到
    “xs:AvailablePackagesList”在命名空间中 'http://www.w3.org/2001/XMLSchema',但是来自这里的组件
    命名空间不可从架构文档中引用...

这是我的 .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 命名空间中。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...