问题描述
这是“有效”的XML:
URL Redirect Record
我有一个相对简单的问题:为什么几乎所有可能的解析器都正确验证了此XML? 我检查了来自w3.org https://www.w3.org/TR/2008/REC-xml-20081126/的最新xml规范,但是找不到与此相关的任何内容。这是实现特定的东西吗?
符号'
<?xml version="1.0"?><class>>>>>>>>>>>>>>>>>>>>>>>>>>>>><abc att="da"/></class>
此XML无效。
解决方法
https://www.w3.org/TR/2008/REC-xml-20081126/#syntax
除非用作标记定界符或在注释,处理指令或CDATA节中使用,否则&字符(&)和左尖括号()可以使用字符串“&gt;”表示,并且出于兼容性考虑,必须使用“&gt;”进行转义。或字符引用出现在内容的字符串“]]>”中时(如果该字符串未标记CDATA节的结尾)。
如果您有未编码的文字<
,则解析器将假定您正在启动元素。您不能有一个序列,因为元素名称中不能包含<
。
如果您有未编码的文字>
,那么关闭元素没有任何困惑。它只是元素>
节点中的text()
序列。
您可以将<
编码为<
:
<class><<abc att="da"/></class>