Xml 文档类型声明包含或指向的标记声明必须格式良好
我已经编写了一个XML,但是在第一行中,我得到了一个错误 文档类型包含或指向的标记声明 声明必须格式良好 下面是XML(有意在角括号后加空格)Xml 文档类型声明包含或指向的标记声明必须格式良好,xml,struts2,dtd,Xml,Struts2,Dtd,我已经编写了一个XML,但是在第一行中,我得到了一个错误 文档类型包含或指向的标记声明 声明必须格式良好 下面是XML(有意在角括号后加空格) /success.jsp /error.jsp 第一行()抛出错误 请让我知道我为什么要讨论这个问题。我想这是因为之间有额外的空格 注意,在doctype声明的开始和结束处似乎还有额外的空格 编辑 好的,我发现您的文件还有两个问题: 您似乎忘记了apache.org中DTD uri中的“a” 可用的DTD以XML开头 声明(),在 DTD的开头(因为
/success.jsp
/error.jsp
第一行(
)抛出错误
请让我知道我为什么要讨论这个问题。我想这是因为
之间有额外的空格
注意,在doctype声明的开始和结束处似乎还有额外的空格
编辑
好的,我发现您的文件还有两个问题:
),在
DTD的开头(因为DTD不是XML文件)如果第一个错误是导致故障的错误,则很容易修复。但是,第二个错误在struts开发人员方面。我想大多数XML解析器都会忽略它(否则struts团队很早以前就会修复它),但是如果您有一个XML解析器确实对此表示不满,恐怕您唯一的选择就是切换到另一个解析。当您创建dtd时,它总是包含行
<!DOCTYPE…. [
...
]>
只需删除声明DTD数据的第一行和最后一行,因为只有在XML文件中包含DTD时才能使用这些数据。这是因为我无法将XML发布到堆栈溢出上,只是为了将我的问题发布到这里,我故意留出了空间,我在问题中也提到了这一点。谢谢Etienne调查此事好的。我编辑了这个问题以删除那些空格。你应该在代码块的每一行开头加上四个空格,这样StackOverflow就知道它是代码并正确地显示它。非常感谢,非常感谢。你的问题很简单:将
apche.org
更改为apache.org
。你不能说是什么程序给了你这个错误。错误似乎来自Xerces,如果引用的DTD无效,Xerces确实会抛出此错误。在浏览器中键入该URL,您会看到返回的是一些HTML,而不是DTD,因此Xerces对此的抱怨是正确的。纠正错误,你就万事大吉了。
<!DOCTYPE…. [
...
]>