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

时间:2012-02-27 22:29:07

标签: xml xsd xsd-validation

我是XML Schema的新手,我正在尝试降低基础知识。这是我的xml架构代码(filename: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]

3 个答案:

答案 0 :(得分:17)

在您的XML中,您需要:

<强> A 即可。从sample:

中删除sample:school前缀

<强>乙即可。将xmlns="http://www.example.com"更改为xmlns:sample="http://www.example.com",并将sample:前缀添加到其余元素(<sample:element1><sample:element2>等)。

答案 1 :(得分:12)

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

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

此外,这与XML namespaces相关。

答案 2 :(得分:0)

这不能直接回答你的问题,但我在试图解决自己的问题时偶然发现了,所以也许它也可以帮助别人。

我自己的错误&#39;前缀ns2没有绑定&#39;从Weblogic 10.3.6升级到12.2.1.2后浮出水面。

在更高版本中,默认的JAXB实现是Moxy,因此我必须将javax.xml.bind.JAXBContext更改为com.sun.xml.bind.v2.ContextFactory。

How to specify JAXBContext implementation in weblogic 12.1.3