这些在XML模式中是否意味着同一件事?它们会被同样处理吗?
<ns5:Request RequestID="12345">
<ns5:Details Name="Bob"/>
</ns5:Request>
<ns5:Request>
<ns5:RequestID>"12345"</ns5:RequestID>
<ns5:Details>
<ns5:Name>"Bob"</ns5:Name>
</ns5:Details>
</ns5:Request>
第一个XML是属性为基础。第二个XML是基于elements的。因此,它们将需要完全不同的XML模式。
简短回答:否
更长的答案:在第一种情况下,RequestID
是Request
的属性,在第二种情况下,RequestID
是元素(其值还包含在第一种情况下不存在的引号)。在第一种情况下,Details
元素具有名为Name
的属性,其中包含值Bob
。在第二种情况下,Details
元素具有一个名为Name
的子元素,其值为Bob
。这是两件事。
仅供参考:在这两种情况下,元素和属性都在名称空间中(此处的前缀称为ns5
)。
最终结果:这两种情况都需要不同的XSD,并且not等效。
它们会被同样处理吗?
取决于谁或什么来处理它们。可以想象将元素和属性视为可互换的软件,就像有一种将大写和小写字母视为可互换的软件一样。
但是在XML级别,文档肯定不同。