一尘不染

Java错误:不允许匹配“ [xX] [mM] [lL]”的处理指令目标

java

每当我运行以如下方式开始的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>

注意:我删除了第一行之前的所有前导空格,但仍会发生错误!


阅读 725

收藏
2020-02-28

共1个答案

一尘不染

基于Xerces的工具将发出以下错误

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

当在XML文件顶部以外的任何地方遇到XML声明时。

这是有效的诊断消息;在这种情况下,其他XML解析器应发出类似的错误消息。

要更正此问题,请检查以下可能性:

  1. visible content exists before the<?xml ?>

解决方法:在XML声明之前删除空格或任何其他可见内容。

  1. Some invisible content exists before the<?xml ?>。 最常见的是字节顺序标记(BOM)。

解决方法:使用HTML上BOM表上W3C页面建议的技术删除BOM 。

  1. A stray <?xml ?>声明XML内容中存在。 当XML文件以编程方式或通过剪切和粘贴方式组合时,可能会发生这种情况。<?xml ?>XML文件中只能有一个声明,并且只能在顶部。

解决方案:以 <?xml不区分大小写的方式搜索,然后从文件中删除除最上面的XML声明之外的所有声明。

2020-02-28