2013-01-23 48 views
2

W3C XSD 1.0 Part 2: Datatypes規範是指用於定義ID和IDREF類型的W3C XML 1.0規範,但這些文檔都沒有定義對這些類型值的長度的任何約束。XML/XSD ID/IDREF類型值的典型最大長度是多少?

但是,似乎有些XML編輯器實現了這些類型的長度限制。另外,一些Web瀏覽器似乎實現了長度限制,例如,在HTML Hx元素(在HTML 4和XHTML 1.1中定義爲XML ID類型)的「id」屬性上。

  1. 對W3C規範或其他規範定義的ID/IDREF類型的長度是否有任何約束?

  2. XML編輯器實現的典型長度約束是什麼?

  3. 什麼是由Web瀏覽器實現的典型長度約束(對於HTML)?

回答

2

實際上,這是很清楚的,每一個XML存在現在解析器對類型ID和IDREF的值的長度的限制,因爲每個XML存在現在解析器的機器上運行具有存儲有限量的(和通常解析器對準備用於解析文檔的存儲量有更小的限制)。

我知道的唯一模式(根據我有限的經驗),有效的限制不是由預定義的數量給出,而是由運行時關鍵時刻的可用內存量。

我相信有些用戶只是簡單地說他們不會使用超過32個字符的標識符;我懷疑大多數XML編輯器會接受長度大一或兩個數量級的標識符。

爲了回答你的第一個問題:在我知道的任何W3C規範中定義的ID/IDREF(或XML規範中的其他任何內容)的長度沒有限制。所有實現都必須有限制,但沒有規範說明我已經知道這些限制是最低限度的水平,我懷疑任何試圖爲這些限制定義設定級別的嘗試都會立即遭到輕蔑的抨擊。 (XSD1.1確實爲一些無限數據類型設置了最小限制,但沒有提及ID和IDREF的最小長度限制;嚴格來說,這些類型的值和詞彙空間總是有限的,所以也許5.4節關於無限數據類型使它們看起來超出了範圍。)

相關問題