當 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 文件到包含的低序位非列印 ASCII 字元外 W3C 有效 XML 字元範圍。不過,設計的版本 3.0 版和稍後的 「 MSXML 剖析器已經變更成嚴格強制執行有效的 XML 字元 W3C XML 語言規格中所定義的範圍。這項設計變更都必須是能夠指出非標準的 XML 文件。

下列是有效的 XML 字元和字元範圍 (十六進位值),所定義的 W3C XML 語言規格 1.0:
#x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]
				
的下面是字元範圍的低序位非列印 ASCII 字元被拒絕的 MSXML 版本 3.0 和更新版本的:
#x0 - #x8 (ASCII 0 - 8)
#xB - #xC (ASCII 11 - 12)
#xE - #x1F (ASCII 14 - 31)
				
此設計變更可能會影響下列使用者和應用程式:
  • Internet Explorer 使用者:使用者已經瀏覽並檢視 XML 文件,使用 Internet Explorer 5.5 及較早的版本 (以及誰在取代模式中未安裝 MSXML 3.0) 包含一個,或指定的低序位非列印 ASCII 字元的多個執行個體升級至網際網路總管 6.0,因為網際網路總管 6.0 會 MSXML 3.0 SP2 安裝在取代模式中,使用來剖析 XML 文件之後遇到錯誤訊息。
  • MDAC 和 ADO 使用者:開發人員和使用者載入 ADO 保存 XML 文件包含一或多個執行個體的指定的低序位非列印 ASCII 字元至 ADO 資料錄集物件會因為 MDAC 2.7 安裝 MSXML 3.0 SP2 是 ADO 2.7 資料錄集物件使用 MSXML 剖析器版本升級至 MDAC 2.7 之後遇到錯誤訊息。
  • 使用 MSXML 文件物件模型 (DOM) 的應用程式:使用版本的應用程式用來剖析 XML 文件的 MSXML DOM 物件具現化的獨立 PROGIDs 指定的錯誤時產生在取代模式中,或在程式碼修改為使用 MSXML 3.0 或 4.0 版,特定 PROGIDs 安裝 MSXML 3.0 或其中一個其 Service Pack。

?考

如需有關其他已知的原因和 '徵狀 ' 一節中所指定的錯誤訊息的因應措施的詳細資訊,按一下面的文件編號,檢視 「 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
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本: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