查看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。 –