4

私は 1 つの 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"?>) がエラーをスローしています。

この問題にぶつかった理由を教えてください。

4

2 に答える 2

0

<これは、との間と?xmlとの間 の余分なスペースが原因だ?と思います>

また、Doctype宣言の最初と最後に余分なスペースがあるように見えることに注意してください。

編集

OK、ファイルに他に2つの問題が見つかりました。

  1. DTDURIのapache.orgの「a」を忘れたようです。
  2. http://struts.apache.org/dtds/struts-2.0.dtdで入手可能なDTDは、XML宣言(<?xml version="1.0" encoding="UTF-8"?>)で始まります。これは、DTDの先頭で禁止されています(DTDはXMLファイルではないため)。

最初のエラーが問題の原因である場合、簡単に修正できます。ただし、2番目のエラーはstruts開発者側にあります。ほとんどのXMLパーサーはそれを無視していると思います(そうでなければ、strutsチームはずっと前にそれを修正していたでしょう)が、それについて不平を言うXMLパーサーがある場合、あなたの唯一の選択肢は別のものに切り替えることです。

于 2013-03-23T14:56:37.437 に答える