web-dev-qa-db-ja.com

エラーを修正する方法:ルート要素に続くドキュメント内のマークアップは整形式でなければなりません

XML検証Webサイトにコードを配置すると、次のエラーが表示されます。

行8:4ルート要素に続くドキュメント内のマークアップは整形式でなければなりません。

問題がある行は<xsl:output method = "html" doctype-system = "about:legacy-compat"/>、行。

XML

<?xml version="1.0"?>

<!-- Fig. 15.21: sorting.xsl -->
<xsl:stylesheet version = "1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/>

<!-- write XML declaration and DOCTYPE DTD information -->
*<xsl:output method = "html" doctype-system = "about:legacy-compat" />*

 <!-- match document root -->
 <xsl:template match="/"> -<html> <xsl:apply-templates/> </html> 
 </xsl:template>
5
Mereinid

一般的なケース

ルート要素に続くドキュメント内のマークアップは整形式でなければなりません。

このエラーは、XMLがルート要素に続くマークアップを持っていることを示しています。 整形式 、XML exactly oneroot element であるためには、単一のルート要素に続くマークアップはありません。

1つのルート要素の例(GOOD)

<r>
  <a/>
  <b/>
  <c/>
</r>

このエラーの最も一般的な原因は次のとおりです。

  1. 浮遊または余分なクローズタグを含む(BAD):

    <r>
      <a/>
      <b/>
      <c/>
    </r>
    </r>  <!-- shouldn't be here -->
    
  2. 複数のルート要素(BAD)を意図的に持っている:

    <a/>
    <b/>  <!-- second root element shouldn't be here -->
    <c/>  <!-- third root element shouldn't be here -->
    
  3. 意図せずに複数のルート要素(BAD)を持っている:

    <r/>  <!-- shouldn't be self-closing -->
      <a/>
      <b/>
      <c/>
    </r>
    
  4. あなたが考えているものとは異なるXMLを解析する(悪い):

    パーサーが見ているXMLが見ていると思うXMLと同じであることを確認するために、失敗した解析に提供する直前にXMLをログに記録します。一般的なエラーは次のとおりです。

    • パーサーに渡されるXMLドキュメントのファイル名は、あなたが信じているものとは異なります。
    • ダーティなXMLのバッファ。 XMLを追加する前に、クリアされていることを確認してください。
    • このエラーメッセージが生成される解析の前にXMLを変更するパイプラインの前の段階からの以前のプログラム。

あなたの特定の問題

あなたの特定のケースでは、xsl:stylesheet要素は時期尚早に閉じられます(上記のケース#3)。

変化する

            xmlns:xsl="http://www.w3.org/1999/XSL/Transform"/>

            xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

差し迫った問題を修正し、終了タグを追加するには、

</xsl:stylesheet>

実際のドキュメントにまだ存在しない場合。

24
kjhughes