23

我对 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]

4

3 回答 3

25

在您的 XML 中,您需要:

一个。去掉sample:前缀sample:school

或者

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

于 2012-02-27T22:41:17.970 回答
16

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

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

此外,这与XML 命名空间有关。

于 2012-02-28T12:14:20.227 回答
1

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

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

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

如何在 weblogic 12.1.3 中指定 JAXBContext 实现

于 2018-03-29T09:55:27.463 回答