为什么我的XML中存在多根root错误?

时间:2016-04-05 20:53:15

标签: xml spring

我正在尝试按照this tutorial学习Spring。我使用IntelliJ在src文件夹的根目录下创建了一个spring.xml文件。但是我收到了以下错误:

enter image description here

我的XML有什么问题?怎么解决?谢谢!

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">



<properties/>


<beans>
    <bean id="triangle">

    </bean>

</beans>

将xml文件更改为以下内容后仍然出现错误:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE beans SYSTEM "http://java.sun.com/dtd/properties.dtd">


<beans>
    <bean id="triangle">

    </bean>

</beans>

我将代码更改为以下内容后,xml是正确的,但我收到了java编译错误:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE beans SYSTEM "http://java.sun.com/dtd/beans.dtd">


<beans>
    <bean id="triangle">

    </bean>

</beans>

错误消息是: 来自文件[/Users/nick/testProj/gs-rest-service/initial/src/main/spring.xml]的XML文档中的第2行无效;嵌套异常是org.xml.sax.SAXParseException; lineNumber:2;

将xml更改为以下内容后,我仍然遇到Java编译器错误:

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

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

    <!-- A simple bean definition -->
    <bean id="triangle" class="no class">
        <!-- collaborators and configuration for this bean go here -->
    </bean>


    <!-- more bean definitions go here -->

</beans>

1 个答案:

答案 0 :(得分:4)

格式良好的XML文档只有一个直接或间接包含所有其他元素的“根元素”。您的XML有两个元素,两个元素都不包含另一个元素:一个<properties>元素和一个<beans>元素。前者是空的是无关紧要的。

如果您正在尝试为Spring webmvc-context.xml编写XML,则根元素应为<beans>

我不确定<properties/>元素应该做什么,DOCTYPE声明非常可疑。我希望根元素引用适当的模式而不是包含DOCTYPE声明的文档,如果引用了DOCTYPE,那么给定的那个似乎不太可能是正确的。