3

以下是 XML 文件的示例:

<tag value=">this is well formatted xml"/>

这可以在 MSXML 和 Apache Xerces 中成功加载。

<tag value="<this is not"/>

这将失败。

我认为大于号和小于号在 XML 文件中都是非法的,当它们不被用作标签分隔符时。但是上面的例子显示大于号是可以的。

任何人都可以解释或提供有关此文件的链接吗?谢谢。

4

2 回答 2

3

只有字符“<”和“&”在 XML 中是严格非法的。大于字符是合法的,但替换它是一个好习惯。

 Entity References

    Some characters have a special meaning in XML.

    If you place a character like "<" inside an XML element, it will generate an error because the parser interprets it as the start of a new element.

    This will generate an XML error:
    <message>if salary < 1000 then</message>

    To avoid this error, replace the "<" character with an entity reference:
    <message>if salary &lt; 1000 then</message>

    There are 5 predefined entity references in XML:
    &lt;    <   less than
    &gt;    >   greater than
    &amp;   &   ampersand 
    &apos;  '   apostrophe
    &quot;  "   quotation mark

    Note: Only the characters "<" and "&" are strictly illegal in XML. The greater than character is legal, but it is a good habit to replace it.

编辑1:

源链接http://www.w3schools.com/xml/xml_syntax.asp

您可以获得更多与 XML 相关的信息

例子:

下面是变量在 XML 文件中编码不当的样子:

<mail id="a1" to="&<manager>@mycompany.com" …

这是变量在 XML 文件中正确编码的样子:

<mail id="a1" to="&amp;&lt;manager&gt;@mycompany.com" …&gt;
于 2013-01-09T04:57:19.003 回答
2

你问“为什么”一个是非法的,另一个不是。关于 XML 语法的“为什么”问题的答案通常植根于它的 SGML 历史——XML 的设计者希望确保它是 SGML 的严格子集,并且可以被 SGML 解析器解析。SGML 在 XML 不允许的领域允许自由,例如省略属性值周围的引号,这解释了 XML 继承的一些限制。

于 2013-01-09T09:10:47.853 回答