我已经看到了第一个在一个括号中有多个属性的情况(例如<person name="JohnDoe" age="25">
),但我不太明白它们之间到底有什么区别,而且我只是想知道这两种对象叫什么(我无法用谷歌搜索这个问题,因为我不知道它们的名字是什么)
我知道两者都可以做同样的事情(这就是我问这个问题的原因),但我正在寻找使用它们的良好用例(例如在属性而不是元素中使用 API 命名空间,将数据放入元素而不是属性中)
答案1
你可以这样做:
<foo>
<bar>baz</bar>
</foo>
但你不能这样做:
<foo value="<bar>baz</bar>" />
您可以使用实体对尖括号进行编码:
<foo value="<bar>baz</bar>" />
但现在它只是文本“baz”,而不是嵌套的 XML。相当于:
<foo><bar>baz</bar></foo>
从 XML 角度来看,我认为这是唯一的区别:不能在标签内嵌套标签,但不能在属性内嵌套标签。
如果您不需要嵌套标签,则两种选择都有效。没有其他技术差异。XML 规范没有任何使用其中一种而非另一种的语义规则。