为什么在XML中允许多个'>'

问题描述

这是“有效”的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()序列。

您可以将<编码为&lt;

<class>&lt;<abc att="da"/></class>

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...