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

Posted

技术标签:

【中文标题】xml 架构验证错误“未绑定前缀”【英文标题】:xml schema validation error "prefix is not bound" 【发布时间】:2012-03-17 10:04:06 【问题描述】:

我对 XML Schema 完全陌生,并且正在努力学习基础知识。这是我的 xml 架构代码(文件名:example1.xsd):

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:sample="http://www.example" 
targetNamespace="http://www.example.com" 
elementFormDefault="qualified">

<xs:element name="school">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="element1" type="xs:string"/>
      <xs:element name="element2" type="xs:string"/>
      <xs:element name="element3" type="xs:string"/>
      <xs:element name="element4" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

</xs:schema> 

这是 XML 文档。

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

<sample:school xmlns="http://www.example.com"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="./example1.xsd">

      <element1>hello</element1>
      <element2>hello</element2>
      <element3>hello</element3>
      <element4>hello</element4>

</sample:school>

在尝试验证 xml 文件时,我从 netbeans 收到一条错误消息: 元素“sample:school”的前缀“sample”未绑定。 [9]

【问题讨论】:

【参考方案1】:

在您的 XML 中,您需要:

一个。从sample:school 中删除sample: 前缀

B。将xmlns="http://www.example.com" 更改为xmlns:sample="http://www.example.com" 并将sample: 前缀添加到其余元素(&lt;sample:element1&gt;&lt;sample:element2&gt; 等)

【讨论】:

【参考方案2】:

当你遇到这样的错误时,最简单的方法是添加前缀声明;在您的情况下,根据架构,只需将以下属性添加到您的根元素:

xmlns:sample="http://www.example.com"

另外,这与XML namespaces 相当相关。

【讨论】:

【参考方案3】:

这不是您问题的直接答案,但我在尝试解决自己的问题时偶然发现了这里,所以也许它也会对某人有所帮助。

从 Weblogic 10.3.6 升级到 12.2.1.2 后出现我自己的错误“未绑定前缀 ns2”。

在更高版本中,默认 JAXB 实现是 Moxy,所以我不得不将 javax.xml.bind.JAXBContext 更改为 com.sun.xml.bind.v2.ContextFactory。

How to specify JAXBContext implementation in weblogic 12.1.3

【讨论】:

以上是关于xml 架构验证错误“未绑定前缀”的主要内容,如果未能解决你的问题,请参考以下文章

在 xml 文件中得到“错误:解析 XML 时出错:未绑定前缀”

xml文件中的错误(android编程):未绑定前缀[重复]

如何修复解析 XML:android 中的未绑定前缀

com.admob.android.ads.AdView未绑定前缀?

当我尝试通过架构使用 DocumentBuilderFactory 验证 xml 文件时,我收到错误“找不到元素的声明”

如何使用 Visual Studio 2005 根据架构验证 XML 文件