查看XML element contet的定義及其定義CharData。允許在XML元素的內容中
[43] content ::= CharData? ((element | Reference | CDSect | PI | Comment) CharData?)*
[14] CharData ::= [^<&]* - ([^<&]* ']]>' [^<&]*)
我注意到,CharData的這個定義並不禁止具有XML元素內>
字符。我假定這是錯誤所以我看着CharData的描述(重點煤礦)
與符號字符(&)和左尖括號(<)不能 出現在他們的文字形式,如使用時除外標記分隔符, 或在註釋,處理指令或CDATA部分中。如果 它們在其他地方需要,它們必須分別使用數字 字符引用或字符串「
&
」和「<
」進行轉義。 直角括號(>)可以使用字符串 「>
」表示,而且必須爲兼容性,使用轉義或者「>
」或 一個字符引用當它出現在字符串中「]] >「的內容, 該字符串不標記CDATA節的末尾時。
所以看來,[14]和CharData的定義是不一致的。這個假設是正確的還是解析器允許>
內部元素沒有逃脫它?或者他們會自動逃脫它?
所以我可以在技術上寫'?>'?這似乎很奇怪。我假定規範沒有說是,那是被禁止的。 –
是的,'?>'是有效的xml。 –
由於這個問題正在故意挑剔有關規範,我會指出'?>'的確是_well-formed_,但我們不知道它是否有效,除非我們有一個DTD。 –