元素“xs:schema”的前缀“xs”未绑定

Posted

技术标签:

【中文标题】元素“xs:schema”的前缀“xs”未绑定【英文标题】:The prefix "xs" for element "xs:schema" is not bound 【发布时间】:2013-01-14 14:54:20 【问题描述】:

以下是我在为 SOAP 服务生成客户端时尝试使用的 xsd,Eclipse 抛出错误:。

<xs:schema version="1.0" 
           targetNamespace="bdo.com.ph/RemitAPI">
  <xs:element name="CheckServiceResponse" 
              nillable="true" type="xs:string"/>
  <xs:element name="apiRequest" nillable="true" type="tns:APIRequest"/>
  .............................
      <xs:element name="referenceNo" type="xs:string" form="qualified"/>
    </xs:sequence>
  </xs:complexType>
</xs:schema> 

我从网络服务获得了这个 xsd

【问题讨论】:

您是否刚刚从 WSDL 中提取了 Schema 部分?可能 xs 名称空间是在 WSDL 的信封中定义的。尝试在架构元素中添加 xmlns:xs="w3.org/2001/XMLSchema" 作为属性:w3.org/2001/XMLSchema"> 行之有效:)。是的,我从 WSDL 中提取了模式。感谢您的即时帮助。但是现在我在这里面临下一个问题:尝试从肥皂网络服务生成客户端时 java.io.IOException: Element bdo.com.ph/RemitAPIapiStatusRequest is referenced but not defined。 请在问题中添加代码,而不是 cmets。 Kimi .. 搞定了,一开始我不知道怎么加代码。 【参考方案1】:
 xmlns:xs="http://www.w3.org/2001/XMLSchema"  

未在架构 XSD 中添加。 添加它让我继续下一步。

xmlns:tns="http://www.bdo.com.ph/RemitAPI  

在 XSD 中不存在,尽管它存在于封闭的 WSDL 中。

当从 WSDL 中提取 XSD 到本地机器时,XSD 中的命名空间引用不会从 WSDL 中获取,它们需要在 XSD 中声明。

【讨论】:

【参考方案2】:

这主要是因为缺少命名空间声明。

   "<elem "namespace" ..xsi:nil=true.>"

会起作用。基本上,XML 验证器需要一个命名空间来验证。

【讨论】:

以上是关于元素“xs:schema”的前缀“xs”未绑定的主要内容,如果未能解决你的问题,请参考以下文章

在xml中xsd:schema和xs:schema是一个意思吗

xml 架构验证错误“未绑定前缀”

Spring“元素“tx:annotation-driven”的前缀“tx”未绑定。”

元素 "context:component-scan" 的前缀 "context" 未绑定。

空?:未绑定的标识符

XSD 包含导入的 xsd 时的 Delphi XE2 XML 数据绑定向导错误