次のように始まる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>
注:最初の行の前にある先行スペースはすべて削除しましたが、それでもエラーが発生します。
Xercesベースのツールでは、次のエラーが発生します。
The processing instruction target matching "[xX][mM][lL]" is not allowed.
xMLファイルの先頭以外の場所で XML宣言 が検出された場合。
これは有効な診断メッセージです。他のXMLパーサーはこの状況で同様のエラーメッセージを発行するべきです。
<?xml ?>
宣言の前に、いくつかの空白または他の目に見えるコンテンツが存在します。
解決策:XML宣言の前に空白またはその他の表示内容を削除します。
いくつかの見えない内容が<?xml ?>
宣言の前に存在します。最も一般的なこれは Byte Order Mark(BOM)です。 .
Resolution:HTMLのBOMの W3Cページで提案されているような方法でBOMを削除します。
stray <?xml ?>
宣言がXMLコンテンツ内に存在します。これは、XMLファイルがプログラム的に、またはカットアンドペーストによって結合された場合に発生する可能性があります。 XMLファイルに宣言できる<?xml ?>
宣言は1つだけです。また、先頭に置くこともできます。
解決策:大文字と小文字を区別せずに<?xml
を検索し、ファイルから先頭のXML宣言以外のすべてを削除します。
私の理由は1つのxmlに2つの次のコード
<?xml version="1.0" encoding="utf-8"?>
上記のエラーのもう一つの理由は破損したjarファイルです。単体テストを実行しているとき、私はJunitのために同じエラーを得た。 jarを削除して再度ダウンロードすると問題が解決します。
私の場合は設定ファイルのパスが間違っていました:ファイルが見つかりませんでした(パスが間違っていました)そしてそれはこの例外で出ました:
入力ストリームからの構成中にエラーが発生しました。初期原因は "[xX] [mM] [lL]"と一致する処理命令のターゲットではありません。
PHPの場合は、XMLの印刷を開始する前に次のコードを追加してください。
while(ob_get_level()) ob_end_clean();
私は5,000のディレクトリ(Project Gutenbergカタログファイル)にある50,000のrdf/xmlファイルに関して同様の問題を抱えていました。暴動で解決した(ジェナ配布)
ディレクトリはcache/epub/NN/nn.rdfです(NNは数字です)。
すべてのファイルがあるディレクトリの上のディレクトリ、つまりキャッシュ内
riot epub/*/*.rdf --output=turtle > allTurtle.ttl
これはおそらく多くの警告を生成しますが、結果はjenaにロードできる形式になります(fuseki Webインターフェースを使用)。
驚くほど単純です(少なくともこの場合)。