XML 文档包含低顺序 ASCII 字符时 PRB: 错误消息

文章翻译 文章翻译
文章编号: 315580 - 查看本文应用于的产品
展开全部 | 关闭全部

症状

当您尝试使用 3.0 版或更高版本的在 MSXML 分析器分析 XML 文档的版本都包含某些低序位非打印 ASCII 字符 (也就是字符下面 ASCII 32),您可能会收到以下错误消息:
文本内容中发现一个无效字符。

原因

版本 3.0 版及更高版本的 MSXML 分析器严格实施有效 XML 字符范围由万维网联合会 (W3C) XML 语言规范定义。使用 3.0 版或更高版本的 MSXML 版本进行分析的 XML 文档不能包含位于已定义的有效 XML 字符范围之外的字符。低序位非打印 ASCII 字符"详细信息"中列出的范围中部分是无效的 XML 字符。一个 XML 文档,其中包含这些字符的实例不是与 W3C 规范的一致,不能成功分析,使用 3.0 版及更高版本的 MSXML 版本。

解决方案

若要解决此问题,移除实例的低序位非打印 ASCII 字符,或者字符替换为一个备用的有效字符,例如,使用空格字符 (ASCII 32,十六进制 # x 20)。 此解决方案使 XML 文档符合 W3C 规范。 但是,删除或替换这些字符的实例可能会影响其他应用程序使用的数据和该字符都有意义的。 此类附加的影响仅可以通过测试来识别和将需要通过实施修补程序或替代方法适用于特定情况的解决。

状态

此行为是设计使然。

更多信息

版本 2.6 版和更早版本的 MSXML 分析器允许 XML 文档到包含超出 W3C 有效 XML 字符范围的低序位非打印 ASCII 字符。但是,设计的版本 3.0 版及更高版本的在 MSXML 分析器已更改为严格实施有效的 XML 字符 W3C XML 语言规范中定义的范围。此设计更改需要能够识别非标准的 XML 文档。

以下是有效的 XML 字符和字符范围 (十六进制值) 由 W3C XML 语言规范 1.0 定义:
#x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]
				
的以下是将被拒绝的 MSXML 版本 3.0 及更高版本的低序位非打印 ASCII 字符的字符范围:
#x0 - #x8 (ASCII 0 - 8)
#xB - #xC (ASCII 11 - 12)
#xE - #x1F (ASCII 14 - 31)
				
此设计更改可能会影响以下用户和应用程序:
  • Internet Explorer 用户:已使用 5.5 和更早版本的 Internet Explorer 版本 (和用户未在替换模式下安装 MSXML 3.0) 以浏览和 XML 文档的视图的用户包含一个或多个实例指定的低序位非打印 ASCII 字符后升级到 Internet 资源管理器 6.0 中,因为 Internet 资源管理器 6.0 在替换模式下安装 MSXML 3.0 SP2,并使用它来分析 XML 文档会遇到该错误消息。
  • MDAC 和 ADO 的用户:开发人员和用户加载 ADO 保持不变的 XML 文档包含一个或多个实例的指定的低序位非打印 ASCII 字符到 ADO 记录集对象由于 MDAC 2.7 安装 MSXML 3.0 SP2 的 MSXML 分析器 ADO 2.7 Recordset 对象使用的版本升级到 MDAC 2.7 后遇到该错误消息。
  • 使用 MSXML 文档对象模型 (DOM) 的应用程序:使用版本的应用程序在替换模式中,或代码修改为使用 MSXML 3.0 和 4.0 版本特定的 PROGIDs 安装 MSXML 3.0 或其服务包之一时,实例化 MSXML DOM 对象,用于分析 XML 文档的独立 PROGIDs 生成指定的错误。

参考

有关其他已知的原因和错误消息症状一节中指定的) 的变通办法的其他信息,请单击下面文章编号,以查看 Microsoft 知识库中相应的文章:
238833PRB: XML 分析程序: 在文本内容是否找到无效的字符
275883信息: XML 编码和 DOM 接口方法

属性

文章编号: 315580 - 最后修改: 2003年7月17日 - 修订: 1.2
这篇文章中的信息适用于:
  • Microsoft XML Parser 3.0
  • Microsoft XML Parser 3.0 Service Pack 1
  • Microsoft XML Parser 3.0 Service Pack 2
  • Microsoft XML Core Services 4.0
  • Microsoft Data Access Components 2.8
关键字:?
kbmt kbprb KB315580 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 315580
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com