2010-02-16 65 views
8

我正在爲xml文檔創建一個DTD。我有一個用於xml元素的Enumerated attribute。我的問題是:屬性類型是否有空格?XML屬性可以有空格嗎?

如:

<!ELEMENT Link (#PCDATA)> 
    <!ATTLIST Link Type (Amendment|Reference|Superseded|Modified| 
    Corrigendum|Corresponds|Endorsement|Equivalent|Identical|Modified| 
    Not Equivalent|Note taken of|Related|Similar) "Reference"> 

所以,我想的是:

<Link Type="Not Equivalent" \> 

,但似乎BARF。

是否有一些魔法巫術我需要做空間?還是隻是運氣不好?

我看了一個fewspots卻不見任何參考

謝謝!

更新

對不起 - 當我說BARF,我的意思是,當我嘗試驗證文檔(例如,打開它在Web瀏覽器)我得到一個錯誤信息:在ATTLIST枚舉中發現無效字符。處理資源'file:/// C:/myxmldocument.xml'時出錯。 ...

+1

如果您正在自己創建DTD的過程中,那麼我會認真考慮重新考慮並改寫XML Schema。這是一個非常靈活的可怕方式,同時對於什麼是不允許的,什麼是不允許的。 – skaffman

回答

10

簡短的回答是沒有。 Xml屬性是名稱標記,名稱標記不能包含空格。相關規格鏈接:

Attributes

Attribute Types (see NotationType)

Names (See 4a - NameChar)

無效字符的空間。您可以使用 '。'或' - '作爲分隔符,如果你喜歡。

+5

XML本身支持屬性中的空格就好了 - 這是DTD規範在'ATTLIST'枚舉中不允許​​的。 – skaffman

+2

只是澄清 - 屬性名稱中的空格始終無效。屬性中的空格值是可以的,但是枚舉屬性聲明要求枚舉中的所有標記都必須是名稱字符序列,因此不能有空格。你可以使用'Not_Equivalent(甚至' - Equivalent'是好的,雖然這不是一個有效的名字)。 – Max

相關問題