Java 春天。“schemaLocation ...必须有偶数个URI”
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/21630363/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
spring. "schemaLocation ... must have even number of URI's"
提问by gstackoverflow
snippet from my xml file:
我的xml文件中的片段:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util.xsd
http://www.springframework.org/schema/context/spring-context-3.1.xsd">
<!-- http://www.springframework.org/schema/aop -->
<!-- http://www.springframework.org/schema/aop/spring-aop.xsd"> -->
<context:component-scan base-package="myPackage" />
after execution I see following message:
执行后,我看到以下消息:
WARN [WrapperSimpleAppMain] [XmlBeanDefinitionReader] Ignored XML validation warning org.xml.sax.SAXParseException; lineNumber: 14; columnNumber: 80; SchemaLocation: schemaLocation value = 'http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util.xsd
http://www.springframework.org/schema/context/spring-context-3.1.xsd' must have even number of URI's. at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:198)
警告 [WrapperSimpleAppMain] [XmlBeanDefinitionReader] 忽略 XML 验证警告 org.xml.sax.SAXParseException; 行号:14;列数:80;SchemaLocation:schemaLocation 值 = ' http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework。 org/schema/util
http://www.springframework.org/schema/util/spring-util.xsd
http://www.springframework.org/schema/context/spring-context-3.1.xsd' 必须有偶数URI 的数量。在 com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:198)
How to solve this problem right?
如何正确解决这个问题?
采纳答案by Sotirios Delimanolis
You're schemaLocation
value should be of the form
你的schemaLocation
价值应该是这样的
namespace-name schema-location [namespace-name schema-location]
You're missing
你不见了
http://www.springframework.org/schema/context
before
前
http://www.springframework.org/schema/context/spring-context-3.1.xsd
It should therefore be
因此应该是
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-3.1.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd">
Note that I've changed the util
schema to version 3.1. Don't mix and match. Use all the same versions.
请注意,我已将util
架构更改为3.1 版。不要混搭。使用所有相同的版本。
回答by Brajesh
SchemaLocation must be in the form of namespace-name schema-location [namespace-name schema-location]
SchemaLocation 必须采用 namespace-name schema-location [namespace-name schema-location] 的形式
like example
喜欢的例子
xmlns:mytag="http://www.brajesh.com/tagsDef"
xsi:schemaLocation="http://www.brajesh.com/tagsDef
http://www.brajesh.com/tagsDef.xsd"
Here we are conveying to xml that, we are going to use my custom tag that is 'mytag' which is defined in http://www.brajesh.com/tagsDef
name-space location.
You can validate these tags from http://www.brajesh.com/tagsDef.xsd
location for http://www.brajesh.com/tagsDef
.
Due to this reason, schema location must have even URLs.
在这里,我们向 xml 传达了这一点,我们将使用我的自定义标签,即在http://www.brajesh.com/tagsDef
名称空间位置定义的“mytag” 。您可以从http://www.brajesh.com/tagsDef.xsd
位置验证这些标签http://www.brajesh.com/tagsDef
。由于这个原因,模式位置必须有偶数的 URL。