web-dev-qa-db-ja.com

エラー: "[xX] [mM] [lL]"と一致する処理命令ターゲットは許可されていません

次のように始まるXSLTページを実行するたびに、タイトルのエラーが発生します。

<?xml version="1.0" encoding="windows-1256"?> 
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:include href="../header.xsl"/>
  <xsl:template match="/">
    <xsl:call-template name="pstyle"/>
    <xsl:call-template name="Validation"/>
    <xsl:variable name="strLang">
      <xsl:value-of select="//lang"/>
    </xsl:variable>
    <!-- ////////////// Page Title ///////////// -->
    <title>
        <xsl:value-of select="//ListStudentFinishedExam.Title"/>
    </title>

:最初の行の前にある先行スペースはすべて削除しましたが、それでもエラーが発生します。

171
Java Player

Xercesベースのツールでは、次のエラーが発生します。

The processing instruction target matching "[xX][mM][lL]" is not allowed.

xMLファイルの先頭以外の場所で XML宣言 が検出された場合

これは有効な診断メッセージです。他のXMLパーサーはこの状況で同様のエラーメッセージを発行するべきです。

問題を解決するには、以下の可能性を確認してください。

  1. <?xml ?>宣言の前に、いくつかの空白または他の目に見えるコンテンツが存在します。

    解決策:XML宣言の前に空白またはその他の表示内容を削除します。

  2. いくつかの見えない内容が<?xml ?>宣言の前に存在します。最も一般的なこれは Byte Order Mark(BOM)です。 .

    Resolution:HTMLのBOMの W3Cページで提案されているような方法でBOMを削除します。

  3. stray <?xml ?>宣言がXMLコンテンツ内に存在します。これは、XMLファイルがプログラム的に、またはカットアンドペーストによって結合された場合に発生する可能性があります。 XMLファイルに宣言できる<?xml ?>宣言は1つだけです。また、先頭に置くこともできます。

    解決策:大文字と小文字を区別せずに<?xmlを検索し、ファイルから先頭のXML宣言以外のすべてを削除します。

343
kjhughes

私の理由は1つのxmlに2つの次のコード

<?xml version="1.0" encoding="utf-8"?>
10
Anuj Jindal

上記のエラーのもう一つの理由は破損したjarファイルです。単体テストを実行しているとき、私はJunitのために同じエラーを得た。 jarを削除して再度ダウンロードすると問題が解決します。

1
Peter T.

自動生成されたCopyrightメッセージがXMLにあり、<resources>タグの前に空白行がありました。削除するとビルドは成功しました。

enter image description here

1
Hitesh Sahu

私の場合は設定ファイルのパスが間違っていました:ファイルが見つかりませんでした(パスが間違っていました)そしてそれはこの例外で出ました:

入力ストリームからの構成中にエラーが発生しました。初期原因は "[xX] [mM] [lL]"と一致する処理命令のターゲットではありません。

0
pikimota

PHPの場合は、XMLの印刷を開始する前に次のコードを追加してください。

while(ob_get_level()) ob_end_clean();
0
Beachhouse

私は5,000のディレクトリ(Project Gutenbergカタログファイル)にある50,000のrdf/xmlファイルに関して同様の問題を抱えていました。暴動で解決した(ジェナ配布)

ディレクトリはcache/epub/NN/nn.rdfです(NNは数字です)。

すべてのファイルがあるディレクトリの上のディレクトリ、つまりキャッシュ内

riot epub/*/*.rdf --output=turtle > allTurtle.ttl

これはおそらく多くの警告を生成しますが、結果はjenaにロードできる形式になります(fuseki Webインターフェースを使用)。

驚くほど単純です(少なくともこの場合)。

0
user855443