XML和XSD(或DTD)中的编码不同。
XML文件头:
<?xml version='1.0' encoding='utf-8'?>
XSD文件头:
<?xml version='1.0' encoding='utf-16'?>
导致这种情况的另一种可能的情况是,在XML文档类型声明之前发生了任何事情。即您可能在缓冲区中有以下内容:
helloworld<?xml version="1.0" encoding="utf-8"?>
甚至是空格或特殊字符。
缓冲区中可能有一些称为字节顺序标记的特殊字符。在将缓冲区传递给解析器之前,请执行此操作…
String xml = "<?xml ...";xml = xml.trim().replaceFirst("^([\W]+)<","<");


