Java错误:不允许匹配“ [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>
注意:我删除了第一行之前的所有前导空格,但仍会发生错误!
回答:
基于Xerces的工具将发出以下错误
The processing instruction target matching "[xX][mM][lL]" is not allowed.
当在XML文件顶部以外的任何地方遇到XML声明时。
这是有效的诊断消息;在这种情况下,其他XML解析器应发出类似的错误消息。
- visible content exists before the
<?xml ?>
。
解决方法:在XML声明之前删除空格或任何其他可见内容。
<?xml ?>
。 最常见的是字节顺序标记(BOM)。
解决方法:使用HTML上BOM表上W3C页面建议的技术删除BOM 。
<?xml ?>
声明XML内容中存在。 当XML文件以编程方式或通过剪切和粘贴方式组合时,可能会发生这种情况。<?xml ?>XML
文件中只能有一个声明,并且只能在顶部。
解决方案:以 <?xml
不区分大小写的方式搜索,然后从文件中删除除最上面的XML声明之外的所有声明。
以上是 Java错误:不允许匹配“ [xX] [mM] [lL]”的处理指令目标 的全部内容, 来源链接: utcz.com/qa/427040.html