搜索后,我知道属性和元素之间的语法差异。
我不是问我是否应该使用哪个,但是如果它们被例如服务器解释为相同的话。
在w3schools.com上,它显示以下示例“ 包含完全相同的信息”;]
<!-- document A using an attribute -->
<note date="2008-01-10">
<to>Tove</to>
<from>Jani</from>
</note>
<!-- document B using an element -->
<note>
<date>2008-01-10</date>
<to>Tove</to>
<from>Jani</from>
</note>
我的问题是,“这两个文档应该互换吗?”
即,服务器期望使用文档格式A,但是接收到文档B。服务器将被“强制”按照xml标准解析和接受文档B吗?
否,这两个文档不可互换。服务器和客户端之间必须达成共识的使用中的XML模式定义了每种元素类型的可能的属性和可能的子元素。这是两个不同的集合。
的确,对于不具有内部结构的数据,可以使用属性或子元素来传输信息。但这是架构开发人员需要做出的决定。做出此决定时需要考虑的重要事项是基准面是否具有内部结构。最复杂的属性可以是令牌列表。 (或者是微语法,例如您的日期。)另一方面,子元素可以任意丰富的结构。因此它们只在包含的信息不是很复杂的范围内“包含相同的信息”。