2010-02-23 24 views
0

在解決另一個問題時,我發現文本文件嵌入了 嵌入式Ctrl-S字符(十進制19)。將其文本添加到XML文檔時,會引發異常(C#/ .NET)。這是W3C XML規範中的拼寫錯誤嗎?

根據這個頁面,因爲我讀它,他們是不是在肆虐的「字符」 等等都是非法的:http://www.w3.org/TR/REC-xml/#charsets

然而,隊列發現的XML規範,並暗示它相當於一個回車符(十進制13,不是十六進制0×13),在這裏:http://www.w3.org/1999/07/WD-xml-c14n-19990729#charescaping

但隨後,有問題的段落是不是在最新版本(http://www.w3.org/TR/xml-c14n),其中明確規定:

  • 在字符數據中,回車(#xD)字符由「
」表示。

因此,二quesitons:

  1. 我失去了一些東西,或者是有在W3C網頁上有錯誤 - 令牌&#X13的 「X」;它應該是

 ??
  2. 當規範發生錯誤(不僅僅是更改的內容,而是實際的錯誤)時,W3C是否允許訪問該文檔?似乎這是一個「是」

回答

2

當然看起來像我的錯字。但是1999年Canonical XML工作草案中的一個錯字看起來並不是一個讓人興奮的場合。

這就是所謂的「工作草案」的原因。工作草案與公佈的建議之間的差異可能相當大,因爲任何使用XSL-WD的人都會學會沮喪。 W3C不會修正他們發佈的草稿中的拼寫錯誤,他們會發布新版本。這是發生得很慢的事情。對於Canonical XML來說,這非常緩慢,它解決了世界不急需解決的問題。

0

你有一個單一的字符,其中包含(十進制)19,對不對?該XML規範正在談論字符轉義。如果該字符在XML中是合法的,則可以將其轉義爲或者作爲&#x13 ;.但事實並非如此。即使它逃脫了,逃脫版本也不合法。

+0

在第二個鏈接文檔中注意這句話:**如果文檔包含字符串「」,則信息集包含單個CR(#xD)字符。** – NVRAM 2010-02-24 00:27:19

+0

我的問題是關於發佈的較早文檔通過W3C:*老的有一個(明目張膽的)錯誤,如果是的話,爲什麼他們不糾正?* – NVRAM 2010-02-24 00:29:10

+0

你爲什麼要引起我們對這句話的關注?根據您最初的說法,您的文檔不包含該字符串。它包含一個十進制-19個字符。所以這是無關緊要的。我不知道W3C文檔是否有明顯的錯誤,無論如何,這與您的問題無關。如果你想跟隨這個問題,你應該發佈一個單獨的問題。我的猜測是它不會,但它又與你的問題無關。 – 2010-02-24 20:38:33