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:
前缀添加到其余元素(<sample:element1>
、<sample:element2>
等)
【讨论】:
【参考方案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编程):未绑定前缀[重复]
com.admob.android.ads.AdView未绑定前缀?
当我尝试通过架构使用 DocumentBuilderFactory 验证 xml 文件时,我收到错误“找不到元素的声明”