我已经写了一个XML,但是在第一行的XML中我得到了一个错误
文档类型包含或指向的标记声明 声明必须是格式良好的
下面是XML(有角括号之后的空格是有意的)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apche.org/dtds/struts-2.0.dtd">
<struts>
<package name="default" extends="struts-default">
<action name="getTutorial" class="org.koushik.javabrains.action.TutorialAction">
<result name="success">/success.jsp</result>
<result name="error">/error.jsp</result>
</action>
</package>
</struts>
第一行(<?xml version="1.0" encoding="UTF-8"?>
)抛出错误。
请让我知道为什么我会遇到这个问题。
答案 0 :(得分:0)
我想这是因为<
和?xml
之间以及?
和>
之间的额外空格。
请注意,您似乎在doctype声明的开头和结尾都有额外的空格。
修改强>
好的,我发现你的文件有两个问题:
<?xml version="1.0" encoding="UTF-8"?>
),禁止在
DTD的开头(因为DTD 不是 XML文件)。如果第一个错误导致问题,那么很容易修复。但是,第二个错误是在struts开发者方面。我想大多数XML解析器都会忽略它(否则struts团队很久以前就会修复它),但是如果你有一个XML解析会抱怨它,我恐怕你唯一的选择就是切换到另一个。< / p>
答案 1 :(得分:0)
创建dtd时,它始终包含行
<!DOCTYPE…. [
...
]>
只需删除声明DTD数据的第一行和最后一行,因为只有在XML文件中包含DTD时才会使用这些数据。